Parametric cover · Somnia · dreamDEX
You hold ETH. It can fall while you sleep, and the instruments that would cover that fall expire every sixty seconds — so in practice nobody rolls them. Ballast does, with no keeper in the money path.
Two reactive systems in one block. dreamDEX creates markets inside a callback of its own — MarketCreated is log 75 here, not the summary — and Somnia’s precompile runs the handler inside the block that triggered it.
The problem
On this venue the instruments that would cover a fall expire every sixty seconds. Nobody sits up all night re-buying them, so the position ends up uncovered — not by decision, but by fatigue. Ballast is the part that does not get tired.
cover opened147.91 tUSDC · asked 250 bps, got 99 bpsblock 485350182
No exposureno measured spot position in this asset — nothing to coverblock 485349902
window openeddreamDEX rolled a new window; Ballast reacted in the same blockblock 485349422
cover opened135.20 tUSDC · asked 250 bps, got 131 bpsblock 485349582
No liquiditythe Down book was empty; refused rather than mispricedblock 485349902
attempt 1book not priceable yetblock 485350182
cover opened147.97 tUSDC · asked 250 bps, got 84 bpsblock 485349582
No exposureno measured spot position in this asset — nothing to coverblock 485349902
attempt 1covered 1block 485350182
cover opened147.97 tUSDC · asked 250 bps, got 85 bpsblock 485349582
window openeddreamDEX rolled a new window; Ballast reacted in the same blockblock 485350022
gave up3 attempts, book never became priceableblock 485349902
No exposureno measured spot position in this asset — nothing to coverblock 485350182
window openeddreamDEX rolled a new window; Ballast reacted in the same blockblock 485350022
Real windows from the recorded history, 13,213 of them across 1–11 September 2026. This is the thing you would have to keep up with.
How it works
Ballast covers what it can measure you holding on chain. Never a number you type in.
Ballast covers what it can measure you holding on chain — never a number you type in. On testnet that is one transaction and no approval.
The make-whole point, and the most you will pay for it per window. That is the whole of the policy. Revoking takes effect immediately and no operator can block or delay it.
Every window, in the block it opens, Ballast buys cover — or declines it and records which reason. No keeper in the money path. Your collateral stays in your name and unreserved balance is withdrawable unconditionally, throughout.
The honest part
Event Contracts are at-the-money binaries: one strike per window, struck at the window’s opening price, paying a fixed amount per winning contract. There is no strike ladder — 562 markets checked, at most one strike per venue per window. So no quantity of contracts produces a flat net line, and Ballast does not claim one. The gap either side is basis risk, the defining property of parametric cover — the same trade flight-delay insurance makes, paying the same whether you missed a meeting or a wedding.
A small fall costs your spot position little, but the cover pays its full fixed amount anyway. At a 1% fall on 4,491.02 tUSDC of exposure, spot loses 44.91 and the cover nets 112.28 — so you finish ahead. That is not a bonus; it is the same fixed payout arriving when it was not fully needed, and you paid for it.
The make-whole point is the one depth where the fixed payout and the spot loss are equal. You set it; Ballast sizes the position to hit it. Everything either side of this line is basis risk, and it is the property you are buying rather than a defect to engineer away.
The payout is fixed, so a larger fall is not matched by a larger payment. At a 5% fall spot loses 224.55 while the cover still nets only 112.28, leaving you 112.28 down. Deeper cover means a deeper make-whole point and more premium per window — there is no free version of this.
Not an illustration. Every figure is computed from the live measured exposure of 4,491.02 tUSDC (2 WETH at 2,245.51), the cover price of 0.494 actually paid on a settled position, and the 250 bps make-whole point on the live policy. Ballast always shows the make-whole point it achieved, never the one you asked for, and says which limit bound the size when they differ.
It has already done this
One account’s history across every engine Ballast has deployed, on 40 one-minute, 71 five-minute, 13 fifteen-minute and 4 one-hour windows.
Read this as a sample, not a result. These are 128 short windows on a thin testnet book — 40 one-minute, 71 five-minute, 13 fifteen-minute and 4 one-hour. Our own economics says rolling cover that often is ruinous over any real horizon — at those intervals the spread alone runs to thousands of percent a year, which is why the product defaults to the four-hour and twenty-four-hour windows. A favourable run of 128 does not contradict that. It is what a small sample looks like.
At-the-money cover is the most expensive cover this instrument offers. Because the strike is the window’s open, there is no cheaper out-of-the-money strike to buy instead, so you pay for the very likely small moves too. Recorded run, 1–11 September 2026.
And it refuses
13,248 windows were declined and 7,374 were abandoned after the retry ladder ran out. Each carries the reason the contract recorded — not a generic failure. A system that shows only what it did is hiding what it chose not to.
Current state
We said here that Somnia bills a reactive callback at its gas limit. It does not, and it never did: every charge we could check — 255 blocks on six engines, 1 to 11 September — is gas used × price, to the wei. The 0.07 STT a wake we quoted was our own contract’s worst-case estimate, read as a bill. The 1–2 September run cost 27.23 STT for 2,715 wakes, not the 190 we claimed.
Acting on that number, we cut the limit to 4,000,000 to save money that was never being charged, and no purchase fit: a callback that buys cover has used up to 9,218,505 gas, so the limit is back at 10,000,000. Restarting took a new contract in the end, because every order the old one placed outlived a sixty-second market. Opening a subscription requires the engine to hold 32 STT, a floor checked once at creation and never spent. It holds 0.07. topUp() is payable and permissionless, so anyone can fund it — but reopening a closed subscription is owner-only.
Questions
Every number in these answers comes from the chain or from the recorded run. None of them is illustrative.
What is not proven
The void settlement branch is covered by unit tests against a mock and has never executed against a real voided market.
It has only run against thin testnet books. Behaviour under deep books — partial fills in particular — is not demonstrated.
Binary markets exist for BTC and ETH only, so SOMI spot has no corresponding binary. The exposure source returns zero rather than guessing.