Skip to main content

New Funding Rate Mechanism (starting October 2025)

Updated this week

TLDR Summary

Funding is a periodic transfer between longs and shorts that keeps perp prices close to the spot index. GRVT now supports 1h / 4h / 8h funding schedules (per market).

Our methodology is closely aligned with that of other large exchanges, e.g. with Binance’s methodology:

  • we compute a Premium Index from fair price vs index

  • we apply a small clamp for stability,

  • we then cap/floor the result using instrument‑level limits designed to stay consistent with those on Binance.


    Your main trading screen has a panel which shows the next expected funding and history.


1) What is the funding rate?

Perpetual futures don’t expire. To anchor perp prices to spot, traders pay or receive a funding payment each funding interval:

· Funding Rate > 0Longs pay Shorts.

· Funding Rate < 0Shorts pay Longs.


Intervals at GRVT: Markets are configured for 1 hour, 4 hours, or 8 hours. The interval shown on each market card/page is the schedule for settlement.

2) What changed from the previous funding methodology (and why)

  • Multiple intervals (1h / 4h / 8h): Lets us match the cadence traders expect on major venues and react faster in volatile markets.

  • Closer Binance alignment: We harmonize how we compute the premium/discount and how we cap/floor payments, so as to minimize the chance of a significant deviation between the funding rate on GRVT and on Binance, for a given instrument.

  • Stability via clamp: A small adjustment nudges the average premium toward +1 bp (0.01%) and limits sudden swings within ±5 bp before applying the instrument’s cap/floor. This improves UX without materially changing economics.

3) How GRVT calculates funding

Overview
Funding Payment (at settlement) = |Position Size| × Mark Price × Funding Rate

where Funding Rate is derived from the instrument’s Premium Index over the interval, with caps/floors.

Step‑by‑step every interval:

1. Index Price. We source a spot benchmark. When the Binance index is fresh we prioritize it; if it’s slightly stale we smoothly interpolate, if unavailable we fall back to our oracle composite.

2. Fair Price. Every 5 seconds, compute a fair price as the median of Best Bid, Best Ask, and Last Trade. If any component is missing, we blend in a running EMA (exponential moving average) to stabilize: EMA_new = 0.80 × EMA_prev + 0.20 × FairPrice.

New EMA(fair_price) = alpha * EMA(fair_price) + (1 - alpha) * fair_price

with alpha = 0.80 as the default

New EMA(fair_price) = New EMA(fair_price) = 0.80 * EMA(fair_price) + 0.20 * fair_price

3. Premium Index.

Premium = (Fair Price − Index Price) / Index Price.

4. Average Premium over the interval. - For 1h / 4h / 8h intervals: time‑to‑funding‑weighted average (more weight near the end of the interval). - For 1h intervals: equally weighted average.

4-a) time‑to‑funding‑weighted average (for 2/4/8 hour intervals): this approach offers higher weights to premium indices captured closer to the end of the funding interval.

Average Premium Index (P) = (1*Premium_Index_1 + 2*Premium_Index_2 + 3*Premium_Index_3 +···+ n*Premium_Index_n) / (1+2+3+···+n)

4-b) Case 2: Equally weighted average for 1 hour funding intervals

This approach offers equal weights to all premium indices captured within the funding interval.

Average Premium Index (P) = (Premium_Index_1 + Premium_Index_2 + Premium_Index_3 +···+ Premium_Index_n) / n

5. Clamp (stabilizer). Compute the Clamped Premium Index:

// clamp(x, hi, lo) = max(lo, min(hi, x))

ClampedPremium = clamped_premium_index = [avg_premium_index + clamp(0.01% - avg_premium_index, 0.05%, -0.05%)] / (8/funding_interval_hours)


Intuition: we pull the average toward +1 bp and bound that pull within ±5 bp, then scale to the current interval (so a 1h interval is 1/8 of the 8h frame).

6. Funding Rate (indicative). Every 5s we publish an indicative rate:

Indicative_Funding = MIN(MAX(clamped_premium_index, funding_rate_floor), funding_rate_cap)

7. Funding Rate (final). At the end of the interval we finalize using the same formula and apply the payment.

Final_Funding_Rate = MIN(MAX(clamped_premium_index, funding_rate_floor), funding_rate_cap)

This is identical to the indicative funding rate, except it’s the definitive funding rate that is charged to position holders at the end of each funding interval.

