Skip to content
PerpFinder

Research

PerpFinder research

Self-collected crypto derivatives datasets, independently normalized and methodology-documented. History begins at our first observation — never synthetic backfill; missing data is shown as missing, never as zero.

4 datasets4 liveSource: Methodology

Self-collected datasets

Status reflects the latest stored observation
Options & VolatilityLIVE · series collecting

40.8% BTC 30D IV (Deribit DVOL, shown verbatim)

Deribit market data · normalized & validated15-minute snapshotssince 2026-07-16

Funding IntelligenceLIVE · series preliminary

+0.0009% OI-weighted 1h rate · 27 venues

Venue funding APIs · current / predicted / realized never mixed15-minute sweepssince 2026-07-16

Basis vs index · BTC

UTC daily median-4.06 bps

Binance mark price against its own index price, in basis points. Positive means the perp traded above the index that day. Window starts 2026-08-11 · sweeps stored since 2026-07-16 · preliminary series.

Median of 2,752 stored sweeps over the 30 days shown. 24 of 27 covered venues publish a mark price but no index price, so their basis is not computable and is left out — never shown as zero.

Exchange Volume QualityLIVE · established series

21/21 venues with complete order-book data this sweep

Venue tickers (reported) + PerpFinder order-book engine (observable)6-hour sweepssince 2026-07-16

Total Cost EngineLIVE · computed per request

45+ perp venues · fee + spread + slippage from real depth

Live order books, walked at standardized sizes60-second refreshsince live computation (30-day cost series in progress)

Total cost history · BTC $100k

6-hour sweeps

Fee + half-spread + price impact for one standardized $100,000 taker buy, at the base fee tier.

  • Median across venues
Loading the stored sweeps…

A venue that could not fill the order publishes no total cost, so it is left out of that sweep's median and its own line breaks. Gas and referral discounts are excluded.

Published reports

2 published

In ISO week 35 of 2026, the stored daily snapshots hold $1,476.96 billion of centralized perpetual volume. The perp-DEX protocols hold $158.87 billion over the same days, a share of 9.71 percent. The open-interest-weighted BTC funding rate held a median of 0.000796 percent per hour, or 6.98 percent at a simple annual rate. A $1,000,000 BTC perpetual order cost a median of 6.464 basis points across 926 order-book observations.

PerpFinder Researchpublished 2026-09-052026-08-242026-08-3055 verified factsCSV included

In the 2026-09-04 18:00 UTC sweep, 20 centralized perpetual venues reported $258.6 billion of 24-hour volume, and the same venues absorbed $15.0 million in total at the top of the standardized order ladder. That ladder stops at $1,000,000 per venue, and every venue reached the top rung, so the reported-to-support ratio ranks venues by reported turnover rather than by depth. Order size separates the books: 16 of 20 venues filled a $10,000,000 BTC order, and 7 of 20 filled $50,000,000 in the live walk on 2026-09-04.

PerpFinder Researchpublished 2026-09-042026-08-062026-09-0421 verified factsCSV included

Market tools

Live screeners over the same feeds — useful daily, not proprietary datasets

Related data surfaces

The same order-book and funding collection feeds two public surfaces outside this hub. The RWA perpetual markets table applies it to stocks, forex and commodities traded on-chain, next to the TVL and assets ranking. The free embeddable widgets expose the funding, cost and liquidation views for any site, with no API key.

Methodology and trust

