Trion Documentation Options live · Perps in open beta
Browse documentation

Funding and fees

In one paragraph: A perpetual has no expiry, so something must pull its price back toward the index. In the general V2 design that something is funding: once an hour, longs pay shorts (or shorts pay longs) an amount proportional to how far the book traded above or below the index during that hour. Trion quotes the rate as an 8-hour number for comparability with other venues but settles it hourly and caps it. In the CMPT-USD open beta funding is off and the mark price equals the index. Separately, trading fees are a small percentage of each fill; in the perp beta they are 0%.

Funding applies to perpetuals only. The CMPT-USD perpetual is in open beta with funding off and 0% fees; the hourly-rate mechanism below is the general design and is not active in the beta. Capped options pay no funding: on the V3 book a buyer or writer pays the premium and, when their order takes a resting one, a 1% taker fee; in the V2 pool, the buyer pays the premium and a swap fee. See status.

How the hourly rate is built

  1. Every 5 seconds, sample the premium p = (B + A)/(2I) − 1 from the qualified book.
  2. Average the valid samples over the completed UTC hour → P.
  3. Add an interest term and dead-band: F8 = P + clamp(0.0001 − P, −0.0005, +0.0005). The 0.0001 is a fixed 0.01% per 8 hours interest component that applies to every market.
  4. Convert to hourly and cap: Fh = clamp(F8 / 8, −0.0036, +0.0036) (±0.36% per hour).
  5. Payment per account: position × I at the hour boundary × Fh. Positive Fh: longs pay shorts. Negative: shorts pay longs.

The protocol keeps none of it. Funding is a transfer between traders.

"8h rate" versus what you pay

The interface may show F8 (the 8-hour figure). What actually hits your account each hour is Fh, one-eighth of that, clamped. Example (hypothetical): the book averaged 0.4% above index for an hour. F8 = 0.004 + clamp(−0.0039, −0.0005, +0.0005) = 0.0035. Fh = 0.0035/8 ≈ 0.000437 (0.0437%/h). With a 1,000 CT long at I = $2.60 (notional $2,600) you pay about $1.14 that hour.

When funding is zero

Because coverage failure sets the whole rate to zero, the interest component is not charged during a broken hour either.

When funding is applied

Your position quantity at the top of the hour is what gets charged. Before any position change after a boundary, the completed epoch is finalized and your account settles the difference; flat exits and top-ups do not wait. A position opened after the boundary is not charged for that hour. An epoch still missing at the next boundary is recorded as skipped, never back-filled.

Trading fees

ItemValueNotes
CMPT-USD perp taker fee (beta)0 bpsNo taker fee in the open beta
CMPT-USD perp maker rebate (beta)0 bpsNo maker rebate in the open beta
Perp taker fee (general design, not active)5 bps of notionalCandidate value from the deployment script's market table; charged to the order that takes liquidity
Perp maker rebate (general design, not active)3 bps of notionalCandidate value; paid from the taker's fee and credited to the maker's account at settlement; no unbacked credit, no reward token
Liquidation penalty (general design)≤ 50 bps of executed notional, ≤ your remaining equityReplaces the taker fee on liquidation fills routed through CloseoutRouterV2.liquidate. In the CMPT-USD beta liquidation is run by Trion's keeper, which closes the position in full; see Margin and liquidation
Options V3 maker fee0 bps of premiumThe resting order pays nothing. Governance may set either V3 fee up to the contract cap of 500 bps; every order signs maxFeeBps and a fill above it is skipped. See Options
Options V3 taker fee100 bps (1%) of premium, rounded up per fillCharged to the order that takes liquidity, deducted from cash at the fill; accrues to the exchange and is withdrawable by governance
V2 option issuance markupmodel price × 1.02Part of the premium, which goes entirely to the writer sleeve; there is no separate issuance fee. V2 series expire 2026-10-30
V2 option secondary swap fee30 bps base, 250 bps ceilingAdded to the traded bin's reserves for its LPs; the protocol keeps none. See Option pool liquidity

In the general design the net of taker fee minus maker rebate stays in the market's PerpetualV2 contract as feeCash. The contract has no function to withdraw it, so there is no protocol revenue distribution, fee-sharing programme or farm built on it. With 0% fees in the beta, nothing accrues there for CMPT-USD.

Every signed order carries maxFeeBps. If the market's configured taker fee is above your signed limit, the fill is rejected rather than charged. Fees cannot push an account into debt on a reducing trade.

Caveats

Source trail: docs/spec/V2_ARCHITECTURE.md §2.5, §6.1; overdrive/perps/src/v2/FundingEpochsV2.sol (REQUIRED_COVERAGE_SECONDS, EPOCH_WINDOW_SECONDS, MAX_HOURLY_RATE_WAD, finalizeEpoch, skipEpoch, epochStartTimes); overdrive/perps/src/v2/PerpetualV2.sol (taker fee / maker rebate computation, MaxFeeExceeded); overdrive/perps/script/DeployV2.s.sol (takerFeeBps, makerRebateBps); overdrive/exchange/oracle/src/publisher.ts (funding attempt), signer.ts (epoch check), publication-evidence.ts (calculateHistoricalPayload), funding-sampler.ts; overdrive/exchange/matcher/src/server.ts (fundingStatus).

Repository-owned documentation · October 2026 · Educational material, not investment advice and not an audit.