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

> Batch twin: up to 100 assets in one call, by id or by token, one slot per item, billed 1 credit per 25 items.

`POST /v1/asset` · **1 credit per 25 items**

Batch twin: up to 100 lookups in one call, each `{ id }` or `{ chain, address }`, optionally with `variant` to keep one product of the asset, chains mixed freely. Response in input order, one slot per item: `{ data }`, the body of the single GET for that item, or `{ error: { code, message } }` for that item alone (unknown id, token no asset groups, variant the asset does not have, malformed address), never `null`. Billed as one call per 25 items served: up to 25 items cost 1 credit, 26 to 50 cost 2 credits, and so on.

> [!NOTE]
>
> A slot's `data` is exactly what `GET /v1/asset` returns for that item. Examples are shortened: a real asset lists all its tokens.

```bash cURL theme={null}
curl -X POST 'https://api.serialized.xyz/v1/asset' \
  -H 'Authorization: YOUR_API_KEY' -H 'Content-Type: application/json' \
  -d '{"items":[{"id":"usdc"},{"chain":"evm:1","address":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"},{"chain":"evm:8453","address":"0x000000000000000000000000000000000000dead"}]}'
```

```json Response theme={null}
{
  "data": [
    {
      "data": {
        "id": "usdc",
        "name": "USDC",
        "symbol": "USDC",
        "category": "stablecoin",
        "currency": "USD",
        "underlying": null,
        "logo": "https://cdn.serialized.xyz/dex/coin-usdc.4a518799.png",
        "variants": [
          {
            "id": "usdc",
            "name": "USDC",
            "symbol": "USDC",
            "issuer": "Circle"
          }
        ],
        "tokens": [
          {
            "chain": "evm:8453",
            "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
            "symbol": "USDC",
            "name": "USD Coin",
            "decimals": 6,
            "kind": "native",
            "variant": "usdc"
          },
          {
            "chain": "evm:1",
            "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
            "symbol": "USDC",
            "name": "USD//C",
            "decimals": 6,
            "kind": "native",
            "variant": "usdc"
          },
          {
            "chain": "evm:42161",
            "address": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
            "symbol": "USDC",
            "name": "USD Coin",
            "decimals": 6,
            "kind": "native",
            "variant": "usdc"
          }
        ]
      }
    },
    {
      "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"
          }
        ]
      }
    },
    {
      "error": {
        "code": "NOT_FOUND",
        "message": "items[2]: no asset groups token 0x000000000000000000000000000000000000dead on evm:8453"
      }
    }
  ],
  "meta": {
    "asOf": 1792252800000,
    "version": "ab6354b7b6f7"
  }
}
```


## OpenAPI

````yaml openapi.json POST /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:
    post:
      summary: 'Asset: batch'
      description: >-
        Batch twin: up to 100 lookups in one call, each `{ id }` or `{ chain,
        address }`, optionally with `variant` to keep one product of the asset,
        chains mixed freely. Response in input order, one slot per item: `{ data
        }`, the body of the single GET for that item, or `{ error: { code,
        message } }` for that item alone (unknown id, token no asset groups,
        variant the asset does not have, malformed address), never `null`.
        Billed as one call per 25 items served: up to 25 items cost 1 credit, 26
        to 50 cost 2 credits, and so on.
      operationId: asset-batch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              additionalProperties: false
              type: object
              required:
                - items
              properties:
                items:
                  minItems: 1
                  maxItems: 100
                  type: array
                  items:
                    additionalProperties: false
                    type: object
                    properties:
                      id:
                        type: string
                      chain:
                        type: string
                      address:
                        type: string
                      variant:
                        type: string
                  description: >-
                    1 to 100 of `{id}` or `{chain, address}`, each with an
                    optional `variant`.
                  example:
                    - id: eth
                    - chain: evm:1
                      address: 0x2260…
                  x-default:
                    - id: eth
                    - chain: evm:1
                      address: 0x2260…
      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.