Methodology changelog

  • cost v6 (2026-09-04) — GMX v2 opening price impact is measured per order size. Until v5 the GMX row published only the oracle min/max half-spread, which is the same number at 100,000 and 10,000,000 USD, because the public GMX REST surface publishes no position-impact factors. The engine now calls the GMX Reader contract (0x470fbC46bcC0f16532691Df360A07d8Bf5ee0789) getExecutionPrice view against the on-chain DataStore (0xFD70de6b91282D8017aA4E741e9Ae325CAb992d8) on Arbitrum, over a public RPC with no key. That view runs the protocol own pricing code, so the published number carries the same positionImpactFactor, positionImpactExponentFactor and long/short open-interest imbalance the protocol would charge for this exact size and side, and it cannot drift from the protocol when GMX changes a parameter. priceImpactBps is now the signed deviation of the returned execution price from the oracle mid, which contains both the oracle entry side and the position impact; favorable impact is still floored at zero in slippage and total cost. slippageModel is onchain-position-impact-v2, slippageConfidence rises from low to medium, and GMX re-enters the headline ranking at every size. Measured on 2026-09-04 for a BTC buy in the BTC/USD [WBTC.b-USDC] pool: 0.00 bps at every size before, 2.64 bps at 100,000 USD, 3.17 bps at 1,000,000 USD and 7.60 bps at 10,000,000 USD after. Single-token GMX pools, where the long and short collateral token are the same, are excluded from the GMX row: they take no stablecoin collateral, so a USD-margined order there also pays a swap this ladder does not price, and GMX configures them with a near-zero impact factor. A failed on-chain read falls back to the labelled v5 oracle half-spread at low confidence and does not take a headline rank over 1,000,000 USD; it is never replaced by an invented number. Funding, borrowing, closing impact and network gas fees stay excluded. Historical v1, v2, v3, v4 and v5 points remain unchanged and must never be merged into a v6 series.
  • cost v5 (2026-09-04) — Depth honesty release. (1) Hyperliquid is read at two book aggregations (nSigFigs 5 for the touch and half-spread, 4 — and 3 when 4 still cannot cover the size — for the deep walk) and merged: fine levels apply inside their own price range, coarser aggregated levels apply only beyond it and fill AT the aggregated level price; the coarse bucket that straddles the seam is dropped, which under-counts depth. Phemex (md/v2/fullbook), KuCoin (level2/snapshot), XT.COM (level=1000) and BingX (limit=1000) are now read at the API maximum, each proven by a live probe returning more levels. Every row carries depthFetchedUsd, and a row that cannot fill on a capped endpoint reports fillStatus beyond-fetched-depth instead of plain insufficient depth. (2) A depth-plausibility gate labels each row depthConfidence high or low: low when in-band depth on the walked side exceeds max(3x the venue own open interest for that market, 1.5x the deepest tier-1 book in the sweep), or when one level holds over 25 percent of in-band depth and exceeds the largest tier-1 level by 5x. Tier-1 is Binance, Bybit, OKX and Hyperliquid. Public order is sufficient-and-high, then sufficient-and-low, then insufficient. No venue is removed. (3) A row that cannot fill the order now publishes totalBps, slippageBps and vwap as null; the partial-fill numbers move to results[].partial. (4) GMX keeps its measured oracle entry cost but is labelled slippageConfidence low, because the GMX REST surface publishes no v2 position-impact factors; size-independent oracle rows leave the headline ranking over 1,000,000 USD and are labelled rankingEligible false. (5) The anchor price for oracle quotes is the median mid of the valid tier-1 books, with the median of all valid books as the fallback, and referenceMidSource states which was used. (6) The engine fee table is reconciled to the canonical venue registries (Aster 4, Crypto.com 4, Ondo 1/2.5, RISEx maker 1, Reya 3/3, SunX 4 bps) and a CI guard now fails on any drift between them. Historical v1, v2, v3 and v4 points remain unchanged and must never be merged into a v5 series.
  • volume-quality v2 (2026-09-04) — Correction: slippageBpsAt100k is null when the 100,000 USD ladder row could not fill. v1 took the cost engine slippage figure with no sufficiency check, so a partial-fill VWAP was published beside maxSufficientFillUsd, which did check it. The number was not comparable with a complete fill. No other input, formula or threshold changed. Historical v1 points remain unchanged and must never be merged into a v2 series.
  • volume-quality v2 (2026-09-05) — Coverage and labelling rule (no methodology version bump: no input, formula, threshold or stored value changes, so v2 observations stay comparable). A venue whose reported turnover PerpFinder cannot verify now enters an unverified tier (lib/volume-verification.ts) and is held out of every headline aggregate and every ranking until an editorial review removes the entry. The reported figure stays visible, muted and labelled, next to the dated observations behind it. The existing spike rule (above 3x a venue own 7-day median) is temporary by construction: once a large print becomes the venue own median the hold-out clears, so it cannot carry a venue whose figure has nothing to check it against. First entry, WEEX from 2026-09-05: no open-interest feed to verify reported turnover against; reported 24h volume ran 8-12x its own 7-day median on 2026-09-04/05; order-book depth within 270 bps measured at about 95 million USD against about 90 billion USD reported. These are measurements, not accusations, and PerpFinder makes no claim about why the figures differ. Historical v1 and v2 points remain unchanged.
  • cost v4 (2026-08-03) — Favorable signed oracle impact is now separate from adverse execution cost. Slippage and total cost floor favorable impact at zero. GMTrade crypto position fees now use the documented 4 or 6 bps rate based on market balance. Historical v1, v2 and v3 points remain unchanged.
  • cost v3 (2026-08-01) — Canonical all-in execution cost: fee + one-sided half-spread + VWAP impact beyond the effective touch. Adds explicit buy/sell semantics and BTC, ETH, SOL, XRP, BNB, DOGE and HYPE coverage. Historical v1/v2 points remain unchanged.
  • options v1 (2026-07-16) — Initial: ATM=nearest-forward strike mean(call,put) mark IV; strike-curve skew ≥2 DTE; null-safe P/C; linear interval math.
  • volume-quality v1 (2026-07-16) — Initial: venue-native reported volume vs order-book ladder ($10k–$1m, both flagship markets); winsorized p5/p95 percentiles; confidence = availability formula 30/20/30/20.
  • funding v1 (2026-07-16) — Initial: strict realized/current/predicted separation; linear per-period normalization with raw+interval preserved; prediction error vs last pre-settlement prediction with lead time.
  • cost v2 (2026-07-25) — Effective-touch spread: bid/ask/mid and the slippage base are the first level with >=$5k cumulative notional, not the raw top of book. Raw tops are routinely dust ($12-$2.7k measured live), which understated 43% of venue-rows by >0.5 bps and let thin books advertise near-zero spreads. v1 rows remain stored under their own version.
  • funding v1 (2026-07-17) — Coverage expansion (methodology unchanged): Gate.io added to the direct subset with current + predicted (funding_rate_indicative) + realized — third venue with both realized and predicted, making the prediction-accuracy gate (3 venues × ≥30 settlements) reachable ~2026-07-27.
  • cost v1 (2026-07-17) — Initial: engine taker ladder persisted 4×/day — perp BTC/ETH/SOL/XRP × $10k/$100k/$1m + spot × $10k/$100k; per-venue fee/spread/VWAP-slippage/total bps, sufficiency and oracle flags verbatim from the audited engine.
  • cost v1 (2026-07-18) — Coverage expansion (methodology unchanged): BNB/DOGE/HYPE added to both perp and spot ladders after per-venue probe verification (BNB 15 spot venues, DOGE 17, HYPE 12 + Hyperliquid native @107); venues without the pair are structurally unsupported, never "unavailable".

Method changes never rewrite history: a change gets a new version and a visible boundary marker.