Options on the borrow rate
A research track priced the HyperCore USDC borrow rate with HIP-4 scalar bands, listed them on somebody else's perp, and found owning the perp does not pay.
The HyperCore USDC borrow rate floats, and nothing on Hyperliquid lets you fix it. The track built an index on the rate and a ladder of HIP-4 scalar bands across its kink: buy a band to fix part of a cost, sell one to lock a yield. The deciding test, listing on a perp somebody else deployed, passed.
The rate is 0.05 + 4.75 * max(0, u - 0.8) a year on utilisation u, accrued continuously and indexed hourly. Past 80 per cent, each point of utilisation adds 475 basis points. Every borrower, including portfolio-margin accounts that borrow automatically, is short a call on utilisation.
Say utilisation rises from 80 to 81 per cent:
- The rate goes from 5.00 to 9.75 per cent.
- The index, quoted as
100 - rate, falls from 95.00 to 90.25. - Settled there, the 90 to 95 band pays Long (90.25 - 90) / (95 - 90) = 0.05 and Short 0.95 per contract.
The index is quoted as 100 minus the rate
Section titled “The index is quoted as 100 minus the rate”This is the rate-futures convention: 5 to 25 per cent maps to 95 to 75. A HIP-3 rule forced it. An externalPerpPx move over 50 per cent from the start-of-day price triggers a validator slashing review, and assets expected to do that more than once a month cannot be cross margined. Through the kink, 5 to 10 per cent is +100 per cent as a rate but 5.3 per cent as 95.00 to 90.00.
- It tracks the hourly-indexed realised accrual, not an average of the instantaneous rate, so a hedge is exact.
- It recomputes the rate from
utilizationBpsrather than trustingborrowYearlyRateBps, so divergence is detected. Five gates fail closed on degenerate inputs.
Each band is a fully collateralised call spread
Section titled “Each band is a fully collateralised call spread”No liquidation, no auto-deleveraging. A scalarPrice Long pays (price - low) / (high - low) clamped to 0 to 1 and Short pays 1 minus that, on a TWAP of the named perp over a stated window. Adjacent bands replicate a payoff curve far better than as many single strikes.
A Long band is short the rate: borrowers hedge with Short, suppliers lock a yield with Long. The kink at 95.00 is steep: the 90 to 95 band covers rates of 5 to 10 per cent, utilisation of 80 to about 81.05 per cent. See market shapes.
The template accepts somebody else’s perp
Section titled “The template accepts somebody else’s perp”The project hinged on one keyword. scalarPrice names its underlying through hlPerp; if it rejected a builder-deployed dex:COIN, only a rate perp would remain. The docs hinted : was allowed, but mainnet had 0 scalarPrice outcomes among 228 active.
Proven by the track’s own transaction:
| Evidence | Finding |
|---|---|
| Shared type | scalarPrice, binaryPrice and priceTouch all declare perp as hlPerp on mainnet; validation is per keyword type |
| Already used | 35 of 228 live mainnet outcomes carried a dex-prefixed hlPerp value |
| Own markets | Four testnet scalars on a builder-deployed US 10-year Treasury yield perp, accepted first time and read back from outcomeMeta: bands 4.5 to 4.75, 4.75 to 5, 5 to 5.25 and 5.25 to 5.5, expiring 2026-10-15 at 16:00 UTC, on the 3,600-second TWAP |
| Testnet template | scalarPrice3 instead of scalarPrice, with the same keywords, name and side names |
An outcome deployer need not own the perp dex: all three mainnet outcome venues on the largest builder-deployed dex were third parties to it.
uDecimal values forbid trailing zeros: 95.000 signs and prints normally but is refused on submission; 95 is accepted.
Moving the index costs only opportunity
Section titled “Moving the index costs only opportunity”Smoothing sets how long an attacker must hold, not whether they can. Routes to the kink against the 2026-09-20 reserve:
| Route to the kink | Capital | Marginal cost to hold 8 hours |
|---|---|---|
| Borrow until utilisation reaches 80% | 55.8 million USDC borrowed, plus 87.3 million USD of HYPE collateral at 0.65 LTV | about 3,110 USD of interest |
| Borrow further, to a 6.00% rate | 56.8 million USDC | 9,300 USD of borrowing per extra basis point |
| Withdraw own supply until utilisation reaches 80% | 69.8 million USDC | about 1,958 USD of forgone yield |
| Withdraw further, to a 6.00% rate | 70.8 million USDC | 9,788 USD of withdrawal per extra basis point |
Withdrawal fits one account under the 250 million USDC per-user supply cap; borrowing needs two (50 million USDC per-user borrow cap). A holder of Q dollars of a bounded side gains at most Q, so with hurdle h on committed capital C held for t, and safety multiple k:
Q_max = C * h * t / kAt a 20 per cent hurdle and 3x safety, defending 10 million USD needs over 900 days. The real lever is reserve depth, which no deployer controls and which is thinnest near the kink, where the capital to cross 80 per cent collapses towards zero.
Owning the perp does not pay
Section titled “Owning the perp does not pay”The HIP-3 stake cannot be earned back in fees. 500k HYPE, held at least 183 days after the dex is deployed and burned if validators vote to slash, needs the month-defensible book to turn over 187 times a day; a liquid perp turns over a few times. No row of the cost schedule (HYPE 45.69 to 182.75 USD, hurdles of 5, 10 and 20 per cent) closes the gap, even with slashing unpriced.
The testnet deploy failed on collateral, not stake: with 205 HYPE staked, registerAsset2 returned Invalid perp DEX for USDC and Collateral asset not supported for five other tokens. The deploy auction stood at 500 HYPE against 0.4 HYPE on the account.
The numbers
Section titled “The numbers”| Quantity | Value | Basis |
|---|---|---|
| Borrow rate curve | 0.05 + 4.75 * max(0, u - 0.8) a year |
docs; spec 01 |
| Rate at 80%, 90%, 100% utilisation | 5.00%, 52.5%, 100% | computed from the curve |
| Supply rate identity | borrow * u * 0.9; 500 x 0.6736 x 0.9 = 303 bps |
spec 01; spec 02 |
| Live reserve, 2026-09-20 | 5.00% borrow, 3.03% supply, 67.36% utilisation; 441.7 million USDC supplied, 297.6 million borrowed | spec 01 |
| Index quote | 100 - rate; kink at 95.00 |
spec 01 |
| Mainnet templates, testnet templates | 18 and 66; scalarPrice on mainnet only |
spec 01, 2026-09-20 |
Live outcomes with a dex-prefixed hlPerp |
35 of 228 | spec 01 |
scalarPrice outcomes on mainnet |
0 of 228 | spec 01 |
| Defensible open interest, 8-hour window | 3,296 USD | spec 01 (20% hurdle, 3x safety) |
| Defensible open interest, month window | 296,677 USD | spec 01 |
| HIP-3 stake | 500k HYPE, at least 183 days, burned if slashed | docs |
| Stake at 91.25 USD a HYPE | 45.6 million USD | spec 01 |
| Carry at a 10% hurdle | 4.6 million USD a year | spec 01 |
| Breakeven volume, 0.045% fee, 50% deployer share | 55.6 million USD a day | spec 01 |
| Turnover of the defensible book to break even | 187 times a day | spec 01 |
| HIP-4 mainnet limits | 100 active outcomes, 500 new a day | digest 02 |
Keep the bands, drop the perp
Section titled “Keep the bands, drop the perp”Listing on an existing perp removes the HIP-3 stake, oracle liability and slashing, but makes you a HIP-4 deployer: 500k HYPE on mainnet unless you list from an existing venue, and the duty to compute the TWAP and submit it with exactly matching names.
A rate underlying already existed, contrary to the brief: a US 10-year Treasury yield perp on mainnet, quoted as the yield in percent, with open interest. Every rate and volatility underlying found had cross margin off.
History has to be collected. There is no historical 0x812 reserve state, so a sampler records the reserve on a fixed grid while the index is tested on synthetic and adversarial series.
Orders are not delayed either, contrary to the docs: see one HyperEVM transaction.
Six questions still open
Section titled “Six questions still open”| Open question | Detail |
|---|---|
| The underlying is not the HyperCore rate | No borrow-rate perp exists, so the cheap path uses an external rate such as a Treasury yield |
| A halt on somebody else’s perp | An oracle the lister does not control; its effect on live bands is not written down |
| Validator acceptance of a rate as a HIP-3 underlying | Slashing guidance does not reach index choice, and no probe returns a stake-weighted judgement; matters only if the perp is revived |
| Reflexivity | Whether a borrow-rate perp changes borrowing is unmodelled, and a fair reason for validators to decline |
| Real history | The smoothing window cannot be validated until the sampler has run several multiples of it |
| What would flip the verdict | A much lower HIP-3 stake (the HIP-3 page expects a decrease; at 50k HYPE breakeven falls tenfold), or an order of magnitude more depth in the HyperCore USDC reserve |
For the hlPerp bridge, see How the HIPs compose; for stake cost and slashing, Deployer economics and risk.