Funding Rates

Since Perpetuals have no expiry date, final settlement, or delivery, funding rate payments are the incentive mechanism to bring the vAMMโ€™s mark price closer to the oracle price.

For instance, a user with long position in a market whose mark price < oracle price will receive a payoff proportional to their position size.



Funding Rate % Calc

1/24 * (market_twap - oracle_twap)/oracle_twap

Twap Calc

EMA with 1 hour rolling window


End of Hour (9:00 AM, 10:00 AM, ...)


1/24 * (174.643 - 174.450)/(174.450) = 0.00460% (40.27% APR)

example data
example data

Unrealised -> Realised Funding

Funding rates are updated lazily every hour. Any time a user opens or closes a position, the exchange tries to update the funding rate. If enough time has passed, the funding rate is updated. This update reflects the premium or discount between the vAMMโ€™s mark price and the oracleโ€™s price on average over the previous hour window.

To enable funding rate payments lazily, Drift Protocol stores a cumulative funding rate since initialization, as below:

Cumulative funding rate calculation
Cumulative funding rate calculation

This cumulative funding rate is checked against user positions in case of the off-chain funding rate bot does not trigger on the hourly. This will show up as "Unrealised Funding P&L", until your next user action (trade, deposit/withdraw, etc).

Unrealised Funding P&L
Unrealised Funding P&L


Capped Symmetric Funding

Drift aims to provide a symmetric funding rate. When there is a long-short imbalance in our DAMM, our protocol Rebate Pool will step in to pay out (or receive) the delta between longs and shorts. If the pool is empty or does not have enough symmetric funding, the receipts for funding will be capped to the available amount.

See Rebates for funding pool sizes where the funding paid from the Rebate Pool will be capped. This ensures that the risk is spread in the system and the Insurance Fund isn't drained by funding rates.

The available amount in over the hour the fee pool will increase as trades occur, so the cap should get closer to balanced. Example: for BTC-PERP you can check the recent history to get a better idea of what shorts will receive: (you can access this link by clicking "24h Avg Funding" at the top of the page)


APR calculation

Funding rate's can be show cased in annual terms for easier comparison.

APR (annual percentage rate) is calculated rate x 24 x 365.25

APY would be: (1 + rate) ^ (24 x 365.25)

one can approximently track APY by allocating funding receipts back into the position (excluding fees)