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

# Asset List

> Every asset with all its tokens, page by page, filterable by category, chain and underlying.

`GET /v1/assets` · **1 credit per page**

Every asset with all its tokens, page by page: the full table to keep in cache and map any token to its asset locally. Filter by `category`, `chain` or `underlying`. `meta.version` changes when the list changes.

> [!NOTE]
>
> `meta.total` is the number of assets matching the filters, `meta.hasMore` and `meta.nextCursor` drive the pagination.

> [!NOTE]
>
> Every token of an asset is worth one unit of the asset, so balances can be summed as is. `kind` says how: `native` (the asset itself: a chain's native coin or the issuer's own contract), `wrapped` (a 1:1 wrapper: WETH, WBTC, cbBTC), `bridged` (a 1:1 copy moved by a bridge: USDC.e, USDbC, Binance-Peg ETH).

> [!NOTE]
>
> Staked and yield-bearing versions (stETH, wstETH, LBTC, jitoSOL, sUSDe) are never inside the asset they stake, since their value drifts from it: each is its own asset with `category: "staked"` and `underlying` set to that asset's id. List them with `GET /v1/assets?underlying=eth`.

> [!NOTE]
>
> On Arc and Stable, the chain's native coin and its ERC-20 contract are the same balance seen twice (`0x0000…0000` and `0x3600…0000` for USDC on Arc, `0x0000…0000` and `0x779d…3736` for USDT0 on Stable): both map to the asset, count only one of them.

```bash cURL theme={null}
curl 'https://api.serialized.xyz/v1/assets?underlying=eth&limit=2' -H 'Authorization: YOUR_API_KEY'
```

```json Response theme={null}
{
  "data": [
    {
      "id": "steth",
      "name": "Lido Staked ETH",
      "symbol": "stETH",
      "category": "staked",
      "currency": null,
      "underlying": "eth",
      "logo": "https://serialized.cloud/token/4dc5949d-f598-4b27-859e-994afc8c7bbf/icon",
      "variants": [
        {
          "id": "steth",
          "name": "Lido Staked ETH",
          "symbol": "stETH",
          "issuer": "Lido"
        }
      ],
      "tokens": [
        {
          "chain": "evm:1",
          "address": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
          "symbol": "stETH",
          "name": "Liquid staked Ether 2.0",
          "decimals": 18,
          "kind": "native",
          "variant": "steth"
        },
        {
          "chain": "solana",
          "address": "H2mf9QNdU2Niq6QR7367Ua2trBsvscLyX5bz7R3Pw5sE",
          "symbol": "stETH",
          "name": "Liquid staked Ether 2 (Wormhole)",
          "decimals": 8,
          "kind": "bridged",
          "variant": "steth"
        }
      ]
    },
    {
      "id": "wsteth",
      "name": "Wrapped stETH",
      "symbol": "wstETH",
      "category": "staked",
      "currency": null,
      "underlying": "eth",
      "logo": "https://serialized.cloud/token/eb444fbf-4b66-4887-85ba-64bf121a1467/icon",
      "variants": [
        {
          "id": "wsteth",
          "name": "Wrapped stETH",
          "symbol": "wstETH",
          "issuer": "Lido"
        }
      ],
      "tokens": [
        {
          "chain": "evm:1",
          "address": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
          "symbol": "wstETH",
          "name": "Wrapped liquid staked Ether 2.0",
          "decimals": 18,
          "kind": "native",
          "variant": "wsteth"
        },
        {
          "chain": "evm:8453",
          "address": "0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452",
          "symbol": "wstETH",
          "name": "Wrapped liquid staked Ether 2.0",
          "decimals": 18,
          "kind": "bridged",
          "variant": "wsteth"
        },
        {
          "chain": "evm:56",
          "address": "0x26c5e01524d2e6280a48f2c50ff6de7e52e9611c",
          "symbol": "wstETH",
          "name": "Wrapped liquid staked Ether 2.0",
          "decimals": 18,
          "kind": "bridged",
          "variant": "wsteth"
        }
      ]
    }
  ],
  "meta": {
    "asOf": 1792252800000,
    "version": "ab6354b7b6f7",
    "total": 36,
    "hasMore": true,
    "nextCursor": "eyJ2IjoiMDAwIiwibyI6Mn0"
  }
}
```


## OpenAPI

````yaml openapi.json GET /v1/assets
openapi: 3.1.0
info:
  title: Serialized Data API
  description: >-
    On-chain data for trading apps - tokens, candles, token filters. Built on
    our own indexers. 18 EVM chains + Solana, live.
  version: 0.1.0
servers:
  - url: https://demo.serialized.xyz
    description: 'Demo: no key needed, read endpoints, rate-limited per IP'
  - url: https://api.serialized.xyz
    description: 'Production: your API key in the Authorization header'
security:
  - apiKey: []
  - {}
paths:
  /v1/assets:
    get:
      summary: Asset List
      description: >-
        Every asset with all its tokens, page by page: the full table to keep in
        cache and map any token to its asset locally. Filter by `category`,
        `chain` or `underlying`. `meta.version` changes when the list changes.
      operationId: assets
      parameters:
        - schema:
            type: string
            x-default: stablecoin
          in: query
          name: category
          required: false
          description: >-
            One of `coin` (a chain's native coin: BTC, ETH, SOL...),
            `stablecoin`, `staked`, `commodity`, `stock`, `token`.
          example: stablecoin
        - schema:
            type: string
            x-default: solana
          in: query
          name: chain
          required: false
          description: >-
            Only the assets with at least one token on this chain (each asset
            still lists all its tokens).
          example: solana
        - schema:
            type: string
            x-default: eth
          in: query
          name: underlying
          required: false
          description: >-
            Only the staked assets of this asset id (`eth`: stETH, wstETH,
            rETH...).
          example: eth
        - schema:
            minimum: 1
            maximum: 250
            default: 100
            type: integer
            x-default: 100
          in: query
          name: limit
          required: false
          description: Assets per page, 1 to 250 (default 100).
          example: 100
        - schema:
            type: string
          in: query
          name: cursor
          required: false
          description: >-
            The `meta.nextCursor` of the previous page. A cursor from an older
            version of the list answers `400`: start again from the first page.
      responses:
        '200':
          description: Standard `{ data, meta }` envelope.
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header
      description: Your raw API key (not needed on the demo server).

````

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