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, ...)

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.

*: if no market trades occur within the first ~15 minutes of the hour, the funding will be delayed an additional hour.

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

Capped Symmetric Funding

Drift aims to provide a symmetric funding rate. When there is a long-short imbalance in our DAMM, the protocol's market specific 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 (that being 2/3 of the total remaining size being available at each interval), then 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.

๏ปฟThe amount available in the fee pool will increase as trades occur over the hour, so the fee cap should move closer to being balanced. Example:

For BTC-PERP you can check the recent history to get a better idea of what shorts will receive: https://app.drift.trade/funding?market=BTC (you can access this link by clicking "24h Avg Funding" at the top of the page)

Example funding calculation:

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

example data
example data

Oracle Resilience

Drift's on-chain calculation of a market's oracle twap is updated only on trades and incorporates the oracle's confidence interval and a few interpolations to provide the most accurate and resilient value.

Read more about protective checks in Oracles.

APR calculation

Funding rates can be showcased 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) - 1

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



Updated 31 Mar 2022
Did this page help you?