
SwapKit supports Stellar mainnet through the NEAR provider.
| Chain | XLM |
|---|---|
| Chain ID | stellar |
| Type | Account-based, not EVM (ChainType.Stellar). Nothing about the EVM flow carries over. |
| Gas token | XLM, 7 decimals — 1 XLM = 10^7 stroops. Every classic Stellar asset is 7 decimals, USDC included. |
| Transaction format | txType: "STELLAR". tx is an unsigned base64 XDR envelope — sign it with the account's ed25519 key and submit. |
| Payin | Transfer with a memo to a shared router account — txHint: transferWithMemo. The memo is not optional; see below. |
| Block time | ~5s ledger close |
| Fees | Inclusion fee in stroops, taken from getFeeStats (inclusionFee.mode). Network floor is 100 stroops per operation. Surge pricing means the envelope's fee is only a max bid — the amount actually charged is feeCharged in the result XDR. |
| Explorer | stellarchain.io |
| Launch Providers | NEAR |
Stellar has no token contracts. A classic asset is a code plus the account that issued it, so the address half of a SwapKit identifier is the issuer's G… public key rather than a contract address.
| Asset | Identifier | Decimals |
|---|---|---|
| Native | XLM.XLM |
7 |
| USDC (Circle) | XLM.USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN |
7 |
Two things to hold on to:
USDC; the issuer is what makes it Circle's. Always send the full CODE-ISSUER identifier, never the bare code.A Stellar account holds nothing it has not agreed to hold. Before an account can receive XLM.USDC it must carry a trust line to that exact code-and-issuer pair, created by a changeTrust operation signed by the account itself.
There is no way around this and no way to do it on someone else's behalf:
op_no_trust. On a cross-chain route that means the funds land nowhere and wait on a manual refund.changeTrust. SwapKit can build the transaction; the user has to sign and submit it.Native XLM.XLM needs no trust line. Everything in this section applies to issued assets only.