# Chains

`GET https://api.rarebl.com/open/stats/chains` or `POST https://api.rarebl.com/open/stats/chains`

List the six supported chains with their identity, units, current tip, health and which features each one supports today.

**Rate class:** read (5 requests per second, burst 20, per IP). **Available since:** Open API v1.

## Request

Send the parameters as query parameters (GET) or as a JSON object (POST with `Content-Type: application/json`). They are identical either way. No API key is needed: `X-API-KEY` is reserved and ignored.

Example: `curl "https://api.rarebl.com/open/stats/chains"`

## Parameters

This endpoint takes no parameters.

## Responses

### API200 (HTTP 200): OK

The six chains, in a fixed order (btc, ltc, bch, dash, eth, tron).

```json
{
  "status": 1,
  "code": "API200",
  "message": "success",
  "data": {
    "chains": [
      {
        "id": "btc",
        "name": "Bitcoin",
        "symbol": "BTC",
        "decimals": 8,
        "kind": "utxo",
        "status": "ok",
        "tip": {
          "height": 975854,
          "hash": "00000000000000000000ac4918a89711fb90ab487b7e21d02995f39d88a83b9c",
          "time": "2026-11-14T22:25:13Z"
        },
        "historyFrom": null,
        "features": {
          "addressHistory": false,
          "addressBalance": false,
          "tokens": false,
          "mempool": true,
          "internalTxs": false
        }
      },
      {
        "id": "ltc",
        "name": "Litecoin",
        "symbol": "LTC",
        "decimals": 8,
        "kind": "utxo",
        "status": "ok",
        "tip": {
          "height": 3213201,
          "hash": "e7b72ef9f34b8f61b2b5dabec238088bf1198fe9779df88f5b1a87c8e3f276e7",
          "time": "2026-11-14T22:38:19Z"
        },
        "historyFrom": null,
        "features": {
          "addressHistory": false,
          "addressBalance": false,
          "tokens": false,
          "mempool": true,
          "internalTxs": false
        }
      },
      {
        "id": "bch",
        "name": "Bitcoin Cash",
        "symbol": "BCH",
        "decimals": 8,
        "kind": "utxo",
        "status": "ok",
        "tip": {
          "height": 977391,
          "hash": "00000000000000000130fbfa0ec402f4fca4b414cdff8d264e4caa225c9ea81e",
          "time": "2026-11-14T22:39:19Z"
        },
        "historyFrom": null,
        "features": {
          "addressHistory": false,
          "addressBalance": false,
          "tokens": false,
          "mempool": true,
          "internalTxs": false
        }
      },
      {
        "id": "dash",
        "name": "Dash",
        "symbol": "DASH",
        "decimals": 8,
        "kind": "utxo",
        "status": "ok",
        "tip": {
          "height": 2572373,
          "hash": "0000000000000008ef6f834cf172cb739f5542f0ad1f7103c9a22d65be56f064",
          "time": "2026-11-14T22:37:02Z"
        },
        "historyFrom": null,
        "features": {
          "addressHistory": true,
          "addressBalance": true,
          "tokens": false,
          "mempool": true,
          "internalTxs": false
        }
      },
      {
        "id": "eth",
        "name": "Ethereum",
        "symbol": "ETH",
        "decimals": 18,
        "kind": "account",
        "status": "lagging",
        "tip": null,
        "historyFrom": null,
        "features": {
          "addressHistory": false,
          "addressBalance": true,
          "tokens": true,
          "mempool": true,
          "internalTxs": false
        }
      },
      {
        "id": "tron",
        "name": "TRON",
        "symbol": "TRX",
        "decimals": 6,
        "kind": "account",
        "status": "lagging",
        "tip": {
          "height": 88007289,
          "hash": "00000000053ee279103116c09576a469acc68fe6ab27ffa89d3358ca59a3fc78",
          "time": "2026-11-14T22:36:06Z"
        },
        "historyFrom": "2026-09-08T17:50:00Z",
        "features": {
          "addressHistory": false,
          "addressBalance": true,
          "tokens": true,
          "mempool": true,
          "internalTxs": false
        }
      }
    ]
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

| Field | Type | Description |
| --- | --- | --- |
| `data.chains[].id` | string | Chain id: btc, ltc, bch, dash, eth or tron. |
| `data.chains[].kind` | string | `utxo` or `account`. |
| `data.chains[].decimals` | integer | Decimals of the native unit (8, 18 or 6). |
| `data.chains[].status` | string | `ok`, `lagging` or `down` (the node did not answer). |
| `data.chains[].tip` | object \| null | Latest block `{height, hash, time}`; null while the node is syncing or down. |
| `data.chains[].historyFrom` | string \| null | Earliest block time that can be shown. TRON starts on 2026-09-08; null where full history is available. |
| `data.chains[].features` | object | Booleans: `addressHistory`, `addressBalance`, `tokens`, `mempool`, `internalTxs`. Check these before relying on an endpoint for a chain. |

### API429 (HTTP 429): Too Many Requests

Rate limited (5 requests per second per IP, burst 20). A `Retry-After` header says how long to wait, in seconds.

```json
{
  "status": 0,
  "code": "API429",
  "message": "Too many requests. Please retry shortly.",
  "data": null,
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

### API502 (HTTP 502): Bad Gateway

The node is unavailable, still syncing or timed out. Retry later with a short back-off.

```json
{
  "status": 0,
  "code": "API502",
  "message": "The node is unavailable or timed out. Please try again.",
  "data": null,
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

## Notes

- Use `features` to see what is available per chain today (for example `addressHistory` is true only for DASH until the history index is built).
- The reply is cached for about 10 seconds. For a fast-moving view of the chain heads, use [Live stats](https://docs.rarebl.com/api/stats/live).
- The example is a real reply from 2026-11-14. ETH was `lagging` with a null `tip` (its node was still syncing) and TRON was `lagging` because its newest block was a few minutes old.
