Live arbitrage-free volatility surface — Deribit BTC & ETH

Generated 2026-11-03 03:20 UTC by voltorch 0.2.1, refit every 30 minutes from the public book. No key, no vendor data. Backbone: eSSVI (Hendriks–Martini 2019), arbitrage-free by construction. Refinement: per-expiry SVI, arbitrage-checked on a dense grid, falling back to the backbone where a check fails. Bid/ask implied vols are ours (bisection, Black-76 on the forward: coin price × F = USD price, verified to 1e-4 against the venue's marks). Every claim on this page is recomputable from pip install voltorch[page].

BTC — 848 quotes, 830 two-sided, 406 OTM used, 11 expiries

surfaceRMSE (vol pts)inside bid–askarbitrage-free
eSSVI backbone2.3563%by construction (Hendriks–Martini conditions hold: True)
refined (per-slice SVI)0.7787%checked: Durrleman g ≥ 0 and calendar, 11/11 slices; fallback {}
venue marks (Deribit mark_iv)——butterfly 0 · vertical 0 · calendar 0 beyond the spread

Executable arbitrage in the book right now: 0 (buy at ask / sell at bid; butterfly 0, vertical 0, calendar 0; put–call parity on the forward, r = 0)

Our surface: Durrleman min g = 0.256, calendar min Δw = 2.9e-04. Autograd vs closed-form Black-76 max |err|: delta 2.8e-15, gamma 1.0e-18, vega 2.4e-11, theta 1.1e-09. Fit 1.475s, refine 13.324s, total 14.868s on cpu.

Per expiry

expirynbackbone rmseinsiderefined rmseinsidestatus
1.2d222.3982%1.1595%ok
2.2d242.1154%1.1675%ok
3.2d252.5148%1.2476%ok
10.2d200.9875%0.6295%ok
17.2d200.3870%0.2395%ok
24.2d481.7456%0.4994%ok
52.2d525.5633%1.1787%ok
87.2d440.2486%0.3086%ok
143.2d520.8737%0.8271%ok
234.2d540.7972%0.4087%ok
325.2d450.3996%0.22100%ok
2026-11-03T03:20:38.612645 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:38.693027 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:38.916534 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:38.995665 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.083260 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.170246 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.248703 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.357739 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.470127 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.552770 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.639835 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

ETH — 684 quotes, 673 two-sided, 331 OTM used, 11 expiries

surfaceRMSE (vol pts)inside bid–askarbitrage-free
eSSVI backbone2.1771%by construction (Hendriks–Martini conditions hold: True)
refined (per-slice SVI)0.5595%checked: Durrleman g ≥ 0 and calendar, 11/11 slices; fallback {}
venue marks (Deribit mark_iv)——butterfly 0 · vertical 0 · calendar 0 beyond the spread

Executable arbitrage in the book right now: 0 (buy at ask / sell at bid; butterfly 0, vertical 0, calendar 0; put–call parity on the forward, r = 0)

Our surface: Durrleman min g = 0.257, calendar min Δw = 5.2e-04. Autograd vs closed-form Black-76 max |err|: delta 2.5e-15, gamma 2.9e-17, vega 6.3e-13, theta 2.5e-11. Fit 0.256s, refine 13.597s, total 13.915s on cpu.

Per expiry

expirynbackbone rmseinsiderefined rmseinsidestatus
1.2d232.6896%0.86100%ok
2.2d240.63100%0.53100%ok
3.2d233.6365%0.40100%ok
10.2d181.4772%0.33100%ok
17.2d160.7575%0.3894%ok
24.2d353.5837%0.39100%ok
52.2d393.4651%0.93100%ok
87.2d280.4382%0.3986%ok
143.2d421.1860%0.6483%ok
234.2d430.9567%0.3298%ok
325.2d400.4598%0.2595%ok
2026-11-03T03:20:39.723731 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.803836 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.879100 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:39.953587 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.033175 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.110970 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.184411 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.262018 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.339311 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.414047 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/ 2026-11-03T03:20:40.494316 image/svg+xml Matplotlib v3.11.2, https://matplotlib.org/

History (last 7 days, newest first)

as ofccyn fitbackbone rmserefined rmseinsideexecutable arbmax edge USD
2026-11-03T03:20ZETH3312.170.5596%00
2026-11-03T03:20ZBTC4062.350.7787%00
2026-11-02T22:00ZETH3352.060.5596%00
2026-11-02T22:00ZBTC4092.170.7988%00
2026-11-02T12:56ZETH3352.050.4998%00
2026-11-02T12:56ZBTC4122.420.9085%00
2026-11-02T04:42ZETH3462.000.5496%00
2026-11-02T04:42ZBTC4232.230.8885%00
2026-11-02T00:00ZETH3511.990.4997%00
2026-11-02T00:00ZBTC4262.090.8491%00
2026-11-01T20:39ZETH3542.300.6896%00
2026-11-01T20:39ZBTC4302.130.8384%00
2026-11-01T16:13ZETH3512.440.6195%00
2026-11-01T16:13ZBTC4262.080.7983%00
2026-11-01T09:29ZETH3522.350.6896%00
2026-11-01T09:29ZBTC4252.120.8084%00
2026-11-01T02:27ZETH3472.340.5896%00
2026-11-01T02:27ZBTC4172.120.7185%00
2026-10-31T23:30ZETH3502.490.7096%00
2026-10-31T23:30ZBTC4192.060.7288%00
2026-10-31T20:08ZETH3502.410.5498%00
2026-10-31T20:08ZBTC4212.130.6985%00
2026-10-31T16:25ZETH3502.420.4997%00
2026-10-31T16:25ZBTC4202.150.7485%00
2026-10-31T11:45ZETH3512.630.6296%00
2026-10-31T11:45ZBTC4242.210.6887%00
2026-10-31T06:00ZETH3492.670.6794%00
2026-10-31T06:00ZBTC4172.000.6986%00
2026-10-31T00:13ZETH3522.530.5697%00
2026-10-31T00:13ZBTC4202.170.6292%00
2026-10-30T20:56ZETH3552.730.7694%00
2026-10-30T20:56ZBTC4202.080.6584%00
2026-10-30T16:04ZETH3572.690.7795%00
2026-10-30T16:04ZBTC4312.470.6189%00
2026-10-30T09:11ZETH3463.121.3990%00
2026-10-30T09:11ZBTC4243.071.0584%00
2026-10-30T02:44ZETH3593.201.1293%00
2026-10-30T02:44ZBTC4362.650.7087%00
2026-10-29T23:25ZETH3553.270.7994%00
2026-10-29T23:25ZBTC4202.460.5991%00
2026-10-29T19:03ZETH3452.950.6196%00
2026-10-29T19:03ZBTC4152.890.6786%00
2026-10-29T13:24ZETH3473.000.7890%00
2026-10-29T13:24ZBTC4123.000.6983%00
2026-10-29T06:14ZETH3033.140.6596%00
2026-10-29T06:14ZBTC3483.160.7182%00
2026-10-29T00:29ZETH3052.840.7892%00
2026-10-29T00:29ZBTC3553.000.6480%00
2026-10-28T20:39ZETH3062.950.8590%00
2026-10-28T20:39ZBTC3612.830.6082%00
2026-10-28T15:34ZETH3062.880.6494%00
2026-10-28T15:34ZBTC3743.350.8280%00
2026-10-28T08:48ZETH3063.211.5394%00
2026-10-28T08:48ZBTC3693.450.7885%00
2026-10-28T02:27ZETH3102.630.5498%00
2026-10-28T02:27ZBTC3743.970.8381%00
2026-10-27T23:18ZETH3132.850.5296%00
2026-10-27T23:18ZBTC3773.630.7482%00
2026-10-27T19:44ZETH3132.730.6095%00
2026-10-27T19:44ZBTC3733.760.8783%00
2026-10-27T14:43ZETH3153.190.6794%00
2026-10-27T14:43ZBTC3753.680.7381%00
2026-10-27T08:05ZETH2883.230.6292%00
2026-10-27T08:05ZBTC3493.400.6787%00

Raw history: history.jsonl (append-only). A day with zero executable arbitrage is the expected state of a market-made venue; the interesting rows are the non-zero ones, and they are listed with their legs above when they occur.