A Uniswap v4 hook

Every protocol already pays for volatility. None of them know the price.

Volatus turns liquidity mining into a market. A protocol buys the impermanent-loss risk off its LPs at a discovered price, in USDC — instead of renting liquidity with permanent token emissions.

One epoch 01 / 06

Pool

trading, as usual

the measured pool

Hook

watches every swap

accumulator += (Δtick)²

Variance score

bigger moves, bigger number

V = Σ(Δtick)² · (ln 1.0001)²

Mint the pair

1 USDC → two new tokens

USDCSTORM + CALM

Vol pool

STORM / USDC, priced live

price = implied volatility

Settlement

the real score pays out

p = clamp(VK,0,CK)/(CK)

↻ repeats — a new epoch opens right after

01

The pool trades

Someone trades against the pool and the tick moves. Nothing here is new — it's just a pool doing what pools do.

02

The hook watches

VolatusHook sits on the pool. Every swap that moves the tick, it takes note — once per block, straight from the pool's own price. No oracle, no feed.

03

Moves become a score

Squared and added on every swap. That running sum is realized variance — a plain measurement of how much the pool actually moved.

04

Two tokens, one deposit

Once an epoch, 1 USDC mints one STORM and one CALM — STORM pays out if things got wild, CALM if they stayed calm. Together they’re never worth more than that 1 USDC.

05

Price becomes volatility

STORM trades against USDC in a second, brand-new v4 pool. Whatever it trades for is the market's live guess at how volatile things will get.

06

The score decides

STORM redeems its share, CALM redeems the rest — and the two never add up to more than the USDC that funded them. Any contract reads the result with impliedVol(), one view call.

A premium, paid in inflation.

Every liquidity mining program buys the same thing: LPs bearing impermanent loss. Volatus lets a protocol buy it as insurance instead — at a market price, in stablecoins, for a term that ends.

01 / 03

Underwrite your own pool

Post USDC, mint pairs, hand STORM to LPs in place of emissions and keep CALM. If the pool stays quiet the collateral comes back. Nobody else has to show up for this to work.

The position you never chose

Every LP is short volatility, and nobody told them.

Liquidity earns fees while the price sits still, and loses to impermanent loss when it moves — a short straddle. Past the break-even band, the position gives back more than the fees it made, in either direction. Protocols already pay LPs to hold that risk; they pay in emissions, forever, at a price nobody set.

fees $412break even-36%+45%
price+0%net vs holding$412

Measure · mint · settle

How it works.

01 — MEASURE

Measure

The hook accumulates Σ(Δtick)² × (ln 1.0001)² on every swap, at most once per block. A Uniswap tick is already a log price, so the pool is already computing what a variance swap needs. No oracle, no feed, no committee.

Depth you buy, not depth you rent.

Liquidity mining is an insurance premium paid in inflation. Volatus turns it into a market.

Frequently asked questions.

Emissions are permanent dilution, paid whether or not volatility shows up, sized by governance guesswork — and the liquidity leaves the moment they slow. A premium is pre-funded USDC, capped, over a term that ends, and it comes back if the pool stays quiet. Nothing leaves when it ends, because the risk was transferred rather than rented.

Not to start. A protocol underwriting its own pool is both sides: it mints the pair, distributes STORM to its LPs and keeps CALM. The vol pool is where it can lay that risk off later, which is why the market layer matters even though the basic flow does not need it.

The pool's own tick path, accumulated in the hook on every swap. Nothing offchain, nothing signed. A Uniswap tick is already a log price, so squaring the tick delta is squaring a log return — which is exactly the quantity a variance swap settles on.

On testnets only. Unichain Sepolia and Arc Testnet, with mock tokens and test USDC — the contracts are live and the transactions are real, but do not use real funds. Every surface on this site says so because it is true.

Thin. Liquidity in the vol pool is seeded by the team and the demo counterparty is a script, so the mechanism of price discovery is demonstrated and its depth is not. That cannot be otherwise at this stage, and the README says so too.

The payoff floors at 0 and caps at 1. The cap is what keeps a STORM and a CALM together worth at most one dollar, and what makes the vault solvent by construction rather than by assumption.

There isn't one for realised variance on a specific pool. And a number you have to trust someone for is a different product from a number the pool computes itself.

Still reading

Every mechanism above has a full writeup — the accumulator, the payoff maths, the manipulation-cost measurement, every deployed address.

Read the docs

The maths is in the repo.

Including the parts that don’t work yet.