Skip to content
Crifine

Core concepts

Six ideas. Everything in the API is built out of them.

Quoted price

What an oracle reports. It is a reference price, and oracles produce it well — the failure is not oracle malfunction. The failure is the assumption, baked into nearly every on-chain risk model, that reference price and executable price are the same number.

They are the same number only when the book is deep relative to the size being moved. That holds most of the time, which is why the assumption survives, and it fails exactly when it is most expensive: during rotations, during liquidation cascades, on weekends, in long-tail collateral.

Realized price

The volume-weighted price a stated size actually clears at, derived by walking observed depth. It is always reported alongside the size it was computed for, because a realized price without a size is meaningless.

Depth ladder

Resting liquidity, bucketed by distance from the oracle price. Each level says how much clears inside that band. Walking the ladder for a requested size — filling each band in turn until the size is exhausted — is the entire calculation the product performs.

A ladder, in the shape the API returns it
{
  "pool": "aave-v3 / WETH",
  "as_of": "2026-08-29",
  "oracle_price": 4820.00,
  "levels": [
    { "bps": 5,   "usd": 612000,  "cumulative_usd": 612000,  "price": 4817.59 },
    { "bps": 10,  "usd": 548000,  "cumulative_usd": 1160000, "price": 4815.18 },
    { "bps": 25,  "usd": 471000,  "cumulative_usd": 1631000, "price": 4807.95 },
    { "bps": 50,  "usd": 402000,  "cumulative_usd": 2033000, "price": 4795.90 },
    { "bps": 100, "usd": 318000,  "cumulative_usd": 2351000, "price": 4771.80 },
    { "bps": 200, "usd": 268000,  "cumulative_usd": 2619000, "price": 4723.60 },
    { "bps": 400, "usd": 279000,  "cumulative_usd": 2898000, "price": 4627.20 },
    { "bps": 800, "usd": 222000,  "cumulative_usd": 3120000, "price": 4434.40 }
  ]
}

Exit gap

exit_gap_pct = (realized_price_est / oracle_price - 1) × 100. It is always signed — an unsigned execution gap has lost the only part that mattered. Negative means the book pays less than the feed claims, which is the ordinary case.

MagnitudeReading
under 1%The book holds at this size.
1% – 4%Real cost. Worth resizing or routing.
over 4%The book does not support this size right now.

Stress window

Headline risk fields report the worst observed condition in the window, not the mean. lowest_depth_7d_usd is the thinnest the book got over the trailing seven days. Averages hide exactly the event you are paying to avoid, so Crifine does not lead with them.

Days observed

The length of the continuous record backing a result, exposed deliberately rather than hidden. Confidence is a disclosed field here, not a marketing posture — a seven-day window is a weaker claim than a two-hundred-day one, and the consumer is entitled to know which they are getting.

Market session

market_open matters only for RWA collateral, and matters enormously there. Tokenized equity markets close; the tokens never do. An agent trading a tokenized stock on Saturday is quoting Friday's price into an empty book, and nothing else in its stack says so. See Market hours and RWA.

Why is the pool identifier not an address?
A pool is a *venue plus asset* under recording, and the same economic pool can move address across a venue upgrade. Identifiers are stable slugs (aave-v3-weth) so a stored evidence link keeps resolving; the underlying addresses are listed on the pool's evidence page.