# 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.

Source: https://docs.crius.sh/concepts/token-prices/ · Updated 2026-10-28

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

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

### 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**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/price");
const { data, meta } = await res.json();
```

**Python**

```python
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)**

```json
{
  "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](https://docs.crius.sh/reference/tokens/token-price/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20CHARGE%3A%20a%20graduated%20Pons%20token%20priced%20from%20its%20v4%20pool&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fconcepts%2Ftoken-prices%2F%23price-source%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftoken%2F0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2Fprice%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## 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](https://docs.crius.sh/concepts/uniswap/) explains how v3 and v4 in-range liquidity is measured.

## Confidence and thin liquidity

| Value | When |
| --- | --- |
| `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: true` | No 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` |

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

### A thin price: no real market behind it

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

GET/v1/robinhood/token/0x0e18c1d0413b573ecfd70b192b95a178119d5222/price

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x0e18c1d0413b573ecfd70b192b95a178119d5222/price"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x0e18c1d0413b573ecfd70b192b95a178119d5222/price");
const { data, meta } = await res.json();
```

**Python**

```python
import requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x0e18c1d0413b573ecfd70b192b95a178119d5222/price",
)
body = r.json()
print(body["data"])
```

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

```json
{
  "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](https://docs.crius.sh/reference/tokens/token-price/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20A%20thin%20price%3A%20no%20real%20market%20behind%20it&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fconcepts%2Ftoken-prices%2F%23thin-price%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftoken%2F0x0e18c1d0413b573ecfd70b192b95a178119d5222%2Fprice%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

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

### 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**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec/price");
const { data, meta } = await res.json();
```

**Python**

```python
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)**

```json
{
  "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](https://docs.crius.sh/reference/tokens/token-price/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20A%20tokenized%20stock%3A%20NVDA%20priced%20against%20USDG&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fconcepts%2Ftoken-prices%2F%23stock-price%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftoken%2F0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec%2Fprice%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## 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](https://docs.crius.sh/conventions/#numbers-and-amounts).
-   **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](https://docs.crius.sh/guides/get-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.
    

```js
// 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}`);
}
```

A price is not a quote

`usd` is the pool’s current price for a small trade. What a large buy or sell would really get depends on the pool’s depth. Check `liquidity_usd` against your size before acting, and see [pools & liquidity](https://docs.crius.sh/guides/get-token-pools-and-liquidity/) for every market a token trades in.

## 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.

## Related

[Guide **Get a token 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. Read](https://docs.crius.sh/guides/get-token-price/) [Guide **Pools and liquidity** Robinhood Chain liquidity API: list every Uniswap v2, v3 and v4 pool and launch curve of a token, with USD liquidity, fees, hooks and the price pool. No key. Read](https://docs.crius.sh/guides/get-token-pools-and-liquidity/) [Guide **Market cap, FDV and supply** Robinhood Chain token supply API: total, burned, locked and circulating supply plus market cap and FDV of any token in one call, and how each is computed. Read](https://docs.crius.sh/guides/market-cap-fdv-and-supply/) [Guide **OHLCV candles** Robinhood Chain OHLCV API: candles for any token from 1 second to 1 day, with buy volume, trade count and market cap per candle. Real examples and chart code. Read](https://docs.crius.sh/guides/get-ohlcv-candles/) [Concept **Uniswap v2, v3 & v4** How Crius indexes Uniswap v2 pairs, v3 concentrated-liquidity pools and v4 singleton pools with hooks on Robinhood Chain, including liquidity definitions and v4 hook permissions. Read](https://docs.crius.sh/concepts/uniswap/) [API reference **Token price API** The fastest call: USD and ETH price, the pool it came from, that pool's liquidity and a confidence level. Read](https://docs.crius.sh/reference/tokens/token-price/)
