# Tokens & prices

> Token profiles, live USD prices, batch prices, sparse batch profiles and every market a token trades in on Robinhood Chain.

Source: https://crius.sh/docs/reference/tokens/

Everything about one token, or many at once. The **token profile** is the richest call (metadata, socials, supply, launch, market, holders summary, liquidity locks, security summary, rolling stats). The **price** call is the smallest and fastest: use it in hot loops. For many tokens, use **batch prices** (up to 100 per call) or **batch profiles** with a field list.

Prices are derived on-chain: token → its deepest pool's quote (ETH, WETH, USDG or another token) → USD through the deepest ETH/USDG pool. Tokenized stocks follow the same path, using on-chain pools only. `confidence` and `thin_liquidity` tell you how much to trust a price.

| Endpoint | Method | Plan | Credits |
|---|---|---|---|
| [Token profile](#token-profile) | `GET /v1/{chain}/token/{address}` | Anonymous | 1 |
| [Token price](#token-price) | `GET /v1/{chain}/token/{address}/price` | Anonymous | 1 |
| [Batch prices](#batch-prices) | `GET /v1/{chain}/prices` | Anonymous | 1 |
| [Batch prices (POST)](#batch-prices-post) | `POST /v1/{chain}/prices` | Anonymous | 1 |
| [Batch token profiles](#batch-token-profiles) | `POST /v1/{chain}/tokens/batch` | Anonymous | 1 |
| [Token markets](#token-markets) | `GET /v1/{chain}/token/{address}/pools` | Anonymous | 1 |

## Token profile

**GET** `/v1/{chain}/token/{address}`

**Plan:** Anonymous and above (no key needed) · **Cost:** 1 credit per call

Full profile of any ERC-20 on the chain: name, symbol, decimals, supply (total, burned, locked, circulating), creation and launchpad lifecycle, metadata and socials (with their source), price with change per window and all-time high, market (market cap, FDV, liquidity), holder summary (count, top-10 share, dev holding), liquidity lock status, contract verification and rolling trade stats.

Heavier sections link to their own endpoints (`security.see`, `bundles.see`) so the profile stays fast.

> Identity, supply, metadata & socials, creation, verification, launch, price + change + ATH, market (FDV, market cap, liquidity), stats per window, holders summary, liquidity summary, dexscreener (dex paid, community takeover, boosts; confirmed against DexScreener orders).

### Parameters

| Name | In | Type | Default | Description |
|---|---|---|---|---|
| `chain` | path, required | string |  | Chain slug (`robinhood`) or chain id (`4663`). |
| `address` | path, required | string |  | Contract or wallet address, any case (`0x…`, 20 bytes). |

### Request

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

[Try it in the playground →](https://crius.sh/docs/playground/?op=GET%20%2Fv1%2F%7Bchain%7D%2Ftoken%2F%7Baddress%7D)

### Key response fields

- `price.usd`, `price.change_pct` (per window), `price.ath_usd`, `price.confidence`
- `market.market_cap_usd`, `market.fdv_usd`, `market.liquidity_usd`, `market.quote_liquidity_usd`, `market.pools_count`
- `holders.count`, `holders.top10_pct`, `holders.dev_pct`, `holders.burned_pct`, `holders.locked_pct`
- `launch`: launchpad id and name, creator, curve, `status` (`bonding` / `graduated`), `progress_pct`, launch and graduation blocks
- `liquidity`: lock status, lockers, next unlock time
- `stats`: trades, buys, sells, traders, volume per window plus `all_time`
- `metadata`: description, logo, socials, and where they came from

### Example response

Real response captured from the API (arrays trimmed to three items).

```json
{
  "data": {
    "address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
    "admin_flags": null,
    "bundles": {
      "see": "/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/bundles"
    },
    "burned": 29840058.774195638068253872,
    "chain_id": 4663,
    "circulating_supply": 970159941.225804361931746128,
    "creation": {
      "attribution": "known_launchpad",
      "block": 88385886,
      "deployed_via": "pons_v2",
      "deployer": "0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca",
      "factory": "0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e",
      "launchpad_name": "Pons",
      "tx": "0x4d9536e81ce418070e93b72f46f1d91afdd6a9ed34141b8e3773926b0d863747"
    },
    "decimals": 18,
    "dexscreener": {
      "boosts": {
        "active_amount": null,
        "active_seen_ts": null,
        "count": 0,
        "last_ts": null,
        "total_amount": 0
      },
      "checked_ts": 1792712926595,
      "community_takeover": false,
      "community_takeover_ts": null,
      "confirmed": true,
      "dex_paid": true,
      "dex_paid_ts": 1791988981764,
      "orders": [
        {
          "payment_ts": 1791988981764,
          "status": "approved",
          "type": "tokenProfile"
        }
      ],
      "profile": {
        "description": null,
        "header": null,
        "icon": null,
        "links": []
      },
      "url": "https://dexscreener.com/robinhood/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8"
    },
    "first_seen_block": 88385886,
    "history": "complete",
    "holders": {
      "burned_pct": 2.98401,
      "count": 201,
      "dev_holding": false,
      "dev_pct": 0,
      "locked_pct": 8.16327,
      "top10_pct": 88.5277
    },
    "launch": {
      "creator": "0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca",
      "creator_label": null,
      "curve": "0x2b0943bf947b54df526047b6fec8183a4fdeb3c3",
      "curve_state": null,
      "graduated_block": 88461321,
      "graduation_threshold": 4.2,
      "launched_block": 88385886,
      "launchpad": "pons",
      "launchpad_name": "Pons",
      "pair_token": "0x0000000000000000000000000000000000000000",
      "progress_pct": 100,
      "raised": null,
      "status": "graduated"
    },
    "liquidity": {
      "locked_pct": 100,
      "lockers": [
        "pons_v2_launch_locker"
      ],
      "next_unlock_ts": null,
      "permanent": true,
      "status": "locked"
    },
    "locked": 81632653.061224486519511236,
    "market": {
      "fdv_usd": 5764.13,
      "liquidity_usd": 6869.4,
      "market_cap_usd": 5592.13,
      "pools_count": 10,
      "quote_liquidity_usd": 3434.7
    },
    "metadata": {
      "description": "hf:charge-ai/charge-30b@9ff2ef1e98ea4d9745a70b33ea02b80dba26c582",
      "logo": "https://api.surplusllm.com/api/launchpad/logos/bb4315cb9506ef872830b1dab25ffdb6694df1b8b8e32cc2c8d083208f26baab.png",
      "socials": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": {
          "source": "pons_launch",
          "url": "https://x.com/chargeairh"
        },
        "website": {
          "source": "pons_launch",
          "url": "https://chargeai.bid/"
        }
      },
      "source": "pons_launch"
    },
    "name": "Charge AI",
    "price": {
      "ath_market_cap_usd": 68295.9,
      "ath_scope": "all_time",
      "ath_ts": 1792055700000,
      "ath_usd": 0.0000703965,
      "change_pct": {
        "1h": -0.109425,
        "1m": -0.109425,
        "1s": -0.109425,
        "24h": -3.67324,
        "30s": -0.109425,
        "4h": -1.31288,
        "5m": -0.109425,
        "6h": -1.31288
      },
      "confidence": "medium",
      "dex": "uniswap_v4",
      "eth": 0.0000000024199,
      "liquidity_usd": 6861.07,
      "quote": "0x0000000000000000000000000000000000000000",
      "quote_liquidity_usd": 3430.53,
      "source_pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
      "thin_liquidity": false,
      "usd": 0.00000576413
    },
    "security": {
      "see": "/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/security"
    },
    "standard": "erc20",
    "stats": {
      "all_time": {
        "buy_volume_usd": 142708,
        "buys": 2880,
        "first_trade_ts": 1791982835000,
        "sell_volume_usd": 136694,
        "sells": 2210,
        "since": "chain_start",
        "trades": 5090,
        "volume_usd": 279402
      },
      "avg_trade_usd": {
        "1h": null,
        "1m": null,
        "1s": null,
        "24h": 30.7463,
        "30s": null,
        "4h": 11.3632,
        "5m": null,
        "6h": 11.3632
      },
      "buy_volume_usd": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 238.251,
        "30s": 0,
        "4h": 7.40995,
        "5m": 0,
        "6h": 7.40995
      },
      "buyers": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 5,
        "30s": 0,
        "4h": 1,
        "5m": 0,
        "6h": 1
      },
      "buys": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 9,
        "30s": 0,
        "4h": 1,
        "5m": 0,
        "6h": 1
      },
      "last_trade_ts": 1792705534000,
      "sell_volume_usd": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 222.943,
        "30s": 0,
        "4h": 15.3164,
        "5m": 0,
        "6h": 15.3164
      },
      "sellers": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 6,
        "30s": 0,
        "4h": 1,
        "5m": 0,
        "6h": 1
      },
      "sells": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 6,
        "30s": 0,
        "4h": 1,
        "5m": 0,
        "6h": 1
      },
      "traders": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 10,
        "30s": 0,
        "4h": 2,
        "5m": 0,
        "6h": 2
      },
      "trades": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 15,
        "30s": 0,
        "4h": 2,
        "5m": 0,
        "6h": 2
      },
      "txns": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 15,
        "30s": 0,
        "4h": 2,
        "5m": 0,
        "6h": 2
      },
      "volume_eth": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 0.189336,
        "30s": 0,
        "4h": 0.00954709,
        "5m": 0,
        "6h": 0.00954709
      },
      "volume_usd": {
        "1h": 0,
        "1m": 0,
        "1s": 0,
        "24h": 461.194,
        "30s": 0,
        "4h": 22.7263,
        "5m": 0,
        "6h": 22.7263
      }
    },
    "symbol": "CHARGE",
    "total_supply": 1000000000,
    "type": "launchpad",
    "ui_multiplier": null,
    "verification": {
      "compiler": null,
      "contract_name": null,
      "implementation": null,
      "is_proxy": null,
      "sourcify": null
    }
  },
  "meta": {
    "block": 95504341,
    "block_age_ms": 373,
    "block_ts": 1792712990000,
    "chain": "robinhood",
    "finalized_block": 95493649,
    "lag_ms": 97,
    "pending": [],
    "safe_block": 95497061
  }
}
```

## Token price

**GET** `/v1/{chain}/token/{address}/price`

**Plan:** Anonymous and above (no key needed) · **Cost:** 1 credit per call

The fastest call: USD and ETH price, the pool it came from, that pool's liquidity and a confidence level. Ideal for bots, widgets and portfolio valuation.

> Deepest pool against ETH / WETH / USDG (real reserves), ETH/USD from the deepest ETH/USDG pool.

### Parameters

| Name | In | Type | Default | Description |
|---|---|---|---|---|
| `chain` | path, required | string |  | Chain slug (`robinhood`) or chain id (`4663`). |
| `address` | path, required | string |  | Contract or wallet address, any case (`0x…`, 20 bytes). |

### Request

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

[Try it in the playground →](https://crius.sh/docs/playground/?op=GET%20%2Fv1%2F%7Bchain%7D%2Ftoken%2F%7Baddress%7D%2Fprice)

### Key response fields

- `usd`, `eth`: price per whole token
- `source_pool`, `dex`, `quote`: where the price comes from
- `liquidity_usd` (2 × the quote side, DEX-screener convention) and `quote_liquidity_usd` (the real quote side)
- `confidence` (`high` / `medium` / `low`) and `thin_liquidity`

### Example response

Real response captured from the API (arrays trimmed to three items).

```json
{
  "data": {
    "confidence": "medium",
    "dex": "uniswap_v4",
    "eth": 0.0000000024199,
    "eth_usd": 2381.97,
    "liquidity_usd": 6861.07,
    "quote": "0x0000000000000000000000000000000000000000",
    "quote_liquidity_usd": 3430.53,
    "source_pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
    "symbol": "CHARGE",
    "thin_liquidity": false,
    "token": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
    "usd": 0.00000576413
  },
  "meta": {
    "block": 95504348,
    "block_age_ms": 1075,
    "block_ts": 1792712990000,
    "chain": "robinhood",
    "finalized_block": 95493649,
    "lag_ms": 114,
    "safe_block": 95497061
  }
}
```

## Batch prices

**GET** `/v1/{chain}/prices`

**Plan:** Anonymous and above (no key needed) · **Cost:** 1 credit per call

Prices for up to **100 tokens** in one call. Pass a comma-separated list in `tokens`. Unknown addresses are listed in `meta.missing` instead of failing the request.

> Also POST with {"tokens": [...]}.

### Parameters

| Name | In | Type | Default | Description |
|---|---|---|---|---|
| `chain` | path, required | string |  | Chain slug (`robinhood`) or chain id (`4663`). |
| `tokens` | query | string | `0x8ac48210be19378229f12060d499c3b0eae5e14e,0x7b8892cea949bc60d494681d1bc3ea96071ab0b8` | Comma-separated token addresses (up to 100). |

### Request

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/prices?tokens=0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2C0x0bd7d308f8e1639fab988df18a8011f41eacad73" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/prices?tokens=0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2C0x0bd7d308f8e1639fab988df18a8011f41eacad73", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/prices?tokens=0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2C0x0bd7d308f8e1639fab988df18a8011f41eacad73",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

[Try it in the playground →](https://crius.sh/docs/playground/?op=GET%20%2Fv1%2F%7Bchain%7D%2Fprices)

### Example response

Real response captured from the API (arrays trimmed to three items).

```json
{
  "data": {
    "0x0bd7d308f8e1639fab988df18a8011f41eacad73": {
      "change_24h_pct": -3.51169,
      "confidence": "high",
      "eth": 1,
      "liquidity_usd": 6101152,
      "source_pool": "0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",
      "symbol": "WETH",
      "usd": 2381.97
    },
    "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8": {
      "change_24h_pct": -3.67324,
      "confidence": "medium",
      "eth": 0.0000000024199,
      "liquidity_usd": 6861.07,
      "source_pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
      "symbol": "CHARGE",
      "usd": 0.00000576413
    }
  },
  "meta": {
    "block": 95504355,
    "block_age_ms": 777,
    "block_ts": 1792712991000,
    "chain": "robinhood",
    "finalized_block": 95493649,
    "lag_ms": 5,
    "missing": [],
    "safe_block": 95497061
  }
}
```

## Batch prices (POST)

**POST** `/v1/{chain}/prices`

**Plan:** Anonymous and above (no key needed) · **Cost:** 1 credit per call

Same as the GET form, with the list in a JSON body. Use it when the list would make the URL too long.

### Parameters

| Name | In | Type | Default | Description |
|---|---|---|---|---|
| `chain` | path, required | string |  | Chain slug (`robinhood`) or chain id (`4663`). |

### Body

```json
{
  "tokens": [
    "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
    "0x0bd7d308f8e1639fab988df18a8011f41eacad73"
  ]
}
```

### Request

**cURL**

```bash
curl -X POST "https://api.crius.sh/v1/robinhood/prices" \
  -H "x-api-key: $CRIUS_API_KEY" \
  -H "content-type: application/json" \
  -d '{"tokens":["0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","0x0bd7d308f8e1639fab988df18a8011f41eacad73"]}'
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/prices", {
  method: "POST",
  headers: {
    "x-api-key": process.env.CRIUS_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "tokens": [
      "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
      "0x0bd7d308f8e1639fab988df18a8011f41eacad73"
    ]
  }),
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.crius.sh/v1/robinhood/prices",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
    json={"tokens":["0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","0x0bd7d308f8e1639fab988df18a8011f41eacad73"]},
)
body = r.json()
print(body["data"])
```

[Try it in the playground →](https://crius.sh/docs/playground/?op=POST%20%2Fv1%2F%7Bchain%7D%2Fprices)

### Example response

Real response captured from the API (arrays trimmed to three items).

```json
{
  "data": {
    "0x0bd7d308f8e1639fab988df18a8011f41eacad73": {
      "change_24h_pct": -3.50483,
      "confidence": "high",
      "eth": 1,
      "liquidity_usd": 6101152,
      "source_pool": "0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551",
      "symbol": "WETH",
      "usd": 2381.97
    },
    "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8": {
      "change_24h_pct": -3.67324,
      "confidence": "medium",
      "eth": 0.0000000024199,
      "liquidity_usd": 6861.07,
      "source_pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
      "symbol": "CHARGE",
      "usd": 0.00000576413
    }
  },
  "meta": {
    "block": 95504362,
    "block_age_ms": 481,
    "block_ts": 1792712992000,
    "chain": "robinhood",
    "finalized_block": 95493649,
    "lag_ms": 15,
    "missing": [],
    "safe_block": 95497061
  }
}
```

## Batch token profiles

**POST** `/v1/{chain}/tokens/batch`

**Plan:** Anonymous and above (no key needed) · **Cost:** 1 credit per call

Token profiles for up to **100 tokens**, trimmed to the fields you ask for. `fields` takes dot paths into the profile above (`price.usd`, `market.market_cap_usd`, `holders.count`…); an empty list returns full profiles.

> fields: dotted paths of the token profile.

### Parameters

| Name | In | Type | Default | Description |
|---|---|---|---|---|
| `chain` | path, required | string |  | Chain slug (`robinhood`) or chain id (`4663`). |

### Body

```json
{
  "tokens": [
    "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
    "0x0bd7d308f8e1639fab988df18a8011f41eacad73"
  ],
  "fields": [
    "symbol",
    "price.usd",
    "price.change_pct.24h",
    "market.market_cap_usd",
    "market.liquidity_usd"
  ]
}
```

### Request

**cURL**

```bash
curl -X POST "https://api.crius.sh/v1/robinhood/tokens/batch" \
  -H "x-api-key: $CRIUS_API_KEY" \
  -H "content-type: application/json" \
  -d '{"tokens":["0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","0x0bd7d308f8e1639fab988df18a8011f41eacad73"],"fields":["symbol","price.usd","price.change_pct.24h","market.market_cap_usd","market.liquidity_usd"]}'
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/tokens/batch", {
  method: "POST",
  headers: {
    "x-api-key": process.env.CRIUS_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "tokens": [
      "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
      "0x0bd7d308f8e1639fab988df18a8011f41eacad73"
    ],
    "fields": [
      "symbol",
      "price.usd",
      "price.change_pct.24h",
      "market.market_cap_usd",
      "market.liquidity_usd"
    ]
  }),
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.crius.sh/v1/robinhood/tokens/batch",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
    json={"tokens":["0x7b8892cea949bc60d494681d1bc3ea96071ab0b8","0x0bd7d308f8e1639fab988df18a8011f41eacad73"],"fields":["symbol","price.usd","price.change_pct.24h","market.market_cap_usd","market.liquidity_usd"]},
)
body = r.json()
print(body["data"])
```

[Try it in the playground →](https://crius.sh/docs/playground/?op=POST%20%2Fv1%2F%7Bchain%7D%2Ftokens%2Fbatch)

### Example response

Real response captured from the API (arrays trimmed to three items).

```json
{
  "data": {
    "0x0bd7d308f8e1639fab988df18a8011f41eacad73": {
      "market": {
        "liquidity_usd": 71541592,
        "market_cap_usd": 98288648
      },
      "price": {
        "change_pct": {
          "24h": -3.50483
        },
        "usd": 2381.97
      },
      "symbol": "WETH"
    },
    "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8": {
      "market": {
        "liquidity_usd": 6869.4,
        "market_cap_usd": 5592.13
      },
      "price": {
        "change_pct": {
          "24h": -3.67324
        },
        "usd": 0.00000576413
      },
      "symbol": "CHARGE"
    }
  },
  "meta": {
    "block": 95504430,
    "block_age_ms": 406,
    "block_ts": 1792712999000,
    "chain": "robinhood",
    "finalized_block": 95493649,
    "lag_ms": 178,
    "missing": [],
    "safe_block": 95497061
  }
}
```

## Token markets

**GET** `/v1/{chain}/token/{address}/pools`

**Plan:** Anonymous and above (no key needed) · **Cost:** 1 credit per call

Every market the token trades in: Uniswap v2 pairs, v3 pools (all fee tiers), v4 pools (with their hook) and launchpad bonding curves, with liquidity and 24h activity. Paginate with `cursor`.

> Uniswap V2/V3/V4, Pons and launchpad curves, ranked by USD liquidity (2 x quote side, from each pool's own state). is_price_pool marks the market the token price comes from. meta.total = all pools.

### Parameters

| Name | In | Type | Default | Description |
|---|---|---|---|---|
| `chain` | path, required | string |  | Chain slug (`robinhood`) or chain id (`4663`). |
| `address` | path, required | string |  | Contract or wallet address, any case (`0x…`, 20 bytes). |
| `limit` | query | integer | `50` | Maximum number of items to return. Up to 200. |
| `cursor` | query | string |  | Pagination cursor from the previous response's `meta.next_cursor`. |

### Request

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/pools?limit=3" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/pools?limit=3", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/pools?limit=3",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

[Try it in the playground →](https://crius.sh/docs/playground/?op=GET%20%2Fv1%2F%7Bchain%7D%2Ftoken%2F%7Baddress%7D%2Fpools)

### Example response

Real response captured from the API (arrays trimmed to three items).

```json
{
  "data": [
    {
      "amounts": {
        "token0": 1.44021,
        "token1": 595151991
      },
      "base": {
        "address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
        "symbol": "CHARGE"
      },
      "created_block": 88461321,
      "dex": "uniswap_v4",
      "dynamic_fee": false,
      "fee": 0,
      "hook": {
        "address": "0xe5e702641ea86f4ae6cc3cdaed2b886f976be044",
        "name": "pons_v2_meme_hook"
      },
      "is_price_pool": true,
      "liquidity_usd": 6861.07,
      "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
      "price_usd": 0.00000576413,
      "quote": {
        "address": "0x0000000000000000000000000000000000000000",
        "symbol": "ETH"
      },
      "quote_liquidity_usd": 3430.53,
      "state": {
        "liquidity": 29277002188455996438188,
        "reserve0": 0,
        "reserve1": 0,
        "sqrt_price_x96": 1610574686881614931072228111579696,
        "tick": 198405
      },
      "swaps_indexed": 383,
      "tick_spacing": 200
    },
    {
      "amounts": {
        "token0": 3.66104,
        "token1": 98899.9
      },
      "base": {
        "address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
        "symbol": "CHARGE"
      },
      "created_block": 88461495,
      "dex": "uniswap_v4",
      "dynamic_fee": false,
      "fee": 850000,
      "hook": null,
      "is_price_pool": false,
      "liquidity_usd": 7.32208,
      "pool": "0xe928234e515b0c000dd6aa1c60cf5a009082367cda4775a5b63b4ff0c83dcdd3",
      "price_usd": 0.0000370176,
      "quote": {
        "address": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
        "symbol": "USDG"
      },
      "quote_liquidity_usd": 3.66104,
      "state": {
        "liquidity": 601728037770030,
        "reserve0": 0,
        "reserve1": 0,
        "sqrt_price_x96": 13021930043213842984890107533469941760,
        "tick": 378370
      },
      "swaps_indexed": 0,
      "tick_spacing": 60
    },
    {
      "amounts": {
        "token0": 0.365039,
        "token1": 32233.4
      },
      "base": {
        "address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
        "symbol": "CHARGE"
      },
      "created_block": 88466617,
      "dex": "uniswap_v4",
      "dynamic_fee": false,
      "fee": 450000,
      "hook": null,
      "is_price_pool": false,
      "liquidity_usd": 0.730077,
      "pool": "0x1a184f0aa1978e7b543ee944a30df88dd34fcb667aa5a9142bb399ef582481b8",
      "price_usd": 0.0000113249,
      "quote": {
        "address": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
        "symbol": "USDG"
      },
      "quote_liquidity_usd": 0.365039,
      "state": {
        "liquidity": 108473206521826,
        "reserve0": 0,
        "reserve1": 0,
        "sqrt_price_x96": 23543071597340630825735724748883305548,
        "tick": 390214
      },
      "swaps_indexed": 3,
      "tick_spacing": 4500
    }
  ],
  "meta": {
    "block": 95504370,
    "block_age_ms": 1196,
    "block_ts": 1792712992000,
    "chain": "robinhood",
    "finalized_block": 95493649,
    "lag_ms": 0,
    "next_cursor": "3",
    "safe_block": 95497061,
    "total": 10
  }
}
```
