Credit priced by the market,
not by a formula.

Montane Swap lets anyone issue debt notes, trade them on a fully onchain order book, and bet on their price. Each borrower's health is marked to the market price after every fill.

Onchain CLOBNo external oracle24h cellsLive on Monad testnet

The problem

Pools, not markets

Onchain borrowing means a shared pool with a rate set by a utilization curve.

Oracle-judged risk

Liquidations depend on an external price feed the borrower doesn't control.

No paper of your own

You can't issue your own debt, and nobody can price it on a real book.

How it works

  1. 1

    Issue

    Post USDC, mint notes. Each note is a promise to pay 1 USDC. Collateral must cover at least 1.10× the face.

  2. 2

    Trade

    Notes list on an onchain order book. Buy them on the long book, or bet on their price on the cash-settled short book.

  3. 3

    Mark

    Every fill sets the mMonad price. Every cell's health is re-marked to that price, live.

  4. 4

    Settle

    After 24h: a healthy issuer repays, a stressed cell is taken over by a hunter. Holders are paid at par.

Health, priced live

H = G / (F × Pmid)

G = collateral · F = notes owed · Pmid = mMonad price = (last long fill + last short fill) / 2

The issuer owes notes. When buyers want notes, the price rises and the debt gets more expensive, so health falls. When shorts push the price down, health recovers. The borrower feels every trade, like real credit.

Example cell: G = 115, F = 100P_midHSeason
Calm market1.001.15Verdant
Longs buy aggressively1.061.08Frostbite
Shorts push back1.021.13Verdant

Verdant: H > 1.10. Frostbite: H ≤ 1.10. Mint itself requires G/F ≥ 1.10, so every note starts fully backed at par.

Life of a cell

0h

Mint

Notes are listed as a long ask at 1.005. A Season market opens for the cell.

0–24h

Trade

Longs and shorts move the price and the health. Hunters can lock a bond on a Frostbite cell.

24h+

Settle

Verdant: the issuer repays and holders redeem at par. Frostbite: a hunter takes over and the cell is recapitalized.

The 24h clock starts at the first sale (else at mint). Note holders are paid at par in both outcomes, pro-rata only if the cell is underwater.

Who uses it

Issuer

Raises USDC against collateral.

Keeps the seat while healthy, earns 10% of the losing Season pot.

Note buyer

Wants a dated claim on USDC.

Holds notes redeemable at 1 USDC each after maturity.

Short

Thinks notes are overpriced.

Profits when the note settles below the entry price.

Hunter

Wants a cheap issuer seat.

Recapitalizes a Frostbite cell and takes it over.

Season bettor

Has a view on a cell's health.

Bets Verdant or Frostbite, winners split 80% of the losing side.

Revenue

SourceProtocol takesNote
Issuance25 bps of face1 bp if the same issuer remints within 48h of repaying
Trading5 bps taker feeLong and short books
Winter levy1% of the hunter's bondOnly when the hunted cell is underwater (H ≤ 1)
Season10% of the losing potAnother 10% goes to the cell's issuer

All fees are collected onchain into the treasury.

Why Monad

A real order book matches every order onchain: placing, filling, cancelling, and re-marking every cell's health after each fill. On a slow or expensive chain that forces an offchain matching engine. Monad's fast, cheap blocks let the whole book live onchain, with no operator in the middle.

Safety rails

0.10 spread

Long orders ≥ last short + 0.10, short orders ≤ last long − 0.10. The books never cross.

1% print floor

Fills under 1% of a cell's face don't move the price, so dust trades can't steer health.

Short cap

Open shorts per cell are capped at half its face.

±20% price band

One order can move the price at most 20%. Enforced in the UI today, in the contract on mainnet.

Guardian pause

An emergency pause, no discretionary price controls.

Reference

Full rules for each part of the protocol. Click to expand.

›Issue a cell

Anyone with USDC can mint. Mint requires G/F ≥ 1.10 so every note stays backed at par. First mint fee is 25 bps. If you repaid and remint within 48h, the fee is 1 bp (roll).

On mint the cell's notes (mMonad id = cell id) are escrowed in the market and listed as a long ask at 1.005 for the full face. The short book starts empty.

Retire: before maturity the issuer can buy notes back on the long book and burn them. Face F shrinks and H rises.

›Long book and the mMonad price

