Get a token's all-time high and price change
Get a Robinhood Chain token's all-time high, when it was set, its market cap at the peak and its price change from 1 second to 24 hours, plus 7-day change.
Call GET /v1/robinhood/token/{address}. The price object has ath_usd, ath_ts (unix ms), ath_market_cap_usd and ath_scope, and change_pct for 1s, 30s, 1m, 5m, 1h, 4h, 6h and 24h. For longer periods, take daily candles (/candles?interval=1d) and compare closes. Both are on the anonymous plan.
Two questions every token page answers: how far is the price from its peak, and how much has it moved recently. The token profile carries both in its price object. ath_usd is the highest price the market held, with the time it was set and the market cap it implied, and change_pct gives the percentage change over eight windows from 1 second to 24 hours. For anything longer, daily candles fill the gap.
Get the ATH and recent change in one call
A fresh Pons token, 80% below a peak set the same evening
How far is sockets (0xddccd4690cc99cf19d2e0bdbcb390d17e913958a) from its all-time high, and how has it moved today?
curl "https://api.crius.sh/v1/robinhood/token/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 319 lines (arrays trimmed)
{ "data": { "address": "0xddccd4690cc99cf19d2e0bdbcb390d17e913958a", "admin_flags": null, "bundles": { "see": "/v1/robinhood/token/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a/bundles" }, "burned": 0, "chain_id": 4663, "circulating_supply": 1000000000, "creation": { "attribution": "known_launchpad", "block": 100193858, "deployed_via": "pons_v2", "deployer": "0x11a3fef7d8adbd78d36d9aaed4a7ba3a7beaa911", "factory": "0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e", "launchpad_name": "Pons", "tx": "0xd8ed9e0b091bcf1fcf3b0bb7d31b4165abaf42fa4fd5cb0d0bc56ffa7e18dde6" }, "decimals": 18, "dexscreener": { "boosts": { "active_amount": null, "active_seen_ts": null, "count": 0, "last_ts": null, "total_amount": 0 }, "checked_ts": 1793225005193, "community_takeover": false, "community_takeover_ts": null, "confirmed": true, "dex_paid": true, "dex_paid_ts": 1793203323421, "orders": [ { "payment_ts": 1793203323421, "status": "approved", "type": "tokenProfile" } ], "profile": { "description": "Where agents build and trade on Robinhood Chain. Plug one in and let it run.", "header": "https://cdn.dexscreener.com/cms/images/mYazm5PF_nBhJs37?width=600&height=200&fit=crop&quality=95&format=auto", "icon": "https://cdn.dexscreener.com/cms/images/Fks_g91B2BrR_P4t?width=64&height=64&fit=crop&quality=95&format=auto", "links": [ { "label": "Website", "url": "https://socket.builders/" }, { "type": "twitter", "url": "https://x.com/poweredbysocket" } ] }, "url": "https://dexscreener.com/robinhood/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a" }, "first_seen_block": 100193858, "history": "complete", "holders": { "burned_pct": 0, "count": 523, "dev_holding": true, "dev_pct": 0.21319, "locked_pct": 8.16327, "top10_pct": 17.8434 }, "launch": { "creator": "0x11a3fef7d8adbd78d36d9aaed4a7ba3a7beaa911", "creator_label": null, "curve": "0xd362626da5a1ee6cd6a64774cadb8f8aeb7e2fa5", "curve_state": null, "graduated_block": 100213204, "graduation_threshold": 4.2, "launched_block": 100193858, "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.061224484575871987, "market": { "fdv_usd": 45488.4, "liquidity_usd": 19361.9, "market_cap_usd": 45488.4, "pools_count": 18, "quote_liquidity_usd": 9680.94 }, "metadata": { "banner": "https://cdn.dexscreener.com/cms/images/mYazm5PF_nBhJs37?width=600&height=200&fit=crop&quality=95&format=auto", "description": "Where agents build and trade on Robinhood Chain. Plug one in and let it run.", "links": { "discord": null, "farcaster": null, "github": null, "telegram": null, "twitter": "https://x.com/poweredbysocket/status/2115472554680791240?a=_i6sgGGYDCjSANAY-lQ&s=20", "website": "https://socket.builders/" }, "logo": "https://api.crius.sh/v1/robinhood/logo/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a.png?size=128", "logo_original": "https://ipfs.filebase.io/ipfs/bafkreig55u3h4g3qfzgexr7ag7mjvp6a2l3jsw4my7lyc4gyjiulxbpylm", "socials": { "discord": null, "farcaster": null, "github": null, "telegram": null, "twitter": { "source": "pons_launch", "url": "https://x.com/poweredbysocket/status/2115472554680791240?a=_i6sgGGYDCjSANAY-lQ&s=20" }, "website": { "source": "pons_launch", "url": "https://socket.builders/" } }, "source": "pons_launch", "sources": { "links": "pons_launch", "logo": "pons_launch" } }, "name": "sockets", "price": { "ath_market_cap_usd": 226336, "ath_scope": "all_time", "ath_ts": 1793215500000, "ath_usd": 0.000226336, "change_pct": { "1h": -56.2479, "1m": 0.0809595, "1s": -0.0376522, "24h": -5.58602, "30s": -0.131976, "4h": 10.4206, "5m": -9.7099, "6h": -5.58602 }, "confidence": "high", "dex": "uniswap_v4", "eth": 0.0000000193117, "liquidity_usd": 19166.7, "quote": "0x0000000000000000000000000000000000000000", "quote_liquidity_usd": 9583.34, "source_pool": "0xe1cb1474a4c240a1e0bca5fb5c56f04a7d90789891fb59b68a142ca4071404e1", "thin_liquidity": false, "usd": 0.0000454884 }, "security": { "see": "/v1/robinhood/token/0xddccd4690cc99cf19d2e0bdbcb390d17e913958a/security" }, "standard": "erc20", "stats": { "all_time": { "buy_volume_usd": 284074, "buys": 4327, "first_trade_ts": 1793202994000, "sell_volume_usd": 274803, "sells": 3658, "since": "chain_start", "trades": 7985, "volume_usd": 558877 }, "avg_trade_usd": { "1h": 91.6996, "1m": 33.6307, "1s": null, "24h": 69.9909, "30s": 16.733, "4h": 88.169, "5m": 52.8923, "6h": 70.1325 }, "buy_volume_usd": { "1h": 20861.7, "1m": 148.337, "1s": 0, "24h": 284074, "30s": 0, "4h": 124241, "5m": 717.821, "6h": 263844 }, "buyers": { "1h": 163, "1m": 2, "1s": 0, "24h": 1900, "30s": 0, "4h": 712, "5m": 12, "6h": 1766 }, "buys": { "1h": 288, "1m": 2, "1s": 0, "24h": 4327, "30s": 0, "4h": 1549, "5m": 14, "6h": 4083 }, "last_trade_ts": 1793225076000, "sell_volume_usd": { "1h": 26363.6, "1m": 154.34, "1s": 0, "24h": 274803, "30s": 50.1989, "4h": 125895, "5m": 1133.41, "6h": 262500 }, "sellers": { "1h": 166, "1m": 7, "1s": 0, "24h": 1630, "30s": 3, "4h": 696, "5m": 17, "6h": 1593 }, "sells": { "1h": 227, "1m": 7, "1s": 0, "24h": 3658, "30s": 3, "4h": 1288, "5m": 21, "6h": 3422 }, "traders": { "1h": 245, "1m": 9, "1s": 0, "24h": 1919, "30s": 3, "4h": 888, "5m": 28, "6h": 1875 }, "trades": { "1h": 515, "1m": 9, "1s": 0, "24h": 7985, "30s": 3, "4h": 2837, "5m": 35, "6h": 7505 }, "txns": { "1h": 478, "1m": 9, "1s": 0, "24h": 7784, "30s": 3, "4h": 2717, "5m": 33, "6h": 7320 }, "volume_eth": { "1h": 20.0153, "1m": 0.128499, "1s": 0, "24h": 238.61, "30s": 0.0213115, "4h": 106.161, "5m": 0.784249, "6h": 224.652 }, "volume_usd": { "1h": 47225.3, "1m": 302.677, "1s": 0, "24h": 558877, "30s": 50.1989, "4h": 250135, "5m": 1851.23, "6h": 526344 } }, "symbol": "sockets", "total_supply": 1000000000, "type": "launchpad", "ui_multiplier": null, "verification": { "compiler": null, "contract_name": null, "implementation": null, "is_proxy": null, "sourcify": null } }, "meta": { "block": 100406844, "block_age_ms": 1014, "block_ts": 1793225082000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 92, "pending": [], "safe_block": 100401329 }}What this tells you
price.ath_usd: 0.000226336, set atath_ts: 1793215500000(19:25 UTC on October 28, 2026). At that price the token was worthath_market_cap_usd: 226336.price.usdis 0.0000454884, so it trades 79.9% below its ATH (0.0000454884 ÷ 0.000226336 − 1).change_pcttells the story of the day:4his +10.4206 but1his −56.2479. The token ran up, then lost more than half its price in the last hour.5mis −9.7099, so the fall hadn’t stopped.24hand6hare the same, −5.58602: the token’s first trade was atstats.all_time.first_trade_ts1793202994000, a little over six hours before this response, so both windows start from the same early price.ath_scope: "all_time": the ATH covers the token’s whole history.
Seven days of decline, from daily candles
How much has Charge AI (0x7b8892cea949bc60d494681d1bc3ea96071ab0b8) moved over the past week?
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/candles?interval=1d&limit=7"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/candles?interval=1d&limit=7");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/candles?interval=1d&limit=7",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 103 lines (arrays trimmed)
{ "data": { "bv": [ 127.848, 209.025, 29.3536, 25.2536, 74.2036, 0, 0 ], "c": [ 0.00000577044, 0.00000550534, 0.00000463439, 0.00000442385, 0.0000040974, 0.00000384983, 0.00000385494 ], "currency": "usd", "h": [ 0.00000672467, 0.00000577207, 0.00000557101, 0.00000463439, 0.00000442385, 0.0000040974, 0.00000389618 ], "interval": "1d", "l": [ 0.00000575059, 0.00000502958, 0.00000463439, 0.00000442385, 0.0000040974, 0.00000384983, 0.00000384983 ], "mc": [ 5770.44, 5505.34, 4634.39, 4423.85, 4097.4, 3849.83, 3854.94 ], "n": [ 14, 13, 11, 6, 13, 4, 2 ], "o": [ 0.000006348, 0.00000577044, 0.00000550534, 0.00000463439, 0.00000442385, 0.0000040974, 0.00000384983 ], "t": [ 1792627200000, 1792713600000, 1792800000000, 1792886400000, 1792972800000, 1793059200000, 1793145600000 ], "v": [ 350.792, 486.44, 316.039, 114.294, 283.74, 57.6385, 5.92732 ] }, "meta": { "block": 100409999, "block_age_ms": 971, "block_ts": 1793225405000, "chain": "robinhood", "finalized_block": 100401329, "from_ts": 1792627200000, "lag_ms": 1, "note": "default (usd) = the token's real markets merged plus its launch curve; ?pool=main its main market only (the default with currency=quote), ?pool=<key> one pool, ?pool=all every pool. Candles open at the previous close (?continuous=false for first-trade opens); buckets without trades are omitted unless ?fill=true", "pools": [ "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "0x2b0943bf947b54df526047b6fec8183a4fdeb3c3" ], "safe_block": 100405028, "to_ts": 1793225405000 }}What this tells you
- Seven daily candles from October 22 to October 28, 2026 (
t1792627200000 to 1793145600000). - The week opened at
o[0]0.000006348 and the latest close isc[6]0.00000385494: a 7-day change of −39.3%. - Every day but the last closed below the day before, and the market cap at close (
mc) went from 5,770.44 to 3,854.94. - The token is quiet: the last candle has
n[6]2 trades andv[6]$5.92732, and the last two candles had no buys at all (bv0), only sells. - In CHARGE’s token profile,
price.ath_usdis 0.0000707881 (set on October 15, 2026), so the token is about 94.5% below its ATH.
What the fields mean
| Field | Meaning |
|---|---|
price.ath_usd | The highest confirmed price, in USD. Never below the current price. |
price.ath_ts | When it was set (unix ms). |
price.ath_market_cap_usd | ath_usd × the current circulating supply. |
price.ath_scope | all_time when the index covers the chain from block 0, since_index_start otherwise. |
price.change_pct.<window> | Change in percent, for 1s, 30s, 1m, 5m, 1h, 4h, 6h and 24h. null when there's no baseline price. |
change_24h_pct | In batch prices: the same 24h change for up to 100 tokens per call. |
How the ATH and changes are measured
The all-time high is a price the market held. A token’s trades are grouped into 5-minute buckets. Each bucket’s price is the value-weighted median of its trades of $1 or more, so one trade at a wild price doesn’t decide it. A bucket counts on its own when its volume reaches 0.1% of the token’s busiest day (at least $100); a thinner bucket needs the bucket next to it to confirm the level. The ATH is the highest bucket that qualifies, and is never shown below the current price: if the token is at a new high right now, ath_usd is the current price.
Changes compare the current price with a baseline. For each window, the baseline is the last trade before the window started, or the first trade inside it if the token is younger than the window. Both the current price and the baseline come from the token’s main market.
Longer periods come from candles. Daily candles open at the previous close by default, so c of the latest candle divided by o of the first gives the change over the whole range.
Use it in your app
-
Read the profile once per page view and show “x% below ATH” with the date from
ath_ts. -
Show the windows that matter to your users. Traders look at
5mand1h; a portfolio app shows24h. -
Add 7d and 30d from daily candles, cached for a few minutes: they change slowly.
-
Use batch prices for lists.
change_24h_pctfor 100 tokens in one call is cheaper than 100 profiles.
// ATH distance, 24h change and 7-day change for one token.const token = "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8";const base = "https://api.crius.sh/v1/robinhood";
const { data: t } = await (await fetch(`${base}/token/${token}`)).json();const { data: d } = await (await fetch(`${base}/token/${token}/candles?interval=1d&limit=7`)).json();
const belowAth = (t.price.usd / t.price.ath_usd - 1) * 100;const change7d = (d.c.at(-1) / d.o[0] - 1) * 100;console.log(`${t.symbol}: ${belowAth.toFixed(1)}% vs ATH (set ${new Date(t.price.ath_ts).toISOString().slice(0, 10)})`);console.log(`24h ${t.price.change_pct["24h"]?.toFixed(2)}%, 7d ${change7d.toFixed(1)}%`);Frequently asked questions
How do I get the all-time high of a Robinhood Chain token?
Call GET /v1/robinhood/token/{address} and read price.ath_usd (the highest price), price.ath_ts (when, in unix ms) and price.ath_market_cap_usd. No API key is needed.
Why is the all-time high lower than the highest wick on the chart?
The ATH is a price the market actually held, not one trade. Crius takes the value-weighted median price of each 5-minute bucket, from trades of $1 or more, and a bucket only counts when it has enough volume for that token; a thin bucket needs the next one to confirm it. A single trade that spiked the price for a moment doesn't set the ATH.
How is the 24-hour price change calculated?
The current price against the price of the last trade before the window started. If the token is younger than the window, the first trade inside it is the baseline. Changes come from the token's main market, so trades in thin side pools don't move them.
How do I get the 7-day or 30-day price change?
change_pct stops at 24 hours. For longer windows, request daily candles (/candles?interval=1d&limit=30) and compare the latest close with the open or close of the first day you want.
Does the all-time high cover the token's whole history?
Yes when ath_scope is all_time: the index covers Robinhood Chain from block 0. If an index started later it says since_index_start, and the ATH only covers what was indexed.
Related
Get your free Crius API key
Every example on this page works with a free key: higher rate limits than the anonymous plan, holders, wallets and the WebSocket stream. No card needed.
- Robinhood Chain (4663) only, from our own archive nodes
- REST + WebSocket
- Pay on-chain or by card