> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useroutr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Assets and networks

> How Useroutr identifies an asset, and which assets can pay and be paid.

An asset is identified by its network and, on Stellar, its issuer, never by its symbol alone.
Two tokens called USDC from different issuers are different assets, and Useroutr treats them
that way. Each asset has an id, and the id is what you send in every request.

```ts theme={null}
const { data: assets } = await useroutr.assets.list();
```

```json theme={null}
{
  "id": "asset_usdc_stellar",
  "object": "asset",
  "network": "stellar",
  "symbol": "USDC",
  "decimals": 7,
  "stellar_asset": "USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
  "code": "USDC",
  "issuer": "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
  "contract": "C..."
}
```

`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
has `stellar_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](/concepts/quotes-and-routes) 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 has `network` 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.