Funding
Perpetual contracts use funding rates to keep the mark price anchored to the oracle price. Funding is a periodic payment between longs and shorts, settled once per hour.
How the rate is calculated
At each hourly interval, the validator computes:
avg_premium = sum(premium_samples) / count(premium_samples)
premium_rate = avg_premium / 8
interest_adj = clamp(interest_rate - premium_rate, -0.05%, +0.05%)
funding_rate = premium_rate + interest_adjWhere each premium sample is: (impact_mid - oracle_price) / oracle_price
The validator samples the premium every 5 seconds throughout the hour and averages the samples at settlement (TWAP). Over a 1-hour interval, the validator averages approximately 720 samples.
Funding uses the impact mid, which is the depth-weighted order-book midpoint. The division by 8 normalizes to an 8-hour equivalent period. The validator caps the rate at ±6.25% per interval (625 bps).
Interest rate component
The interest rate is a fixed baseline that flows from longs to shorts regardless of the premium. It models the cost of carry: a long perp position is economically similar to borrowing USD to buy the asset. Shorts earn this rate for providing the other side.
When the premium is near zero, the funding rate converges to the interest rate. When the premium is large, the interest rate has minimal effect. The clamp limits the interest component's adjustment to ±0.05% relative to the premium alone.
The interest rate is a per-market value. Read interestRateMicroBps from GET /v1/markets.
Who pays whom
- Positive rate (impact mid > oracle): longs pay shorts
- Negative rate (impact mid < oracle): shorts pay longs
If the mark trades above the oracle, being long is expensive. This creates an incentive for longs to sell, pushing the mark back toward the oracle.
Payment
Parcl applies funding directly to your collateral balance. If you pay, your collateral decreases. If you receive, your collateral increases. This affects your margin and liquidation price immediately.
The payment per position:
funding_payment = funding_rate * oracle_price * position_sizeEach position settles independently against the cumulative funding index. When long and short open interest is balanced, trader payments offset each other. When it is not balanced, the net difference credits or debits the Parcl Treasury.
Timing
Funding settles once per hour. The displayed funding rate in the UI and API updates continuously throughout the hour, reflecting the running TWAP estimate so far. When the hourly crank fires, the current estimate becomes the actual rate applied to all positions.
The displayed rate is "what the rate would be if settlement happened right now." As more samples accumulate over the hour, the estimate stabilizes.
API
Current funding rate per market: GET /v1/markets (see fundingRate field)
Funding rate history per market: GET /v1/markets/{id}/funding
Your funding payment history: GET /v1/accounts/{id}/funding (requires authentication)
WebSocket: subscribe to the funding channel for real-time rate updates.