symbol is for display. decimals is the asset’s precision: an amount may have no more
decimal places than that. The catalog differs between the sandbox and production, so read it
from the API rather than hard-coding a list.
Stellar assets
Every funding intent settles on Stellar, so the asset you ask for is a Stellar asset. Native XLM hasstellar_asset: "native" and no issuer; an issued asset such as USDC names its issuer.
When you receive an issued asset, your destination account must hold a trustline for it before
you create the intent. Useroutr checks this up front and refuses the intent with
INVALID_DESTINATION rather than taking a payment it could not deliver.
Assets on other networks
The catalog can also list assets on EVM networks, such as USDC or WETH on Base. Your users can pay with these: a quote bridges the payment to Stellar and converts it into the asset you asked for, and the payer sends one token transfer to a deposit address on their own network. You can also ask to receive an asset on another network, such as USDC on Base. Your users can then pay from Stellar or from any other network in the catalog: the payment is bridged to Stellar, converted if needed, and bridged out to your address. A user paying in that same asset on that same network pays you directly: their payment is forwarded to your address there, without passing through Stellar. The payment then hasnetwork set to that network, amounts at
the token’s own precision, and no operation_id.
These entries have network set to the EVM network and name their token contract instead of
an issuer.
Amounts
Amounts are always decimal strings, such as"25" or "12.5000000", never floats. The API
returns them at the asset’s full precision. An amount never travels without its asset: every
response that carries an amount names the asset it is in.