Books are long and short. Buying long is not selling short; the books never cross. Fills happen at the maker's price. Taker fee is 5 bps. The long book trades real notes of one cell; orders only match within the same cell.

P_mid is the average of the last long fill and the last short fill, across all cells. Every qualifying trade moves it, and with it every cell's H.

›Short book (cash-settled)

The short book is a cash-settled bet on a cell's note price, quoted as a price e below 1.00. Every unit locks exactly 1 USDC: the short puts in 1 − e, the writer puts in e.

At maturity the settlement price v is the cell's note TWAP, capped at 1.00. On a thin book (under 3 fills or under 10% of face traded) v is the cell's redemption value instead. The short receives 1 − v and the writer v, so the short profits when notes trade below e. Holding both sides of one cell nets out at 1 USDC per unit, which is the early exit.

Short trades never touch G, F or the notes. Open short units per cell are capped at half the cell's face.

›Price band: UI today, contract on mainnet

The spread rule gives each book only one edge. Longs have a floor but no ceiling, shorts have a ceiling but no floor. Without a cap, one order could jump the price: with mMonad at 2.00, a long bid at 50 could print 50, collapse every cell's H and decide Season outcomes in a single trade.

The trade desk applies a ±20% band: long orders up to last long + 20%, short orders down to last short − 20%. Prices can still trend over several trades; the band removes the one-shot jump.

Testnet limitation: the band lives in the frontend only. The deployed CreditMarket enforces just the 0.10 spread, so a direct contract call can bypass it. We kept the testnet bytecode frozen during the hackathon.

Mainnet: the check moves into placeOrder and fillOrder next to _inSpread, with a PriceOutOfBand error and a configurable width. The reference stays the last print, which already ignores fills under 1% of face.

›24h maturity

The clock starts at first sale (else mint) + 24 hours, plus a minimum block delay. Until then the issuer cannot repay and holders cannot redeem. After it, any holder can redeem notes at par straight from the cell (pro-rata if H < 1), and the short book settles. The Cell page shows a live countdown.

›Hunt and novation

Hunting is Frostbite-only (H ≤ 1.10). Before maturity it is a request that locks bond B. At maturity: if the cell recovered to Verdant, the bond is slashed to the issuer; if still Frostbite, the cell novates to the hunter. After maturity a hunter can novate at once.

On novation the bond is added to the cell's collateral and the hunter takes the issuer seat, including unsold notes. The previous issuer loses their margin. Note holders are unaffected; the cell is now better collateralized. One wallet can be the issuer of only one active cell.

›Repay

Issuer-only, Verdant (H > 1.10), after maturity. Repay reserves 1 USDC for every outstanding note (or all of G if less), fixes the short-book settlement price, refunds resting orders and returns the rest of the collateral to the issuer. Every holder then redeems their notes at par from Portfolio.

›Season

An optional market bound to one cell. For the first 12h after the cell opens, buy only VERDANT or only FROSTBITE at $1. Hedge packs (equal V + F) stay open until maturity.

At maturity VERDANT wins if the cell's marked H is above 1.10; otherwise FROSTBITE wins. The settling P_mid and H are stored onchain. The losing pot splits 10% treasury, 10% issuer, 80% winners. With no losers, everyone gets 1:1 back.

Because P_mid moves with every fill, a Season is a live contest: long buyers push cells toward Frostbite, shorts push them back to Verdant. Anyone who thinks the price is wrong can trade against it.

›Portfolio

Portfolio shows your USDC and mMonad marked to market, issued debt, cells where you are issuer or holder (with marked H), notes to redeem, resting orders, short positions with settle and claim, and Season positions with cost, mark and PnL.

Glossary

mMonad
The debt note: an ERC-1155 where token id = cell id, so notes of different cells never mix. Each is a claim on 1 USDC of that cell at maturity. Not the Monad gas token.
Cell
One issuer position: collateral G and face F (= mMonad supply of that id).
Verdant
Healthy cell: marked H > 1.10.
Frostbite
Stressed cell: marked H ≤ 1.10. Hunting opens; repay is blocked.
P_mid
The mMonad price: (last long fill + last short fill) / 2, one price for all cells.
Note TWAP
Time-weighted long-note price of a cell; settles its short book.
Novation
A hunter takes over a Frostbite cell by adding a bond to its collateral.
Retire
Issuer buys notes back and burns them, shrinking F before maturity.
Redeem
Holders burn notes for USDC at par after repay or maturity.