Skip to content

devnWisdom/stellar-route-kit

Stellar Route Kit

Version License: MIT CI Go Reference pub.dev

Stellar Route Kit is a multi-language library for spec-compliant deposit routing on the Stellar network. It provides a unified API for handling G-addresses (classic), M-addresses (muxed), and C-addresses (contracts) across TypeScript, Go, and Dart.


Packages

Platform Package Install
TypeScript stellar-route-kit npm install stellar-route-kit
Go core-go go get github.com/devnWisdom/stellar-route-kit/packages/core-go
Dart / Flutter stellar_route_kit dart pub add stellar_route_kit

Quick Example

import { extractRouting } from "stellar-route-kit";

const result = extractRouting({
  address: "MAAAAAAAAAAAAAKJS7PV2HPBA4IDZRUMRNIKMG3ZJEIJZZPJ3B7ZTKKYQV67VPUKUA6QS",
});

console.log(result.address);   // "GBEZPX25DXQQOEB4Y2GIWUFGDN4USEE44XU5Q74ZVFMIK7P2X2FKBQ7C"
console.log(result.routingId); // "1"
import stellar "github.com/devnWisdom/stellar-route-kit/packages/core-go"

result, err := stellar.ExtractRouting(stellar.RoutingInput{
    Address: "MAAAAAAAAAAAAAKJS7PV2HPBA4IDZRUMRNIKMG3ZJEIJZZPJ3B7ZTKKYQV67VPUKUA6QS",
})
fmt.Println(result.Address)   // "GBEZPX25DXQQOEB4Y2GIWUFGDN4USEE44XU5Q74ZVFMIK7P2X2FKBQ7C"
fmt.Println(result.RoutingID) // "1"
import 'package:stellar_route_kit/stellar_route_kit.dart';

final result = extractRouting(RoutingInput(
  address: 'MAAAAAAAAAAAAAKJS7PV2HPBA4IDZRUMRNIKMG3ZJEIJZZPJ3B7ZTKKYQV67VPUKUA6QS',
));
print(result.address);   // "GBEZPX25DXQQOEB4Y2GIWUFGDN4USEE44XU5Q74ZVFMIK7P2X2FKBQ7C"
print(result.routingId); // "1"

Core Features

  • Spec-First Design — Guaranteed identical behavior across all three languages via a shared test vector suite.
  • Precision Safety — Built-in protection against 64-bit integer precision loss in JavaScript and Flutter Web.
  • Warning System — Discriminated unions (TS) or structured objects (Go/Dart) to surface edge cases like numeric MEMO_TEXT.
  • Zero Dependencies — Core logic has no external runtime dependencies beyond standard library features.

Repository Structure

stellar-route-kit/
├── packages/
│   ├── core-ts/          # TypeScript package (published as stellar-route-kit)
│   ├── core-go/          # Go package
│   └── core-dart/        # Dart/Flutter package (published as stellar_route_kit)
├── test-vectors/
│   └── routing.json      # Canonical cross-language test vectors
├── .github/
│   ├── workflows/        # CI and release workflows
│   ├── ISSUE_TEMPLATE/   # Bug report and feature request templates
│   └── PULL_REQUEST_TEMPLATE.md
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
└── SECURITY.md

Address Types

Type Prefix Description
G-address G Classic Stellar account (StrKey encoded)
M-address M Muxed account (SEP-0023 / CAP-0027)
C-address C Soroban contract address

Contributing

Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.

All implementations must pass the shared test vectors to ensure cross-language consistency.


License

MIT © Stellar Development Foundation contributors

About

Multi-language library for spec-compliant Stellar deposit routing across G, M, and C addresses — TypeScript, Go, and Dart.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors