Skip to content
Keel
Ledger
64,489,417
Methodology
1.0.8-draft
Age
6s

What depth stands behind this price?

VELO against USDC · GDM4RQ…RM2M5M

How much can this asset safely back?

The ceiling is the lower of two independent limits. Which one binds is the part a lender acts on, so both are shown.
  1. Low
  2. Medium
  3. High
  4. 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.

236.82 USDC (shortened; full value 236.821102954899152797420720398452611054063338304384 USDC)

Limited by liquidation depth

Liquidation termbinds
236.82 USDC (shortened; full value 236.821102954899152797420720398452611054063338304384 USDC)

Sell-side depth at the liquidation delta, times the haircut.

Manipulation term
1,011.83 USDC (shortened; full value 1011.8348826760266998712281475 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.

Every threshold, as the engine serves it

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?

Two venues can disagree. Both readings are shown, not only the one that won.
Mid price
0.00416435 USDC (shortened; full value 0.0041643589160467 USDC)

Source: order book mid

Spread
0.0720 % (shortened; full value 0.07208322408601768883534509 %)

Undefined unless the price came from a two-sided book

Pool spot price
0.00416806 USDC (shortened; full value 0.0041680640625751 USDC)

Reported whenever an active pool exists, whichever source won

Divergence between the two
0.0888 % (shortened; full value 0.08889370395403419566156249 %)

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?

Three rungs at 2, 5 and 10 per cent, in each direction. The buy side matters for oracle manipulation and the sell side for liquidation.
  • SDEX
  • AMM
  • Sell side, composition not reported

2% from mid

Buy side
5.16 USDC (shortened; full value 5.1667052597104809542834680471 USDC)
Sell side
185.06 USDC (shortened; full value 185.069792141181965816726053633910242552083334537586 USDC)

5% from mid

Buy side
3,942.48 USDC (shortened; full value 3942.4866421191178989544082068694 USDC)
Sell side
191.67 USDC (shortened; full value 191.673470394585916933132619612642558785461565794378 USDC)

10% from mid

Buy side
3,971.96 USDC (shortened; full value 3971.9685654845481763144600336248 USDC)
Sell side
473.64 USDC (shortened; full value 473.642205909798305594841440796905222108126676608768 USDC)

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?

Read cost together with reachability: a figure on an unreachable rung says how far the book goes, not what the move costs.
Cost to move the price by each delta, through all venues and through the order book alone, with whether the target is reachable at all.
MoveTarget priceCost, all venuesCost, order book only
0.5%0.006246 USDC (shortened; full value 0.00624653837407005 USDC)4,144.92 USDC (shortened; full value 4144.9248186396567386395290310218 USDC)4,047.33 USDC (shortened; full value 4047.33953070410679948491259 USDC)
1%0.008328 USDC (shortened; full value 0.0083287178320934 USDC)17,279.06 USDC (shortened; full value 17279.0628299815673161912981336579 USDC)17,099.04 USDC (shortened; full value 17099.04620901082029312712409 USDC)
10%0.045807 USDC (shortened; full value 0.0458079480765137 USDC)77,641.67 USDC (shortened; full value 77641.6775010464503763305110031769 USDC)76,633.98 USDC (shortened; full value 76633.9869636553137999339797 USDC)
100%0.420600 USDC (shortened; full value 0.4206002505207167 USDC)1,007,633.00 USDC (shortened; full value 1007633.0084025923573233117626066956 USDC)1,003,695.91 USDC (shortened; full value 1003695.9112241086086299339797 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?

An unevaluated check is not a check that came back clear. The two never share a treatment.

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?

Concentration and wash trading bound how much of the depth above is real.
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?

A single reading cannot separate a thin asset from one that just got thin. This is a stored series, not the historical replay that health reports as unavailable — those are different endpoints.

24 readings from horizon, with no gaps reported. One source per chart.

Band at each reading

Critical
24 of 24

Which checks were firing

Whether a finding has been there all along or started recently. Only checks that fired at least once appear.

MANIPULATION_CHEAPthroughout
THIN_DEPTH_5PCTthroughout
ZERO_DEPTH_2PCT7 of 24

Price

Lowest
0.00391410 USDC (shortened; full value 0.00391410957217545 USDC)
Highest
0.00422191 USDC (shortened; full value 0.00422191379342945 USDC)
2026-09-17T12:46:08Z2026-09-18T11:46:03Z
Mid price
0.00417382 USDC (shortened; full value 0.00417382273453935 USDC)

Buy-side depth

What an order can absorb before the price moves against a buyer. The rungs are nested, so one scale covers all three, and the lines darken as the rung widens.

Lowest
0 USDC
Highest
4,246.85 USDC (shortened; full value 4246.8534720886263302710058366054 USDC)
2026-09-17T12:46:08Z2026-09-18T11:46:03ZOne scale across every line on this chart
2% from mid
20.70 USDC (shortened; full value 20.7016196138477040096630775482 USDC)
5% from mid
3,701.80 USDC (shortened; full value 3701.8089351651071941971044075197 USDC)
10% from mid
3,731.30 USDC (shortened; full value 3731.302770443932672858372084346 USDC)

Cost to move the price by half

The series carries one manipulation rung, at the half per cent delta the engine treats as critical. A reading the engine could not produce breaks the line rather than sitting at zero.

Lowest
117.30 USDC (shortened; full value 117.30163130289654995866745 USDC)
Highest
4,352.52 USDC (shortened; full value 4352.52828030598559741334052 USDC)
2026-09-17T12:46:08Z2026-09-18T11:46:03Z
Manipulation cost, 0.5%
3,806.15 USDC (shortened; full value 3806.15553140324701692935344 USDC)

Collateral ceiling

Lowest
21.86 USDC (shortened; full value 21.86720381870555330656400218932096551034612808159 USDC)
Highest
230.86 USDC (shortened; full value 230.863896316999784998165077120398263340506589083479 USDC)
2026-09-17T12:46:08Z2026-09-18T11:46:03Z
Max safe collateral
230.86 USDC (shortened; full value 230.863896316999784998165077120398263340506589083479 USDC)
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,417

Closed at 2026-09-18T12:01:03Z

Computed at
2026-09-18T12:01:09.60251Z
Data source
horizon
Methodology
1.0.8-draft

The version that produced these figures, not the one this page was built against