What depth stands behind this price?
XRP against USDC · GBXRPL…PRDTD5
How much can this asset safely back?
- Low
- Medium
- High
- Critical — this asset
Criticalpartial confidence
A band marked partial is a floor. At least one high-severity check could not be evaluated, so the real band can only be worse than the one shown, never better.
346.46 USDC (shortened; full value 346.46799844628865144082662 USDC)
Limited by manipulation cost
- Liquidation term
- 597.97 USDC (shortened; full value 597.970419043179919501190667570093398094419913534525 USDC)
Sell-side depth at the liquidation delta, times the haircut.
- Manipulation termbinds
- 346.46 USDC (shortened; full value 346.46799844628865144082662 USDC)
Order-book-only manipulation cost at the critical delta, times the safety margin.
These bands come from thresholds that were chosen, not calibrated
The thresholds were chosen based on the magnitude of the Blend incident of February 2026 and on conservative judgement, not calibrated against a set of incidents. Every flag is reported separately so that consumers can apply their own thresholds.
Where this number comes from
- Source
- GET /asset/{assetId}/depth → maxSafeCollateral, maxSafeCollateralLiquidation, maxSafeCollateralManipulation
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
What this computation could not do
- maxReachablePrice and costToMaxReachablePrice are null because an active pool is present: under a constant product curve the price tends to infinity as the base reserve tends to zero, so every target is reachable and a highest price has no meaning
Served by the engine with this response and shown as written.
Where does the price come from?
- Mid price
- 1.32075641 USDC (shortened; full value 1.3207564144457314 USDC)
Source: order book mid
- Spread
- 0.3128 % (shortened; full value 0.3128231265868415535357528 %)
Undefined unless the price came from a two-sided book
- Pool spot price
- 1.32028647 USDC (shortened; full value 1.320286471826897 USDC)
Reported whenever an active pool exists, whichever source won
- Divergence between the two
- 0.0355 % (shortened; full value 0.03559398879427541861707075 %)
Null means there is no pool to diverge from, not that the sources agree
Where this number comes from
- Source
- GET /asset/{assetId}/depth → midPrice, priceSource, spreadPct, poolSpotPrice, priceDivergencePct
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
What volume can it absorb before the price moves?
- SDEX
- AMM
- Sell side, composition not reported
2% from mid
5% from mid
10% from mid
Bars share one scale. The venue split decomposes the buy side; the sell side is drawn as an outline because its composition is not reported.
Where this number comes from
- Source
- GET /asset/{assetId}/depth → depth[]
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
What would it cost to move the price?
| Move | Target price | Cost, all venues | Cost, order book only |
|---|---|---|---|
| 0.5% | 1.981134 USDC (shortened; full value 1.9811346216685971 USDC) | 1,501.79 USDC (shortened; full value 1501.7977529738981270733143058808 USDC) | 1,385.87 USDC (shortened; full value 1385.87199378515460576330648 USDC) |
| 1% | 2.641512 USDC (shortened; full value 2.6415128288914628 USDC) | 2,931.35 USDC (shortened; full value 2931.3542122961449736305805701666 USDC) | 2,717.77 USDC (shortened; full value 2717.77582542315460576330648 USDC) |
| 10% | 14.528320 USDC (shortened; full value 14.5283205589030454 USDC) | 238,109.13 USDC (shortened; full value 238109.130043549767236040336962442 USDC) | 236,915.04 USDC (shortened; full value 236915.04424732004910576330648 USDC) |
| 100% | 133.396397 USDC (shortened; full value 133.3963978590188714 USDC) | 567,000.72 USDC (shortened; full value 567000.7266429474962374241093018221 USDC) | 562,336.30 USDC (shortened; full value 562336.30686660088076576330648 USDC) |
Reachability on the all-venues ladder is unconditionally true whenever an active pool exists, because a constant product curve has no upper price bound. The order-book-only column is the one that answers whether a target is attainable, and it is the one Keel itself uses.
How far the book actually goes
- Furthest price the book reaches
- not computed
Null by structure, not by failure: an active pool means every target is reachable and a highest price has no meaning
- Cost to walk it that far
- not computed
Null for the same reason as the price above
Against genuine volume
Not reported for this asset. Without it there is no comparison between the cost of an attack and the genuine trading it would have to hide inside.
Where this number comes from
- Source
- GET /asset/{assetId}/depth → manipulationCostCombined[], manipulationCostOrderbookOnly[], oracleResistance
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
Which checks fired, and which could not run?
Triggered(2)
- MANIPULATION_CHEAP
- THIN_DEPTH_5PCT
Could not be evaluated(6)
- MANIPULATION_RATIO_LOW
- NO_GENUINE_TRADE_30D
- HOLDER_CONCENTRATION_EXTREME
- NO_GENUINE_TRADE_7D
- HOLDER_CONCENTRATION_HIGH
- WASH_TRADE_SUSPECTED
Where this number comes from
- Source
- GET /asset/{assetId}/depth → flags[], unevaluatedFlags[], bandConfidence
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
Who holds it, and is it genuinely traded?
- Largest holder
- not computed
- Top ten holders
- not computed
- Concentration index
- not computed
Herfindahl–Hirschman, over the holder distribution
- Volume excluded as not genuine
- not computed
Of 30 day volume. A high share indicates suspected wash trading
- Volume to supply, 30 day
- not computed
- Last genuine trade
- not computed
No genuine trade was found in the window
Where this number comes from
- Source
- GET /asset/{assetId}/depth → holderTop1Pct, holderTop10Pct, holderHhi, volumeToSupply, lastGenuineTrade, tradesExcludedPct
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
How has this moved over time?
This source is a lower bound, not a measurement
Trades-implied rebuilds the book from trades that happened, so every figure below is a floor: the real value is at least this, and may be more. It is not comparable with a direct reading.
No readings were stored in this range from this source
The engine accepted the request and returned nothing for Trades implied. The series is as old as the deployment, and the reconstruction sources are not populated in production, so a window can reach back further than anything that was recorded. It is not empty because the figures were zero.
Where this number comes from
- Source
- GET /asset/{assetId}/history → points[], gaps[], dataSource
- What it is
- Awaiting methodology copy.
- What it does not account for
- Awaiting methodology copy.
What was this computed from?
- Ledger
- 64,489,418
Closed at 2026-09-18T12:01:08Z
- Computed at
- 2026-09-18T12:01:14.780847Z
- Data source
- horizon
- Methodology
- 1.0.8-draft
The version that produced these figures, not the one this page was built against