Chains
List the six supported chains with decimals, status, tip height and feature flags.
# 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.