Learn / Funding and financing

the cost of carrying a position, where it can be measured

An interest component of 0.01% per 8 hours compounds to 11.6% a year, and the other venue's rolling fee rate is unpublished, so venues.carry_comparable() returns False.

Figures rebuilt 2026-08-27 by the MarketMoves editorial desk. Every number on this page is derived from the sources named in the methodology.

funding is charged every hour at a fraction of the 8-hour rate

Hyperliquid charges funding every hour rather than on the three-times-daily schedule most perpetual venues use, at one eighth of the 8-hour rate. The rate itself is market-set rather than a venue charge: it moves with the premium of the perpetual over the index, is capped at 4.00% per hour, and is paid peer to peer between the long and short side with no venue cut. A position held through 8 intervals therefore pays or receives the equivalent of one 8-hour rate.

Two consequences follow from the hourly interval. A position closed inside an hour pays no funding at all, which pushes the entire cost of a short hold onto the opening fee. And a position held through a persistent premium pays 8 times per 8 hours at a rate that can reset each hour, so the charge is a running variable rather than a fixed term of the contract.

Hyperliquid funding, interval, cap and peer-to-peer settlement.

the interest component annualises to 11.6%

Inside the funding formula sits a fixed interest component of 0.00125% per hour, which is 0.01% per 8 hours and is paid by the long side to the short side. Multiplying by the 8,760 hours in a year gives 11.0% simple, and compounding the hourly rate over the same period gives 11.6%. Both are computed here from the hourly figure in the registry rather than quoted, which is why the compounded number is the one this site uses.

The interest component is small against the cap and large against the opening fee. The taker fee equals 34.6 hours of the interest component at 10× and the same 34.6 hours at the 40× cap, because both terms scale with notional and the ratio between them does not move with the rung. A position held beyond that many hours has paid more in carry than at entry, taking the market-set part of funding as flat.

the cap is a per-hour number, so it is large over 8 hours

The cap of 4.00% per hour is 32.0% over 8 hours. That figure is not a forecast; it is the ceiling the venue documents, and it is worth stating in the same units as the distance to liquidation because the two are commensurable. On a zero-buffer venue the whole runway at 5× is 20.0%, which one capped 8-hour period would exceed on its own, and the same comparison holds at every rung above it.

RungNotional on $100.00Taker open Funding over 8 hours at the cap Hours of interest to equal the openRoom Capped 8-hour funding exceeds the room
$200.00$0.09$64.0034.648.8%no
$300.00$0.13$96.0034.632.1%no
$500.00$0.22$160.0034.618.8%yes
10×$1,000.00$0.43$320.0034.68.75%yes
20×$2,000.00$0.86$640.0034.63.75%yes
25×$2,500.00$1.08$800.0034.62.75%yes
40×$4,000.00$1.73$1,280.0034.61.25%yes

Notional is stake multiplied by the rung. Taker open is venues.open_cost() on the notional basis, net of the published referral discount. The hours column is the opening fee expressed as a share of notional divided by the 0.00125% hourly interest component. Room is venues.liq_move() at a 1.25% maintenance rate. Cited: funding, fees.

the other rate is charged every 8 hours and is not published

Moon documents a rolling fee charged every 8 hours and describes the rate as dynamic. No figure is published for it anywhere in the help centre, so venues.carry('moon')['rate'] is None and every function on this site that would multiply it returns nothing instead of a guess. That is a deliberate absence rather than an oversight in the data collection: a modelled rate would make every table look precise and be wrong.

Moon betting glossary, rolling fee and interval.

the two cannot be compared on cost of carry

TermRolling fee, wager basis Funding, notional basis
Charging intervalevery 8 hoursevery hour
Rate publishednoyes
Slices per 8 hours18
Cap per hournot published4.00%
Cap over one 8-hour intervalnot published32.0%
Interest component per 8 hoursnot published0.01%
Interest component, simple annualnot published11.0%
Interest component, compounded annualnot published11.6%
Counterpartythe venuepeer to peer, no venue cut
Comparable on cost of carryno

With one rate published and one not, venues.carry_comparable() returns False, and that return value gates the comparison rather than a judgement about it. A total cost of ownership figure would require both rates; a cost of entry figure requires only the fee schedules, which both venues publish. Every cost number on this site is therefore scoped to entry.

Scoped to entry means a floor and not an estimate. A position held overnight on either venue will have paid more than any table here shows, and on the venue with the unpublished rate the size of that difference is unknown rather than small. Third-party testers additionally report a performance fee on realised profit and a spread inside the settlement price, neither of which appears in Moon's own documentation and neither of which is modelled anywhere on this site.

what changes if the rate is published

The registry carries a review date, reviewed through 2026-11-27, and the carry record has a rate field waiting for a figure. Filling it makes carry_comparable() return True, at which point the cost tables can extend from entry to a stated holding period and the crossover rung of 23.1× taker becomes a function of the hold rather than of the entry alone. Until then the crossover is an entry-cost statement and is labelled as one on every page that prints it.

the entry-cost arithmetic in full, what is excluded and why.

Registry 2026-08-27a, reviewed through 2026-11-27. Rebuilt 2026-08-27 07:56 UTC UTC across 45 tracked markets.