> ## 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

> One asset and all its tokens across chains, by id or by any of its tokens, optionally one product of it (variant). POST twin for batches (≤100, 1 credit per 25 items).

`GET /v1/asset` · **1 credit**

One asset and all its tokens across chains: BTC with WBTC, cbBTC and BTCB, ETH with the native coin of every chain and its WETH, USDC with its bridged copies. Look it up by `id`, or by `chain` and `address` of any of its tokens, and add `variant` to keep one product of it. POST twin on the same path for batches (≤100, billed as one call per 25 items served).

> [!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]
>
> `variants` lists the products inside an asset (WBTC by BitGo, cbBTC by Coinbase, BTCB by Binance), each token names its `variant`. An asset holds tokens on our supported chains only.

> [!NOTE]
>
> `variant` (an id from `variants`) keeps the tokens of that product only, on every chain: `?id=btc&variant=wbtc` lists every WBTC, `?id=usdt&variant=usdt0` every USDT0; `variants` then holds that product alone. It works from a token too (`?chain=evm:8453&address=…&variant=cbbtc`). A variant id is not an asset id (`?id=wbtc` answers `404`), and a variant the asset does not have answers `404 NOT_FOUND` with the asset's variants in the message.

> [!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.

> [!NOTE]
>
> A token that no asset groups answers `404 NOT_FOUND`. Prices are per token: `POST /v1/token/price`.

```bash cURL theme={null}
curl 'https://api.serialized.xyz/v1/asset?chain=evm:8453&address=0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf' -H 'Authorization: YOUR_API_KEY'
```

```json Response theme={null}
{
  "data": {
    "id": "btc",
    "name": "Bitcoin",
    "symbol": "BTC",
    "category": "coin",
    "currency": null,
    "underlying": null,
    "logo": "https://cdn.serialized.xyz/dex/coin-btc.1eb4e75d.png",
    "variants": [
      {
        "id": "wbtc",
        "name": "Wrapped Bitcoin",
        "symbol": "WBTC",
        "issuer": "BitGo"
      },
      {
        "id": "cbbtc",
        "name": "Coinbase Wrapped BTC",
        "symbol": "cbBTC",
        "issuer": "Coinbase"
      }
    ],
    "tokens": [
      {
        "chain": "evm:1",
        "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
        "symbol": "WBTC",
        "name": "Wrapped BTC",
        "decimals": 8,
        "kind": "wrapped",
        "variant": "wbtc"
      },
      {
        "chain": "evm:8453",
        "address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
        "symbol": "cbBTC",
        "name": "Coinbase Wrapped BTC",
        "decimals": 8,
        "kind": "wrapped",
        "variant": "cbbtc"
      },
      {
        "chain": "evm:1",
        "address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
        "symbol": "cbBTC",
        "name": "Coinbase Wrapped BTC",
        "decimals": 8,
        "kind": "wrapped",
        "variant": "cbbtc"
      },
      {
        "chain": "evm:42161",
        "address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
        "symbol": "cbBTC",
        "name": "Coinbase Wrapped BTC",
        "decimals": 8,
        "kind": "wrapped",
        "variant": "cbbtc"
      }
    ]
  },
  "meta": {
    "asOf": 1792252800000,
    "version": "ab6354b7b6f7"
  }
}
```


## OpenAPI

````yaml openapi.json GET /v1/asset
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/asset:
    get:
      summary: Asset
      description: >-
        One asset and all its tokens across chains: BTC with WBTC, cbBTC and
        BTCB, ETH with the native coin of every chain and its WETH, USDC with
        its bridged copies. Look it up by `id`, or by `chain` and `address` of
        any of its tokens, and add `variant` to keep one product of it. POST
        twin on the same path for batches (≤100, billed as one call per 25 items
        served).
      operationId: asset
      parameters:
        - schema:
            type: string
            x-default: btc
          in: query
          name: id
          required: false
          description: >-
            Asset id, as listed by `GET /v1/assets`. Either `id`, or `chain` and
            `address`.
          example: btc
        - schema:
            type: string
            x-default: evm:8453
          in: query
          name: chain
          required: false
          description: Public chain id of one of the asset's tokens (with `address`).
          example: evm:8453
        - schema:
            type: string
            x-default: '0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf'
          in: query
          name: address
          required: false
          description: >-
            Any token of the asset on `chain`:
            `0x0000000000000000000000000000000000000000` (or `0xeeee…eeee`) is
            the chain's native coin.
          example: '0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf'
        - schema:
            type: string
            x-default: wbtc
          in: query
          name: variant
          required: false
          description: >-
            Keep the tokens of one product of the asset only, an id from its
            `variants` (`wbtc` in `btc`, `usdt0` in `usdt`). A variant id alone
            is not an asset id.
          example: wbtc
      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.