Stellar chainId in LI.FI is
1201081091099710. The chain key is xlm and the chain type is STL.GET /v1/chains returns EVM chains only by default. Pass chainTypes to include Stellar, for example GET /v1/chains?chainTypes=EVM,STL.All Stellar tokens, including native XLM, are addressed by their Soroban contract (Stellar Asset Contract, SAC) C... address. Native XLM is represented as CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA (7 decimals).Stellar token addresses are case-sensitive. Always pass them exactly as returned by the API.Requesting a quote
A quote for Stellar can be requested using the same endpoints as EVM. Only the chain ids, token addresses and the transaction data differ.fromAddress when the source chain is Stellar must be an ed25519 G... account address. Muxed M... addresses and Soroban contract C... addresses are not supported as senders.The LI.FI SDK also resolves SEP-2 federation addresses (name*domain.com) to a G... address before it builds a request. It refuses a federation record that carries a memo, because a route request cannot carry one.toAddress when Stellar is the destination chain accepts a G... account address. When bridging out of Stellar, toAddress is a regular address on the destination chain (for example an EVM address).The sender account must exist on the network. Stellar accounts only exist once they are funded, so no quote is returned for an unfunded sender account.Token approvals
Not every Stellar route requires a token approval. Depending on the tool, the executing contract either moves funds directly under the authorization carried by your signed transaction, or pulls them through a token allowance. The decision is made per included step, never from the route-level estimate. Scan the quote’sincludedSteps and treat a step as needing an approval when both of these hold:
estimate.skipApprovalis nottrue.estimate.approvalAddressis a Soroban contract (C...) address.
estimate.approvalAddress as the spender, its action.fromToken.address as the token, and at least its estimate.fromAmount as the amount. A Stellar route pulls at most one allowance today, so the first step that meets both conditions is the one to approve.
Soroban token allowances always have an expiration ledger (a mandatory TTL). Unlimited or indefinite approvals do not exist on Stellar — every allowance eventually expires and will need to be renewed.Because allowances are never indefinite, it is also safe to approve a buffer: we recommend approving about 10% on top of the required amount so the allowance still covers positive slippage from a preceding swap.
Soroswap integration
Registered as the exchange keysoroswap. Enables users to perform same-chain swaps on Stellar. Soroswap aggregates liquidity across Stellar AMMs and splits the trade across venues for the best output.
For same-chain swaps on Stellar,
toAddress must equal fromAddress. The router measures the swap output through the sender’s balance change, so no transaction is returned for a different recipient.Polymer integration
Polymer is registered as two tools,polymer (“Polymer (Fast)”) and polymerStandard (“Polymer (Standard)”). Both bridge USDC into Stellar from EVM chains using Circle’s Cross-Chain Transfer Protocol (CCTP). They differ in the Circle attestation they settle on: polymer is faster, polymerStandard is cheaper.
Receiving a non-XLM asset on Stellar requires the recipient account to hold a trustline for that asset. If the recipient has no trustline, no quote is returned.
Circle CCTP integration
Registered as the tool keycctp (“Circle CCTP”). It is the only bridge that routes out of Stellar today. It carries USDC to 10 chains: Ethereum, Arbitrum, Avalanche, Base, Injective, Monad, OP Mainnet, Polygon, Unichain, and World Chain.
A route out of Stellar that starts from a non-USDC asset swaps on Soroswap first, then bridges the resulting USDC. That route pulls a token allowance, and the allowance belongs on the intermediate USDC, not on the route’s
fromToken. See Token approvals.NearIntents integration
Registered as the tool keynear (“NearIntents”). Enables users to bridge XLM and USDC into Stellar from other supported ecosystems, including EVM chains, Solana, Bitcoin, and Tron.
Executing a transaction
Transaction data
transactionRequest.data is a base64-encoded, unsigned Stellar TransactionEnvelope XDR. The envelope is built against a fresh sequence number of the sender account, and the network fee and Soroban resources are already set from simulation.
To execute the transaction:
- Request the transaction data through the regular quote flow.
- Sign the envelope with the sender account’s key.
- Submit the signed transaction to the Stellar network.
Gas
The estimated network fee is returned in the step’sestimate.gasCosts in stroops (XLM, 7 decimals).
Account reserve
Every Stellar account must hold a minimum XLM balance, the account reserve, and cannot spend it. Two consequences follow:- A route that starts on Stellar cannot spend the sender’s whole XLM balance.
- A route that bridges into Stellar delivers XLM to the receiver and holds back a buffer for the account reserve and for the destination step fees.
Status tracking
Transaction status can be tracked using the regular status tracking flow.When polling
/status for a transaction that originates on Stellar, always pass fromChain=XLM (or the Stellar chain id 1201081091099710). Stellar transaction hashes are 64-character hex strings and are otherwise indistinguishable from Bitcoin transaction hashes.
