Use when perpetual funding rates are elevated to avoid paying carry on directional longs, size entries appropriately, or flip to funding-harvesting posture.
Apply this skill whenever any of the following conditions are observed on HyperLiquid perpetual markets:
Funding carry is a silent tax on directional longs (and a rebate on shorts). In high-funding regimes, a position that is right on direction can still lose money or underperform a simple spot hold due to carry bleed. Every entry decision must be adjusted for the current funding regime before sizing.
Rule: Never enter or hold a leveraged long in a high-funding regime without explicitly accounting for carry cost in your expected-value calculation.
Before entering any perpetual position, retrieve:
GET /info → fundingHistory(coin, startTime, endTime)
GET /info → meta + assetCtxs → funding field (current predicted)
Compute:
assetCtxs[i].fundingfunding_1h × 24 (approximate; funding compounds)funding_1h × 8carry_per_8h / (1 / leverage) — the price must move
this much in your favour just to cover funding over the next 8h interval| Funding (1h) | Regime | Long Posture |
|---|---|---|
| < 0.01% | Neutral | Normal sizing, no carry adjustment |
| 0.01%–0.03% | Mildly elevated | Reduce size 10–20%; prefer shorter hold |
| 0.03%–0.05% | Elevated | Reduce size 25–40%; tighten TP targets |
| 0.05%–0.10% | High | Avoid new longs; consider short/flat |
| > 0.10% | Extreme | No new longs; actively harvest funding if short |
Apply a carry discount to the base Kelly/risk-budget sizing:
carry_discount = max(0.0, 1.0 - (funding_1h_bps / 5.0))
adjusted_size = base_size × carry_discount
Where funding_1h_bps = funding rate in basis points (e.g. 0.05% → 5 bps).
At 5 bps/h: discount = 0%, position = 0 (do not enter long). At 3 bps/h: discount = 40%, position = 60% of base size. At 1 bps/h: discount = 80%, position = 20% reduction.
In elevated regimes, compress TP targets to account for carry bleed:
hold_hours_expected = estimated_time_to_target_hours
total_carry_cost = funding_1h × hold_hours_expected
# Shift TP inward by carry cost:
adjusted_tp = raw_tp - (entry_price × total_carry_cost)
If adjusted_tp < breakeven, abort the trade — carry will consume the
edge before price reaches the target.
When funding is extreme (> 0.10%/h sustained), consider a neutral funding harvest rather than a directional trade:
⚠ Liquidation risk: Ensure the short leg has adequate margin even if price spikes 15–20% before funding normalises. Use ≤ 2× leverage on short leg.
funding_regime, carry_cost_per_8h, and
carry_adjusted_size for every entry in the audit JSONL:
{
"event": "entry",
"asset": "BTC",
"funding_1h": 0.042,
"carry_regime": "elevated",
"carry_cost_8h_pct": 0.336,
"base_size_usd": 10000,
"carry_discount": 0.664,
"adjusted_size_usd": 6640
}
Is 1h funding > 0.05%?
├── YES → Is this a NEW long entry?
│ ├── YES → ABORT entry. Consider short or flat.
│ └── NO → Existing long? Apply kill-switch check. If drawdown > 1.5%, close.
│
└── NO → Is 1h funding between 0.03% and 0.05%?
├── YES → Apply carry discount to size. Compress TP.
└── NO → Funding neutral. Proceed with standard sizing.
assetCtxs[i].funding returns the predicted rate for the current interval;
use fundingHistory for confirmed settled rates.marginSummary.totalRawUsd in the WebSocket user state feed to
detect margin erosion from carry before it triggers a liquidation.