Get a Robinhood Chain token's live USD price
Get the live USD and ETH price of any Robinhood Chain token, the pool it comes from and how much to trust it, with one fast API call. Real examples, no key.
Call GET /v1/robinhood/token/{address}/price. It returns usd and eth per whole token, the source_pool and dex the price comes from, that pool's liquidity_usd, and a confidence level (high, medium, low) with a thin_liquidity flag. It's the fastest Crius call and works without an API key (1 credit with one).
The price endpoint answers one question as fast as possible: what is this Robinhood Chain token worth right now, in USD and ETH. Crius finds the token’s deepest market (the pool with the most liquidity within 2% of the price), reads its current price, and converts the quote asset (ETH, WETH, USDG or another priced token) to USD through the deepest ETH/USDG pool. The response says which pool was used and how much liquidity backs it, so you know how far to trust the number.
Get the price in one call
A small meme token priced against ETH: medium confidence
What is Charge AI (0x7b8892cea949bc60d494681d1bc3ea96071ab0b8) worth right now?
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 25 lines (arrays trimmed)
{ "data": { "confidence": "medium", "dex": "uniswap_v4", "eth": 0.00000000165124, "eth_usd": 2355.49, "liquidity_usd": 5604.57, "quote": "0x0000000000000000000000000000000000000000", "quote_liquidity_usd": 2802.29, "source_pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "symbol": "CHARGE", "thin_liquidity": false, "token": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8", "usd": 0.00000388948 }, "meta": { "block": 100406772, "block_age_ms": 654, "block_ts": 1793225075000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 66, "safe_block": 100401329 }}What this tells you
usd: 0.00000388948per whole CHARGE, andeth: 0.00000000165124. Witheth_usd: 2355.49, the two agree: 0.00000000165124 × 2,355.49 ≈ 0.0000038895.- The price comes from a Uniswap v4 pool (
dex: "uniswap_v4",source_pool: 0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913) quoted in native ETH (quote: 0x0000000000000000000000000000000000000000). liquidity_usd: 5604.57is 2 × the quote side;quote_liquidity_usd: 2802.29is the ETH actually in the pool.confidence: "medium"because the pool holds between $1,000 and $10,000.thin_liquidity: false: this is a real two-sided market.
A tokenized stock priced against USDG: high confidence
What does NVIDIA's tokenized stock (NVDA, 0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec) trade at on Robinhood Chain?
curl "https://api.crius.sh/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 25 lines (arrays trimmed)
{ "data": { "confidence": "high", "dex": "uniswap_v3", "eth": 0.0909845, "eth_usd": 2355.49, "liquidity_usd": 1415590, "quote": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "quote_liquidity_usd": 707795, "source_pool": "0xd4eb21209c4d6093f80b5b84f5c45cc093ea14a3", "symbol": "NVDA", "thin_liquidity": false, "token": "0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec", "usd": 214.313 }, "meta": { "block": 100409717, "block_age_ms": 717, "block_ts": 1793225377000, "chain": "robinhood", "finalized_block": 100401329, "lag_ms": 108, "safe_block": 100405028 }}What this tells you
usd: 214.313andeth: 0.0909845per NVDA token.- The deepest market is a Uniswap v3 pool against USDG (
dex: "uniswap_v3",quote: 0x5fc5360d0400a0fd4f2af552add042d716f1d168), so no ETH conversion is needed for the USD price. liquidity_usd: 1415590(about $1.4 million) puts it well over $10,000:confidence: "high".
What the fields mean
| Field | Meaning |
|---|---|
usd, eth | Price of one whole token (already divided by decimals), in USD and in ETH. |
eth_usd | The ETH/USD rate used, from the deepest ETH/USDG pool. |
source_pool, dex, quote | The pool the price comes from (a pair address, or a 32-byte pool id on Uniswap v4), its DEX, and its quote asset. |
liquidity_usd | 2 × the quote side of that pool, the convention DEX screeners use. |
quote_liquidity_usd | The real quote amount in that pool: what sellers could actually take out. |
confidence | high: the pool holds $10,000 or more. medium: $1,000 to $10,000. low: under $1,000, or a thin price. |
thin_liquidity | true when no pool holds at least $50: the price comes from the deepest thin pool (a fresh single-sided launch pool, for example). |
token, symbol | The token you asked for, lowercase, and its symbol. |
How the source pool is chosen
A token can trade in many pools: Uniswap v2 pairs, v3 fee tiers, v4 pools with hooks and launchpad bonding curves. Crius ranks them by how much can actually be traded near the price (depth within ±2%), not by headline TVL, and skips pools that can’t set a fair price:
- Decoy pools. A pool with a fee of 25% or more never sets a price, because nobody really trades there.
- One-sided pools. A pool with only a bid near the price, or one implying a fully diluted value far beyond its liquidity, is only a last-resort fallback.
- Dust pools. Pools under $50 only count when the token has nothing else, and then
thin_liquidityistrue.
When the deepest market is quoted in another token (a meme paired with a tokenized stock, for example), that token’s own USD price is used, and the reported liquidity can’t exceed that token’s own market. Find every pool of a token to see the alternatives, with is_price_pool marking the one used here.
Use it in your app
-
Call
/pricein hot loops. It’s the smallest response, so use it for tickers, portfolio valuation and bot checks rather than the full profile. -
Gate on
confidence. Show a warning, or skip automated trades, whenconfidenceisloworthin_liquidityistrue. A $100 trade can move a thin pool’s price a long way. -
Size against
quote_liquidity_usd. It’s the real amount on the other side of the pool, half ofliquidity_usd. -
Batch when you have many tokens. Up to 100 tokens per call with batch prices, instead of one request each.
import requests
token = "0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec" # NVDA tokenized stockr = requests.get(f"https://api.crius.sh/v1/robinhood/token/{token}/price", timeout=10)r.raise_for_status()p = r.json()["data"]
if p["thin_liquidity"] or p["confidence"] == "low": print(f"{p['symbol']}: ${p['usd']} (unreliable, ${p['quote_liquidity_usd']} in the pool)")else: print(f"{p['symbol']}: ${p['usd']} ({p['confidence']} confidence, {p['dex']})")Frequently asked questions
How do I get the price of a Robinhood Chain token?
Send GET https://api.crius.sh/v1/robinhood/token/{address}/price with the token's contract address. data.usd is the USD price of one whole token and data.eth the price in ETH. No API key is needed to start.
What is the best API for Robinhood Chain token prices?
One that prices tokens from on-chain markets as each block arrives and tells you how reliable each price is. The Crius /price endpoint reads the token's deepest pool on Robinhood Chain, converts through the deepest ETH/USDG pool, and returns the pool, its liquidity and a confidence level with every price. It covers every token with a market, including new launchpad tokens and tokenized stocks.
How often does the price update?
Every block. Robinhood Chain produces a block about every 100 ms and Crius applies each one as it arrives; meta.block and meta.lag_ms tell you which block the price reflects and how far behind the head it is. For a push feed instead of polling, use the WebSocket stream.
Why does the price differ from the last trade?
The price is read from the source pool's current state, not from the last trade. A trade moves the pool, so the next price reflects where the pool sits after it. Trades in small side pools can print at very different prices; they don't set the token's price.
Is the price of a tokenized stock the real stock price?
It's the market price of the token on Robinhood Chain, read from its own on-chain pools; Crius doesn't mix in off-chain stock quotes. Because it's set by trades on chain, it keeps moving when stock exchanges are closed: NVDA's token traded over $3 million on Saturday, October 24, 2026 (see the daily candles in OHLCV candles).
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