Cash-settled spreads
A capped call spread collateralized in USDG, settled by one price read after expiry.
Payoff
A band has strike K and width W (cap = K + W).
Up = min( max(S − K, 0), W )
Down = W − UpClose price S | Up | Down |
|---|---|---|
S ≤ K | 0 | W |
S = K + W/2 | W/2 | W/2 |
S ≥ K + W | W | 0 |
Up is a call spread from K to K + W. Down is its complement: a put spread from K + W down to K.
Prices
Because Up + Down = W at every price, the pool signs one Up quote and the contract derives Down:
Down ask = W − Up bid
Down bid = W − Up askBoth sides read as cents on the dollar of width. A multiple is W ÷ premium.
Collateral
| Locked per contract | ceil(qty × W) USDG, at the time of sale |
| Margin | None |
| Liquidation | None |
| Pool limit | At most 80% of pool value committed to open positions |
| Matched Up and Down | Recombine. One W covers both. |
A buy reverts with inventory if free USDG can't cover the collateral, and with alloc cap past the 80% limit. The largest stake at a multiple m is about free pool ÷ m.
The owner cannot withdraw collateral backing open positions, and a round cannot be cancelled once started.
Settlement
- After maturity plus the settle delay (60 s on BTC and ETH), anyone can settle.
- The contract reads Chainlink
latestRoundData()once. It requires a positive answer, a complete round, and an update withinmaxStaleness. Otherwise it reverts and is retried. - Holders claim USDG with no deadline.
No price is read when buying, selling or claiming.
Limits
| Limit | Value | Where |
|---|---|---|
| Bands per side per round | 8 | Contract |
| Open rounds per pool | 1 | Contract |
| Committed share of pool | 80% | Contract, per pool |
| Payout per contract | W | Contract, fixed per band |
| Protocol fee | 0 (max 500 bps) | Contract, per pool |
Live values: Contracts.
