# Build a Robinhood Chain stats dashboard

> Build a Robinhood Chain analytics dashboard with the Crius API: DEX volume, trades, TVL, launches, gas and volume history in your time zone, with code.

Source: https://docs.crius.sh/guides/build-a-chain-stats-dashboard/ · Updated 2026-10-28

Short answer

Use `GET /v1/robinhood/stats?window=24h` (or `1h`, `7d`) for headline numbers (DEX volume per DEX, trades, traders, TVL, locked liquidity, launches per launchpad, gas, block time), `GET /v1/robinhood/volume?days=30&tz=...` for daily and hourly series and weekday / hour patterns, and `/launchpads` and `/v1/status` for the rest. All work without a key; with one, each data call costs 1 credit. Cache them for a minute.

[GET `/stats`](https://docs.crius.sh/reference/chain/chain-stats/) [GET `/volume`](https://docs.crius.sh/reference/chain/volume-history/) [GET `/launchpads`](https://docs.crius.sh/reference/launchpads/launchpads/) [GET `/v1/status`](https://docs.crius.sh/reference/chain/service-status/) [GET `/tokens`](https://docs.crius.sh/reference/discovery/token-lists/)

A Robinhood Chain stats dashboard shows the state of the whole chain at a glance: DEX volume and trades, active traders, total value locked, new tokens and graduations per launchpad, gas costs and block times, with history charts behind them. The Crius API serves each panel from one call: [chain stats](https://docs.crius.sh/reference/chain/chain-stats/) for the headline numbers, [volume history](https://docs.crius.sh/reference/chain/volume-history/) for the charts and patterns, [launchpads](https://docs.crius.sh/reference/launchpads/launchpads/) for the launchpad table and [service status](https://docs.crius.sh/reference/chain/service-status/) for index health. All of them are on the anonymous plan.

## Architecture

1.  **One backend cache.** A small server calls each endpoint on its own schedule and keeps the last response. Visitors read the cache, so a dashboard with thousands of views a day makes a few thousand calls, not millions.
    
2.  **Panels.** Tiles from `/stats` (1h and 24h), a daily volume bar chart and an hourly line from `/volume`, a weekday × hour heatmap from `/volume`’s patterns, a launchpad table from `/launchpads`, a trending list from `/tokens?list=trending`, and an index-health badge from `/v1/status`.
    
3.  **Freshness.** Show `meta.block` and `meta.lag_ms` from the responses you display, so readers know which block the numbers reflect.
    

Endpoints used: [GET`/stats`](https://docs.crius.sh/reference/chain/chain-stats/) [GET`/volume`](https://docs.crius.sh/reference/chain/volume-history/) [GET`/launchpads`](https://docs.crius.sh/reference/launchpads/launchpads/) [GET`/v1/status`](https://docs.crius.sh/reference/chain/service-status/) [GET`/tokens`](https://docs.crius.sh/reference/discovery/token-lists/)

## Headline numbers: the last hour

Example [Anonymous · no key · 1 credit](https://docs.crius.sh/reference/chain/chain-stats/)

### Robinhood Chain in the last hour

How much traded on Robinhood Chain in the last hour, where, and what did a swap cost?

GET/v1/robinhood/stats?window=1h

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/stats?window=1h"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/stats?window=1h");
const { data, meta } = await res.json();
```

**Python**

```python
import requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/stats?window=1h",
)
body = r.json()
print(body["data"])
```

**Real response 200 Captured Oct 28, 2026 · 100 lines (arrays trimmed)**

```json
{
  "data": {
    "blocks": {
      "active_wallets": 20075,
      "avg_block_time_ms": 98,
      "tps_1m": 36.7,
      "txs": 133816
    },
    "chain": "robinhood",
    "chain_id": 4663,
    "dex": {
      "by_dex": {
        "launch_curve": 61192.3,
        "pons_curve": 1062218,
        "uniswap_v2": 275858,
        "uniswap_v3": 11880413,
        "uniswap_v4": 14793757
      },
      "traders": 21078,
      "trades": 153255,
      "volume_usd": 28073439,
      "wash_volume_usd": 2621.56
    },
    "eth_usd": 2355.49,
    "finalized_block": 100401329,
    "gas": {
      "avg_swap_cost_eth": 0.00000827998,
      "avg_swap_cost_usd": 0.0195034,
      "l1_base_fee_gwei": 0,
      "l2_gas_price_gwei": 0.021874
    },
    "head_block": 100409861,
    "l1_block": 26294128,
    "launchpads": [
      {
        "graduated": 4,
        "launches": 158,
        "launchpad": "pons",
        "launchpad_name": "Pons",
        "volume_usd": 2519361
      },
      {
        "graduated": 0,
        "launches": 29,
        "launchpad": "long",
        "launchpad_name": "Long.xyz",
        "volume_usd": 386815
      },
      {
        "graduated": 1,
        "launches": 55,
        "launchpad": "flap",
        "launchpad_name": "Flap.sh",
        "volume_usd": 58185.2
      }
    ],
    "liquidity": {
      "locked_lp_usd": 44720881,
      "method": "2x quote side (ETH/WETH/USDG) of every pool; V3/V4 in-range",
      "tvl_usd": 322374159
    },
    "pools": {
      "by_dex": {
        "launch_curve": 55,
        "pons_curve": 158,
        "uniswap_v2": 61,
        "uniswap_v3": 5,
        "uniswap_v4": 412
      },
      "new": 691
    },
    "reorgs": {
      "count": 0,
      "max_depth": 0
    },
    "safe_block": 100405028,
    "tokens": {
      "by_attribution": {
        "known_launchpad": 243,
        "other": 163
      },
      "new": 406,
      "new_1h": 406
    },
    "window": "1h"
  },
  "meta": {
    "block": 100409861,
    "block_age_ms": 1204,
    "block_ts": 1793225391000,
    "chain": "robinhood",
    "coverage": {
      "note": "aggregates cover blocks indexed since start_block until backfill completes",
      "since_block": 0
    },
    "finalized_block": 100401329,
    "lag_ms": 74,
    "safe_block": 100405028
  }
}
```

What this tells you

-   `dex.volume_usd` 28,073,439 across 153,255 `trades` by 21,078 `traders`. `dex.by_dex` splits it: Uniswap v4 14,793,757, v3 11,880,413, the Pons curve 1,062,218, v2 275,858 and other launch curves 61,192.3.
-   `tokens.new` 406 in the hour: 243 from known launchpads, 163 other (`tokens.by_attribution`). `launchpads` has Pons at 158 launches and 4 graduations, Long.xyz at 29 and Flap.sh at 55 launches with 1 graduation.
-   `liquidity.tvl_usd` 322,374,159 with 44,720,881 in locked LP (`locked_lp_usd`); `liquidity.method` says how TVL is counted (2 × the quote side of every pool, in-range for v3 and v4).
-   `gas.avg_swap_cost_usd` is about 2 cents (0.0195034), `blocks.avg_block_time_ms` 98 and `blocks.tps_1m` 36.7. `reorgs.count` is 0.
-   `meta.coverage.since_block: 0`: the aggregates cover the chain from its first block.

[Chain stats reference](https://docs.crius.sh/reference/chain/chain-stats/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20Robinhood%20Chain%20in%20the%20last%20hour&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fguides%2Fbuild-a-chain-stats-dashboard%2F%23stats-1h%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Fstats%3Fwindow%3D1h%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## Charts: volume history in your time zone

Example [Anonymous · no key · 1 credit](https://docs.crius.sh/reference/chain/volume-history/)

### Daily and hourly volume, New York time

What were the last three days of volume in New York time, and when is the chain busiest?

GET/v1/robinhood/volume?days=3&hours=3&tz=America/New\_York

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/volume?days=3&hours=3&tz=America/New_York"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/volume?days=3&hours=3&tz=America/New_York");
const { data, meta } = await res.json();
```

**Python**

```python
import requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/volume?days=3&hours=3&tz=America/New_York",
)
body = r.json()
print(body["data"])
```

**Real response 200 Captured Oct 28, 2026 · 334 lines (arrays trimmed)**

```json
{
  "data": {
    "as_of_ts": 1793225400000,
    "by_hour": {
      "lookback_days": 90,
      "peak_hour": 10,
      "quietest_hour": 0,
      "rows": [
        {
          "avg_trades": 141478,
          "avg_volume_usd": 30431396,
          "days_counted": 89,
          "hour": 0,
          "share_pct": 2.96526
        },
        {
          "avg_trades": 143248,
          "avg_volume_usd": 31741345,
          "days_counted": 89,
          "hour": 1,
          "share_pct": 3.0929
        },
        {
          "avg_trades": 137989,
          "avg_volume_usd": 30467983,
          "days_counted": 89,
          "hour": 2,
          "share_pct": 2.96882
        }
      ]
    },
    "by_weekday": {
      "lookback_days": 90,
      "peak_day": "wednesday",
      "quietest_day": "saturday",
      "rows": [
        {
          "avg_trades": 4188231,
          "avg_volume_usd": 1007469201,
          "day": "monday",
          "days_counted": 13,
          "share_pct": 14.3392,
          "total_volume_usd": 13097099608
        },
        {
          "avg_trades": 4146036,
          "avg_volume_usd": 985164052,
          "day": "tuesday",
          "days_counted": 13,
          "share_pct": 14.0218,
          "total_volume_usd": 12807132672
        },
        {
          "avg_trades": 4322566,
          "avg_volume_usd": 1438855279,
          "day": "wednesday",
          "days_counted": 12,
          "share_pct": 18.9038,
          "total_volume_usd": 17266263345
        }
      ]
    },
    "chain": "robinhood",
    "daily": {
      "busiest_day": {
        "ts": 1792900800000,
        "volume_usd": 530086557
      },
      "days": 3,
      "rows": [
        {
          "buy_volume_usd": 276848199,
          "sell_volume_usd": 253238359,
          "trades": 1497541,
          "ts": 1792900800000,
          "volume_usd": 530086557,
          "wash_volume_usd": 50353764
        },
        {
          "buy_volume_usd": 263678297,
          "sell_volume_usd": 249859608,
          "trades": 1579804,
          "ts": 1792987200000,
          "volume_usd": 513537905,
          "wash_volume_usd": 50665065
        },
        {
          "buy_volume_usd": 237376106,
          "sell_volume_usd": 198604557,
          "trades": 1536041,
          "ts": 1793073600000,
          "volume_usd": 435980663,
          "wash_volume_usd": 50477350
        }
      ]
    },
    "hourly": {
      "busiest_hour": {
        "ts": 1793217600000,
        "volume_usd": 41214488
      },
      "hours": 3,
      "rows": [
        {
          "buy_volume_usd": 20462975,
          "sell_volume_usd": 15801392,
          "trades": 117048,
          "ts": 1793214000000,
          "volume_usd": 36264366,
          "wash_volume_usd": 38390.2
        },
        {
          "buy_volume_usd": 19621873,
          "sell_volume_usd": 21592616,
          "trades": 115601,
          "ts": 1793217600000,
          "volume_usd": 41214488,
          "wash_volume_usd": 111979
        },
        {
          "buy_volume_usd": 13778367,
          "sell_volume_usd": 12101340,
          "trades": 140966,
          "ts": 1793221200000,
          "volume_usd": 25879707,
          "wash_volume_usd": 2621.56
        }
      ]
    },
    "method": {
      "caught_up": true,
      "data_since_ts": 1779484440000,
      "live": "windows up to 1h from the live trade flow (chain time); longer windows from complete minutes plus the live flow",
      "outliers": "excluded: single trades valued above $25000000 (mispriced quotes), counted in outlier_trades",
      "table_through_ts": 1793224860000,
      "volume": "organic DEX volume in USD at trade time (Uniswap V2/V3/V4, launchpad curves)",
      "wash": "excluded: same-tx round trips — buys and sells of one token in one pool inside one tx that cancel within 2%"
    },
    "tz": "America/New_York",
    "windows": {
      "180d": {
        "buy_volume_usd": 54359954506,
        "buys": 253835268,
        "change_pct": null,
        "complete": false,
        "outlier_trades": 762,
        "prev_volume_usd": null,
        "sell_volume_usd": 52437080014,
        "sells": 204582929,
        "tokens": 1738934,
        "traders": 8246046,
        "traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
        "trades": 458418197,
        "volume_usd": 106797034520,
        "wash_trades": 1140815,
        "wash_volume_usd": 43228252019
      },
      "1h": {
        "buy_volume_usd": 14265111,
        "buys": 75723,
        "change_pct": -0.550523,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 28270704,
        "sell_volume_usd": 13849957,
        "sells": 77740,
        "tokens": 1727,
        "traders": 21102,
        "trades": 153463,
        "volume_usd": 28115068,
        "wash_trades": 27,
        "wash_volume_usd": 2621.56
      },
      "1m": {
        "buy_volume_usd": 215981,
        "buys": 1243,
        "change_pct": -15.5255,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 462782,
        "sell_volume_usd": 174952,
        "sells": 1029,
        "tokens": 177,
        "traders": 1107,
        "trades": 2272,
        "volume_usd": 390933,
        "wash_trades": 0,
        "wash_volume_usd": 0
      },
      "1s": {
        "buy_volume_usd": 7395.66,
        "buys": 36,
        "change_pct": 249.657,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 3890.85,
        "sell_volume_usd": 6208.99,
        "sells": 37,
        "tokens": 25,
        "traders": 51,
        "trades": 73,
        "volume_usd": 13604.7,
        "wash_trades": 0,
        "wash_volume_usd": 0
      },
      "24h": {
        "buy_volume_usd": 287374377,
        "buys": 908075,
        "change_pct": 20.5728,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 445470035,
        "sell_volume_usd": 249741535,
        "sells": 874783,
        "tokens": 13023,
        "traders": 153999,
        "traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
        "trades": 1782858,
        "volume_usd": 537115913,
        "wash_trades": 17597,
        "wash_volume_usd": 100833841
      },
      "30d": {
        "buy_volume_usd": 12246515202,
        "buys": 34847713,
        "change_pct": -51.5447,
        "complete": true,
        "outlier_trades": 69,
        "prev_volume_usd": 48876260264,
        "sell_volume_usd": 11436620583,
        "sells": 31076104,
        "tokens": 291323,
        "traders": 2263899,
        "traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
        "trades": 65923817,
        "volume_usd": 23683135785,
        "wash_trades": 296156,
        "wash_volume_usd": 5483273587
      },
      "30s": {
        "buy_volume_usd": 101246,
        "buys": 648,
        "change_pct": -35.5977,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 237790,
        "sell_volume_usd": 51896,
        "sells": 456,
        "tokens": 133,
        "traders": 597,
        "trades": 1104,
        "volume_usd": 153142,
        "wash_trades": 0,
        "wash_volume_usd": 0
      },
      "5m": {
        "buy_volume_usd": 1221510,
        "buys": 7565,
        "change_pct": -33.8303,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 3930121,
        "sell_volume_usd": 1379039,
        "sells": 8041,
        "tokens": 417,
        "traders": 4438,
        "trades": 15606,
        "volume_usd": 2600549,
        "wash_trades": 0,
        "wash_volume_usd": 0
      },
      "6h": {
        "buy_volume_usd": 106140026,
        "buys": 325797,
        "change_pct": 58.3393,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 129388468,
        "sell_volume_usd": 98732768,
        "sells": 334428,
        "tokens": 5453,
        "traders": 64490,
        "traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
        "trades": 660225,
        "volume_usd": 204872794,
        "wash_trades": 541,
        "wash_volume_usd": 359759
      },
      "7d": {
        "buy_volume_usd": 1909534740,
        "buys": 5757353,
        "change_pct": -31.3756,
        "complete": true,
        "outlier_trades": 0,
        "prev_volume_usd": 5322163628,
        "sell_volume_usd": 1742769364,
        "sells": 5565930,
        "tokens": 58656,
        "traders": 501350,
        "traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
        "trades": 11323283,
        "volume_usd": 3652304104,
        "wash_trades": 66125,
        "wash_volume_usd": 453119545
      },
      "90d": {
        "buy_volume_usd": 46760664123,
        "buys": 208521629,
        "change_pct": null,
        "complete": true,
        "outlier_trades": 343,
        "prev_volume_usd": null,
        "sell_volume_usd": 45144542946,
        "sells": 166894584,
        "tokens": 1441104,
        "traders": 7052878,
        "traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
        "trades": 375416213,
        "volume_usd": 91905207070,
        "wash_trades": 953623,
        "wash_volume_usd": 41341982607
      }
    }
  },
  "meta": {
    "block": 100409945,
    "block_age_ms": 674,
    "block_ts": 1793225400000,
    "chain": "robinhood",
    "finalized_block": 100401329,
    "lag_ms": 9,
    "safe_block": 100405028
  }
}
```

What this tells you

-   `daily.rows` start at New York midnight: the first `ts`, 1792900800000, is 04:00 UTC. Each row has `volume_usd`, `buy_volume_usd`, `sell_volume_usd`, `trades` and `wash_volume_usd`, ready for a stacked bar chart.
-   `by_hour.peak_hour` is 10 (10:00 New York) over a 90-day lookback. The same call in UTC (the reference sample) says 14: the same hour, four hours apart. `by_weekday` puts the peak on `wednesday` and the quietest day on `saturday`.
-   `windows` gives tiles from `1s` to `180d`. The `24h` window: `volume_usd` 537,115,913 from 1,782,858 trades, `change_pct` +20.57% against the previous 24 hours (`prev_volume_usd` 445,470,035).
-   `traders` and `tokens` in windows are approximate counts (`traders_note`: HyperLogLog), and `method` spells out what is excluded: wash round trips and trades above $25,000,000.

[Volume history reference](https://docs.crius.sh/reference/chain/volume-history/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20Daily%20and%20hourly%20volume%2C%20New%20York%20time&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fguides%2Fbuild-a-chain-stats-dashboard%2F%23volume-tz%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Fvolume%3Fdays%3D3%26hours%3D3%26tz%3DAmerica%2FNew_York%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## Use it in your app

```js
// dashboard.mjs: node dashboard.mjs, then GET http://localhost:8080/api/dashboard  (Node.js 22+)
import { createServer } from "node:http";

const BASE = "https://api.crius.sh";
const HEADERS = process.env.CRIUS_API_KEY ? { "x-api-key": process.env.CRIUS_API_KEY } : {};
const TZ = "America/New_York";

// panel -> [path, refresh interval in seconds]
const PANELS = {
  hour: ["/v1/robinhood/stats?window=1h", 60],
  day: ["/v1/robinhood/stats?window=24h", 60],
  volume: [`/v1/robinhood/volume?days=30&hours=48&tz=${encodeURIComponent(TZ)}`, 300],
  launchpads: ["/v1/robinhood/launchpads", 300],
  trending: ["/v1/robinhood/tokens?list=trending&window=24h&limit=10", 60],
  status: ["/v1/status", 30],
};
const cache = {};

async function refresh(name) {
  const [path, every] = PANELS[name];
  try {
    const res = await fetch(BASE + path, { headers: HEADERS });
    if (res.ok) cache[name] = await res.json(); // keep the last good answer on errors
  } catch (e) {
    console.error(name, e.message);
  }
  setTimeout(() => refresh(name), every * 1000);
}

for (const [i, name] of Object.keys(PANELS).entries()) setTimeout(() => refresh(name), i * 600); // stagger: stay under 2 req/s without a key

createServer((req, res) => {
  if (req.url !== "/api/dashboard") return res.writeHead(404).end();
  const d = (k) => cache[k]?.data;
  const body = {
    tiles: {
      volume_24h: d("day")?.dex.volume_usd,
      trades_24h: d("day")?.dex.trades,
      traders_24h: d("day")?.dex.traders,
      tvl: d("day")?.liquidity.tvl_usd,
      new_tokens_1h: d("hour")?.tokens.new,
      swap_cost_usd: d("hour")?.gas.avg_swap_cost_usd,
    },
    daily: d("volume")?.daily.rows,
    hourly: d("volume")?.hourly.rows,
    heatmap: { weekday: d("volume")?.by_weekday, hour: d("volume")?.by_hour },
    launchpads: d("launchpads")?.map((l) => ({ name: l.name, ...l.stats })),
    trending: d("trending")?.map((t) => ({ address: t.address, symbol: t.symbol, change: t.change_pct?.["24h"], volume: t.volume_usd?.["24h"] })),
    index: d("status")?.chains?.robinhood,
    block: cache.day?.meta?.block,
  };
  res.writeHead(200, { "content-type": "application/json", "cache-control": "public, max-age=15" });
  res.end(JSON.stringify(body));
}).listen(8080);
```

## What it costs

| Panel | Endpoint | Refresh | Credits per month |
| --- | --- | --- | --- |
| Hour and day tiles | `/stats` × 2 | 60 s | 86,400 |
| Volume charts and heatmap | `/volume` | 5 min | 8,640 |
| Launchpad table | `/launchpads` | 5 min | 8,640 |
| Trending tokens | `/tokens` | 60 s | 43,200 |
| Index health | `/v1/status` | 30 s | 0 (public, not metered) |

Each metered call costs 1 credit with a key: about 147,000 credits a month in total, under 15% of the Free plan. Without a key the same schedule runs on the anonymous plan (about 0.1 requests per second on average), which is enough for a public dashboard. See [Plans & limits](https://docs.crius.sh/plans-and-limits/).

Live tiles without polling faster

`/volume`’s short windows (`1s`, `30s`, `1m`, `5m`) come from the live trade flow, so a “volume in the last minute” tile only needs `/volume` every 15–30 seconds. A stream of every trade on the chain (`firehose:trades`) exists on the Enterprise plan.

## Frequently asked questions

**How is Robinhood Chain DEX volume counted?**

Organic DEX volume in USD at trade time across Uniswap v2, v3, v4 and launchpad curves. Same-transaction round trips (a buy and a sell of one token in one pool and one transaction that cancel within 2%) are excluded and reported as `wash_volume_usd`, and single trades valued above $25,000,000 are excluded as mispriced (`outlier_trades`). `/volume` returns these rules in `method`.

**Can I show the volume chart in my users' time zone?**

Yes: pass an IANA time zone in `tz` (for example `tz=America/New_York` or `tz=Asia/Dubai`). Daily rows then start at local midnight and the hour-of-day pattern uses local hours.

**Do I need an API key for a public dashboard?**

No. `/stats`, `/volume`, `/launchpads`, `/tokens`, `/v1/status` and `/v1/chains` are on the anonymous plan. Call them from your server, not from every visitor's browser: the anonymous limit is 2 requests per second per IP, and a Free key raises it to 10.

**How live are the numbers?**

`/volume` windows up to 1 hour come from the live trade flow; longer windows combine complete minutes with the live flow. Every response carries `meta.block` and `meta.lag_ms`, which you can show as "updated at block …".

## Related

[Use case **Analytics dashboards** Build Robinhood Chain dashboards with the Crius API: DEX volume without wash trades, TVL, launches per launchpad, hourly patterns and token charts. Read](https://docs.crius.sh/use-cases/analytics-dashboards/) [Guide **Get launchpad stats** Launches, graduations, graduation rate, time to graduate, volume, traders and fees for every Robinhood Chain launchpad, with daily history. Real responses. Read](https://docs.crius.sh/guides/get-launchpad-stats/) [Guide **Find trending tokens** Get the Robinhood Chain tokens with the most real traders, plus top gainers and volume leaders with rugs and wash trading filtered out. Real API responses. Read](https://docs.crius.sh/guides/find-trending-tokens/) [API reference **Chain stats API** DEX volume and trades (per DEX), traders, TVL and locked liquidity, launches and graduations per launchpad, pools, gas costs and block times over a window (1h, 24h, 7d). Read](https://docs.crius.sh/reference/chain/chain-stats/) [API reference **Volume history API** On-chain volume per hour or per day, in your time zone (tz), plus a weekday × hour pattern over pattern\_days. Read](https://docs.crius.sh/reference/chain/volume-history/) [Guide **DEX data** Which DEXs trade on Robinhood Chain (Uniswap v2, v3, v4 with hooks, launchpad curves), their real 24h volume and pools, and the API calls for DEX trades. Read](https://docs.crius.sh/guides/robinhood-chain-dex-data/)
