CRIUS Docs
API status Get API key
Concepts

How Robinhood Chain token prices work (confidence and thin liquidity)

How the Crius API prices Robinhood Chain tokens from on-chain pools, how the price pool is picked, and what confidence and thin_liquidity mean.

Updated 5 min read

Every USD price in the Crius API is read from Robinhood Chain’s own pools. For each token, Crius picks the market a trade could actually use (the pool with the most liquidity within ±2% of its current price), reads the token’s price in that pool’s quote asset (ETH, WETH, USDG or another token), and converts the quote to USD through the deepest ETH/USDG pool. Each price comes with the pool it came from, that pool’s liquidity and a confidence level, so you can tell a deep market from a pool that holds a few dollars.

One price and its source

CHARGE: a graduated Pons token priced from its v4 pool

What is Charge AI (0x7b8892cea949bc60d494681d1bc3ea96071ab0b8) worth in USD, and where does that number come from?

GET/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price"
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.00000388948 and eth: 0.00000000165124 are the price of one whole token.
  • source_pool is the Uniswap v4 pool 0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913 (dex: "uniswap_v4"), quoted in native ETH (quote: "0x0000000000000000000000000000000000000000").
  • eth_usd: 2355.49 is the ETH/USD rate used to convert, read from the deepest ETH/USDG pool at the same block.
  • quote_liquidity_usd: 2802.29 is the ETH side of the pool; liquidity_usd: 5604.57 is twice that, the convention DEX screeners use.
  • confidence: "medium": the pool holds between $1,000 and $10,000, so a large sell would move the price a lot.
Token price reference Runs from your browser on the anonymous plan Data looks wrong? Report it

How the price pool is chosen

  1. Bonding tokens: the curve. While a launchpad token is still on its bonding curve, the curve is its market, whatever its size. Its liquidity is twice the real quote raised (the curve’s virtual reserves can’t be withdrawn).

  2. Everything else: the deepest market. All the token’s pools (v2, v3 and v4, every fee tier) are candidates. They are ranked by ±2% depth: the value of the liquidity within 2% of the pool’s current price. Liquidity parked far from the price doesn’t count, because no trade can use it at that price.

  3. Pools that never set a price. A pool is skipped when its swap fee is 25% or more (decoy pools nobody trades in), when its in-range liquidity is under $50 while a real market exists, when it is one-sided (within ±2% of its price the token side is worth less than 1% of the quote side: a lone bid at an absurd price), when the price would make the token’s FDV more than 1,000,000 times the pool’s liquidity, or when a v3/v4 pool’s position math claims more tokens than the pool or the PoolManager actually holds.

  4. Converting the quote to USD. ETH and WETH convert through the deepest ETH/USDG pool, and USDG counts as $1. Any other quote asset (a tokenized stock, another token) converts through its own direct ETH or USDG market, one hop only. That market must hold at least $5,000, or $100,000 for quote tokens Crius hasn’t marked as trusted, and a token that calls itself USDG, WETH or ETH without being the real contract is never used as a quote.

A pool quoted through an untrusted hop must be four times deeper than the best direct ETH or USDG pool to win, because its price carries its quote’s own market error. Trusted quotes (tokenized stocks, launchpad quote tokens) compete on depth alone. The Uniswap concept page explains how v3 and v4 in-range liquidity is measured.

Confidence and thin liquidity

ValueWhen
confidence: "high"The price pool's liquidity_usd is $10,000 or more
confidence: "medium"$1,000 to $10,000
confidence: "low"Under $1,000, or a thin price
thin_liquidity: trueNo pool passed the checks above. The price comes from the deepest of the thin pools as a fallback (a fresh single-sided launch pool, for example), and confidence is always low

A thin price: no real market behind it

COGE (0x0e18c1d0413b573ecfd70b192b95a178119d5222) has a price. Can I trust it?

GET/v1/robinhood/token/0x0e18c1d0413b573ecfd70b192b95a178119d5222/price
curl "https://api.crius.sh/v1/robinhood/token/0x0e18c1d0413b573ecfd70b192b95a178119d5222/price"
Real response 200 Captured Oct 28, 2026 · 25 lines (arrays trimmed)
{
"data": {
"confidence": "low",
"dex": "uniswap_v4",
"eth": 0.00000000369817,
"eth_usd": 2355.49,
"liquidity_usd": 0,
"quote": "0x4a0e65a3eccec6dbe60ae065f2e7bb85fae35eea",
"quote_liquidity_usd": 0,
"source_pool": "0x2ca6e3aec9006c83b96a8e600feba99827195ceec87040ff01d19306352c6c92",
"symbol": "COGE",
"thin_liquidity": true,
"token": "0x0e18c1d0413b573ecfd70b192b95a178119d5222",
"usd": 0.000008711
},
"meta": {
"block": 100410192,
"block_age_ms": 522,
"block_ts": 1793225425000,
"chain": "robinhood",
"finalized_block": 100401329,
"lag_ms": 77,
"safe_block": 100405028
}
}

