The Kerb Terms Standard, version 0.1, is the rulebook that turns observations into credit terms. This page states each rule and then works it through on HKEXCx using the numbers Kerb is publishing right now. Nothing here is illustrative. The specification carries a worked example marked “not measured”; it is deliberately not reproduced, because a placeholder number on a page that looks authoritative is how people get misled.
1. The regime machine
A regime is a statement about the quality of the market Kerb would have to liquidate into. The resolution order is strict: the first rule that fires wins, and the dangerous states are checked first so a weaker signal can never mask a stronger one.
Order
Regime
In the report
What it says
1
Halted
HALTED
Trading in the underlying is halted.
2
Stale
STALE
The sources the mark needs are too old to price against.
3
Corporate action
ACTION
A corporate action is pending or in progress on the underlying.
4
Last Call
PRE_TRANSITION
The session is about to weaken. Session Max positions must cure before it closes.
5
Reference closed
REFERENCE_CLOSED
The underlying market is closed, so no new reference price is arriving.
6
Thin
THIN
Executable depth is thin relative to the debt it supports.
7
Normal
NORMAL
Normal executable liquidity in the underlying's regular session.
8
Deep
DEEP
Deep executable liquidity and a fresh reference price.
9
Recovery
RECOVERY
The session has reopened and terms are loosening back on the cooldown.
Terms tighten immediately and loosen only after a cooldown, and only by a bounded step. A market that just came back is not yet a market you can lend into at full size.
HKEXCx right now
Reference closed
2. Executable depth
Depth is not a pool balance and not an aggregator estimate. Kerb walks the real Uniswap V3 pool tick by tick in the direction of a sale, consuming liquidity in each initialised range and applying the fee, and asks: what is the largest notional whose realised price impact is at most i? That answer is C(i). Where a pool is quoted in something other than the loan asset, each leg is simulated in turn and the impacts compound. Venues that cannot be simulated are excluded with a recorded reason, never silently dropped.
C(1%)
16,918.82
The notional the debt ceiling is built from.
C(0.5%) and C(3%)
8,190.44 and 48,449.28
Path
wHKEXCx → USDG
Cross-check
simulated 16,918.82 against 16,858.04 quoted, a difference of 0.361%
Kerb takes the smaller of the two whenever they disagree beyond the configured maximum. Never the larger.
The mark a lender may act on is the conservative one. Kerb takes the median of the fresh reference sources, compares it with the pool price along the whole path to the loan asset, measures the dispersion between them, applies the regime’s haircut, and publishes the lower of the two with a band. A wrapped collateral token is valued as convertToAssets(shares) times the Credit Mark: the wrapper exchange rate converts shares to units and is never itself used as a price.
Reference median
49.866157
from yahoo:chart:0388.HK, yahoo:chart:HKD=X
Pool price
49.378133
time-weighted
Dispersion and haircut
0.979% dispersion, 1.989% haircut
Credit Mark
48.395837
band 47.9119 to 49.3781
4. Capacity
Three constraints, and the tightest wins. Stress capacity asks how far the underlying could gap over the horizon the position must survive, using the 99th percentile move over comparable intervals scaled by recent volatility, plus the impact of liquidating at a reference size, the liquidation bonus and a buffer. Liquidity capacity sets the debt ceiling at a fraction of C(1%): never lend more than you can liquidate. Position capacity caps what a single borrower may owe. Carry and Session Max are the same calculation over two different horizons: Carry must survive the next weakening, Session Max only the rest of the session, which is why it comes with the covenant.
Horizon
5.70h weak, 4.20h to cure
Carry is measured to the far side of the next weakening; Session Max to the cure deadline.
Gap quantile and volatility scaler
2.914% at the 99% quantile, scaler 0.8157
From at least five years of daily bars.
Carry LTV
53.46%
Session Max LTV
54.30%
Liquidation threshold
60.00%
Fixed. It does not move with the session, and changing it is a timelocked admin action.
Debt ceiling and position cap
12,689.11 and 4,229.70
5. The cure covenant
Drawing above the Carry ceiling records a target: the Carry LTV at the moment of the draw. When the underlying market is about to weaken, the Last Call window opens and the position becomes curable. Anyone may repay exactly the amount that brings it back to that target and is paid a bonus in collateral for doing it. Cure is not liquidation: it cannot repay more than the covenant requires, it cannot run outside the window, and it stops being available the moment the borrower reaches target by repaying or adding collateral. A position that breaches the fixed liquidation threshold takes the ordinary default path instead.
Because the cure also seizes the collateral that pays its own bonus, the amount required is not simply the shortfall. It solves R = (debt − target × value) / (1 − target × (1 + bonus)), so that the position is actually at target once the cure has run.
The engine is a pure function of its input bundle: no clock reads, no network calls and no randomness inside the computation path. Every report canonicalises its inputs, hashes them with keccak256, pins the bytes to IPFS, and posts the hash on chain alongside the terms. Anyone holding only that hash can recover the exact inputs and arrive at the same numbers.
Every constant the engine runs on, read from the same file the engine reads. Parameters are versioned with the report, so a number published under one version can never be re-explained by another.