8. Funding Index & Payment (per position). We track a running Funding Index per instrument and settle on each position size change (fills/transfers) using the classic delta‑of‑index method. Your statement shows realized payments.

  • Funding Index(Instrument) starts with 0.

funding_Index += funding_rate * mark_price

Calculated on every client’s position size change (i.e. any fill in instrument, transfer, deposit, withdrawal)

Given Position_Size is a signed size of position in base currency (i.e. in BTC, ETH etc)

  • If position is opened (previous position = 0) - then store in position

  • Funding_Index_Start = Funding Index(instrument)
    Else: // i.e. position was Last_Postion_Size and now changed to Position_Size:

  • Funding Payment USDT = -1 * Last_Position_Size * (Current Funding Index - Funding_Index_Start)

  • Reset position’s Funding_Index_Start to Current Funding Index if Position_Size != 0 else to 0.

4) Intervals, caps, and when we switch to 1h

  • Default intervals. Each market is configured to match Binance’s listed interval (commonly 8h or 4h; some markets operate on 1h during high‑premium periods).

  • Caps/Floors (per instrument). We mirror Binance’s per‑interval cap/floor. Example: a 3% cap on a 4h interval means the maximum 4h payment is 3% of notional (scaled accordingly if the instrument is on 1h). Exact numbers vary by market and are displayed in‑app.

  • Automatic switch logic. If the average hourly premium across the last 8h (or 4h) would exceed Binance’s 8h (or 4h) cap, the instrument switches to a 1h scaling regime to better track Binance’s 1h mode. Once on 1h, it remains there unless manually reset.

5) Where to see funding in GRVT

  • Market page: live Funding Rate and Next settlement countdown.

  • Positions panel: Estimated next funding and the last paid/received amount.

  • History: itemized funding payments per instrument and time.

6) Examples

  • 8h example. Long 1 BTC, Mark $60,000, Funding Rate = +0.010% per 8h → you pay $6 at the 8h timestamp.

  • 1h example (scaled). Same inputs but on a 1h interval, the rate is 0.010% ÷ 8 = 0.00125% per hour → a long pays $0.75 each hour.

7) FAQs

Q: Do I pay if I close before settlement?
No. Funding is applied at the settlement timestamp. If you are flat at that instant, you don’t pay or receive funding for that interval.

Q: Is funding prorated inside the interval?
We compute and publish an indicative rate continuously, but settlement occurs at the interval boundary. Realization is at that instant (with accounting via the Funding Index on fills/transfers).


Q: Where does funding go?
Funding is peer‑to‑peer between longs and shorts. It is not an exchange fee.


Q: Why can funding flip sign?
It reflects the perp’s premium/discount to the index. If perp trades rich to spot, longs pay; if cheap, shorts pay.

8) Operational notes & edge cases

  • Averages reset at each interval boundary; we do not publish a spurious 0% tick at reset; the EMA of fair price continues across intervals.

  • First minute of a new period: the “expected funding” display backfills using the previous realized rate until enough fresh samples accrue.

  • Data resilience: If a preferred external index becomes stale, we gracefully fall back (with interpolation for short staleness windows) to maintain continuity.

9) Glossary

  • Index Price: External spot benchmark used for anchoring perps.

  • Fair Price (Mark): A robust estimate of the tradable price; used for PnL/liquidations.

  • Premium Index: Relative premium/discount: (Fair − Index) / Index.

  • Funding Interval: The settlement cadence: 1h / 4h / 8h.

  • Cap/Floor: Per‑interval bounds on the funding rate.


Appendix: Formula reference (for advanced users)

Average Premium (2/4/8h): time‑to‑funding weighted mean of 5‑second samples.
Average Premium (1h): equally weighted mean of 5‑second samples.

Clamp:

ClampedPremium = [ Avg_Premium + clamp(0.01% − Avg_Premium, +0.05%, −0.05%) ] ÷ (8 / FundingIntervalHours)
FundingRate = min( max( ClampedPremium, Floor ), Cap )

Funding Index update:

FundingIndex_t += FundingRate_t × MarkPrice_t


Position funding on size change (fill/transfer):

FundingPayment(USDT) = − Last_Position_Size × ( Funding_Index_now − Funding_Index_start )

Exact cap/floor values and intervals are instrument‑specific and displayed on the API and the UI.

Did this answer your question?