What this tells you

  • thin_liquidity: true and confidence: "low": no pool of this token passed the checks, so the price is a fallback.
  • liquidity_usd: 0 and quote_liquidity_usd: 0: there is nothing on the other side to sell into.
  • quote is 0x4a0e65a3eccec6dbe60ae065f2e7bb85fae35eea, another token rather than ETH or USDG, so the USD value also depends on that token’s own market (a one-hop quote).
  • usd: 0.000008711 is a last price, not a value anyone could realize. Show it with a warning, and leave it out of portfolio totals and automated trades.
Token price reference Runs from your browser on the anonymous plan Data looks wrong? Report it

A tokenized stock: NVDA priced against USDG

What is the on-chain price of NVIDIA's Robinhood token (0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec)?

GET/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price
curl "https://api.crius.sh/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price"
Real response 200 Captured Oct 28, 2026 · 25 lines (arrays trimmed)
{
"data": {
"confidence": "high",
"dex": "uniswap_v3",
"eth": 0.090983,
"eth_usd": 2355.49,
"liquidity_usd": 1415158,
"quote": "0x5fc5360d0400a0fd4f2af552add042d716f1d168",
"quote_liquidity_usd": 707579,
"source_pool": "0xd4eb21209c4d6093f80b5b84f5c45cc093ea14a3",
"symbol": "NVDA",
"thin_liquidity": false,
"token": "0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec",
"usd": 214.31
},
"meta": {
"block": 100410171,
"block_age_ms": 448,
"block_ts": 1793225423000,
"chain": "robinhood",
"finalized_block": 100401329,
"lag_ms": 138,
"safe_block": 100405028
}
}

What this tells you

  • usd: 214.31 from a Uniswap v3 pool (dex: "uniswap_v3", source_pool: "0xd4eb21209c4d6093f80b5b84f5c45cc093ea14a3") quoted in USDG (quote: "0x5fc5360d0400a0fd4f2af552add042d716f1d168").
  • liquidity_usd: 1415158: well above $10,000, so confidence: "high".
  • eth: 0.090983 is the same price in ETH, converted at eth_usd: 2355.49.
  • Tokenized stocks follow exactly the same rules as any other token: the price is what the chain’s pools say, not a feed from the stock exchange.
Token price reference Runs from your browser on the anonymous plan Data looks wrong? Report it

Where the price is used

  • Market cap and FDV. market_cap_usd is the price × (total supply − burned tokens), and fdv_usd is the price × total supply. See Responses & conventions.
  • Holdings. value_usd on holders and wallet holdings is the balance × price, capped at what the price pool’s quote side could pay out: a position is never worth more than the market that prices it.
  • Trades. price_usd and value_usd on each trade are fixed when the trade is indexed, with that block’s ETH/USD (eth_usd_at_trade). They don’t change when the price moves later.
  • Candles. USD candles merge the token’s real markets (pools with at least $1,000 or 2% of its liquidity, plus its launch curve) and leave out outlier trades, so a $1 trade in a side pool can’t draw a wick. See OHLCV candles.
  • Rankings. list=top_market_cap leaves out prices from thin markets.

Use it in your app

  1. Read the price with its context. Use /token/{address}/price for one token or /prices for up to 100 at a time (1 credit per call, no key needed).

  2. Gate on confidence. Use high prices for valuations and alerts. Show medium prices with the pool’s liquidity next to them. Treat low and thin_liquidity prices as indicative only.

  3. Compare liquidity with your trade size. quote_liquidity_usd is roughly what the whole pool could pay for tokens. An order that is a large share of it will move the price far from usd.

  4. Handle tokens with no price. A token with no usable market yet returns data: null. Show “no market” instead of $0.

// Price with a trust level, for a portfolio total or an alert.
const res = await fetch(`https://api.crius.sh/v1/robinhood/token/${token}/price`);
const { data, meta } = await res.json();
if (!data) {
console.log("no market yet");
} else if (data.thin_liquidity || data.confidence === "low") {
console.log(`~$${data.usd} (indicative only: $${data.liquidity_usd} liquidity)`);
} else {
console.log(`$${data.usd} from ${data.dex} pool ${data.source_pool} at block ${meta.block}`);
}

Frequently asked questions

Where do Crius token prices come from?

From Robinhood Chain's own pools only. Each token is priced in its deepest market (a Uniswap v2, v3 or v4 pool, or its launchpad bonding curve while it is still bonding), and the quote asset is converted to USD through the deepest ETH/USDG pool. No exchange or off-chain price feed is used.

What does `confidence` mean on a price?

How much liquidity backs it. high means the price pool holds $10,000 or more (liquidity_usd), medium $1,000 to $10,000, low under $1,000. A price with thin_liquidity: true is always low.

Why does a token show a large market cap with almost no liquidity?

Market cap is price × supply, and the price can come from a small pool. A $1 billion market cap backed by a few thousand dollars of liquidity can't be sold at that value. Check liquidity_usd and confidence before you trust a valuation. Holder and wallet value_usd are capped at what the price pool's quote side could pay out.

Are tokenized stock prices the same as the stock exchange price?

No. Tokenized stocks such as NVDA are priced from their Robinhood Chain pools like every other token, so the price is what traders on the chain are paying. It can differ from the exchange price, for example outside market hours.

How often do prices update?

Every block (about every 100 ms). A price is recomputed for the newest block when you ask for it, and meta.block tells you which block it reflects. For a push feed, subscribe to price:<token> on the WebSocket stream.

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