Vol swap vs variance swap — the convexity gap
Same strike and realized volatility, priced both ways. The variance swap's extra payment on top of the linear vol swap is pure convexity — it grows with the square of how far realized landed from strike.
| Contract | Payoff | vs strike vol |
|---|
A cleaner way to trade the volatility view
Buying a straddle to bet on volatility also buys direction, theta and the strike-selection problem — and requires delta-hedging to actually isolate the vol view. A volatility swap strips that away: no strike on the coin, no delta to manage, just the gap between what happened and what the market priced in. Sellers of vol swaps are effectively short the market's fear premium, the same trade options sellers chase with an iron condor or a short strangle, but without gamma risk near a strike. Buyers want convex exposure to a surprise the way a Squeeth power perpetual holder is convex to price itself. Check whether the strike volatility you're being quoted looks rich or cheap first with the IV rank calculator, and pull realized volatility straight from recent closes with the historical volatility calculator.
The math
A volatility swap pays the long side Vega Notional × (Realized Vol − Strike Vol), where both vols are annualized percentages and the short side takes the opposite sign. A variance swap is quoted the same way but settles on the square: converting the vega notional into a variance notional of Vega Notional ÷ (2 × Strike Vol), the payoff is Variance Notional × (Realized Vol² − Strike Vol²). Expanding that shows the relationship directly: Variance payoff = Vol-swap payoff + Variance Notional × (Realized Vol − Strike Vol)² — the variance swap always matches the linear vol swap and adds a strictly non-negative convexity term on top, which is why market makers who are long variance swaps quote a slightly higher strike than a pure vol swap to compensate the counterparty.
When realized volatility is computed from a price series, the calculator converts daily closes to log returns r_i = ln(P_i / P_i₋₁), takes the sample standard deviation of those returns, and annualizes with σ_daily × √365 — 365 because crypto trades every day of the year, the same convention used across this site's other realized-volatility tools.