Skip to main content
Funding is the mechanism that keeps a perp’s price tethered to its underlying. Periodically, the side of the market trading at a premium pays the side trading at a discount, in proportion to the gap between the perp price and the oracle price. When the perp trades above the oracle, longs pay shorts; when it trades below, shorts pay longs. There is no fee taken by the exchange on funding — it is a transfer between traders.
This page is conceptual. Live and historical funding values are available from GET /v1/fundingRates and the funding WebSocket channel.

The basic model

The funding rate is driven by the basis — the gap between the perp’s price and the oracle price. A persistent premium produces positive funding (longs pay), which incentivizes traders to close longs / open shorts and pulls the price back toward the oracle; a persistent discount does the reverse. This is the same convergence mechanism used across perp markets.
Base rate. With no premium, funding sits at a base rate: 0.01% per 8h for crypto perps, and SOFR + 0.5% per year for real-world-asset perps. The premium (below) moves the live rate above or below that base.

How the rate is calculated

Funding is charged once an hour, and each hour’s rate is built from two pieces:
  • a base rate — the baseline cost of holding the position, charged even when the perp trades right at fair value; and
  • a premium — an adjustment that grows as the perp drifts above or below the oracle, nudging the price back.
The premium is sampled about once a minute, and the rate for the hour is the median of that hour’s samples, so one brief spike can’t swing it. Throughout, clamp(x, ±y) just means “keep x within the range −y to +y.”

Step 1 — adjust the oracle to “today” (real-world assets only)

Stocks settle a day or more after they trade (T+1), so a live stock price isn’t directly comparable to a perp you hold continuously. For RWA markets the oracle is nudged to a same-day value before the premium is measured (crypto settles same-day, so this step does nothing):
days_to_settle is the calendar days until the stock settles (usually 1), and sofr_rate_hourly is the RWA base rate expressed per hour:
SOFR (Secured Overnight Financing Rate) is the standard benchmark for the cost of borrowing US dollars overnight, published daily by the New York Federal Reserve — the same reference traditional finance uses for short-term funding. sofr_rate_hourly is simply that annual rate plus 0.5%, divided down to a per-hour figure. The effect on the oracle is tiny. Example. AAPL oracle = $200, base rate ≈ 5%/yr (so sofr_rate_hourly ≈ 0.00000579), T+1 settlement → 200 / (1 + 0.00000579 × 24 × 1)$199.97 — under 3 cents.

Step 2 — measure the premium

The premium is how far the perp trades from the oracle price, as a fraction of the oracle. It uses impact prices — the average price to buy or sell a fixed test size by walking the order book — instead of the best bid/ask, so one tiny quote can’t distort it:
  • perp above the oracle (impact bid > oracle) → positive premium → longs pay shorts
  • perp below the oracle (impact ask < oracle) → negative premium → shorts pay longs
  • oracle sitting between the impact bid and ask → premium is zero
Example. BTC oracle = $100,000, and buying the test size would cost $100,050 on average → premium = (100,050 − 100,000) / 100,000 = 0.05%.

Step 3 — turn the premium into the hourly rate

By convention the full premium is paid off over 8 hours, so each hour charges one-eighth of it on top of the base rate, and the total is capped at ±4% per hour. Crypto — base rate 0.01% per 8h (≈ 10.95% per year). A small dead-band holds funding exactly at the base rate until the premium moves more than 0.05% away from the base level, so trivial premiums don’t add funding noise:
Real-world assets — base rate SOFR + 0.5% per year (sofr_rate_hourly, from Step 1), with no dead-band, so the premium always counts and the rate lands exactly on the base rate when the perp trades at the same-day oracle:
Example (RWA). With sofr_rate_hourly ≈ 0.00000579 and a perp trading 0.08% above the same-day oracle (premium = 0.0008): funding_rate_hourly ≈ 0.00000579 + 0.0008/80.0106% for the hour.

Step 4 — the payment

Funding values the position at the oracle price (unlike margin, PnL, and liquidations, which use the mark price). A positive rate means longs pay shorts; a negative rate, the reverse. Example. At 0.0106%/hr on a $10,000 position, a long pays about $1.06 that hour. Outside extended trading hours (04:00–20:00 ET) this whole calculation is suspended and the rate is locked — see Off-hours funding below.

Real-world assets

For perps on equities, commodity ETFs, and index ETFs, funding does more than close the basis: it also passes through the events that drive a real holder’s return — dividends, splits, and futures rolls — so the perp tracks the total return of the underlying. Those mechanics are covered on Real-world asset perps.

Off-hours funding

The lock applies only when the underlying is fully dark — outside extended trading hours, i.e. overnight from 20:00 to 04:00 ET (and weekends/holidays). Then there’s no reliable oracle to measure a premium against, so the live calculation above is suspended and funding is locked to the base rate (SOFR + 0.5%), fixed at the close. During premarket (04:00–09:30 ET) and after-hours (16:00–20:00 ET) the underlying still trades, so funding runs live, exactly as during the regular session. This removes funding uncertainty for traders carrying a position overnight or over a weekend, beyond the price of the underlying itself. Crypto perps have no off-hours regime — funding stays live and basis-driven around the clock. Off-hours also raises margin and constrains prices to widening bands; those guardrails are covered under Real-world asset perps (and Margin).
Regular-trading-hours calendars differ by market, and the exact premium sampling and clamp parameters are per-market config. Read live funding from the API rather than recomputing it.