Velocity ProtocolDevelopers
Trading

Trading fees

What a fill costs, how a fee tier is computed, and where the fee goes.

Every perpetual fill charges the taker a fee on the filled notional. It is denominated in the market's quote asset (USDT), applied to the position's cost basis rather than billed separately, and the maker on the other side of the same fill is paid a rebate out of it.

Worked numbers use the two standard anchors, a $10,000 account and a $5,000,000 desk, with SOL at $100.

The schedule

An account's tier is selected by its trailing 30-day volume at the moment of each fill.

TierTrailing 30-day volumeTaker feeMaker rebate
Regularunder $5,000,0004 bps (0.040%)0.25 bps (0.0025%)
VIP 1$5,000,000 to $80,000,0003 bps (0.030%)0.25 bps (0.0025%)
VIP 2above $80,000,0002 bps (0.020%)0.25 bps (0.0025%)

The rates are admin-settable, so read the live values rather than treating the table as fixed.

The maker rebate is 0.25 bps of the fill's notional, flat at every tier. It is paid to whoever was the maker on the fill, out of the taker's fee, and it is read from the maker's own fee tier rather than the taker's.

What makes an order a maker order

An order is a maker order when it carries the post-only flag. Without that flag a resting order can still match as a taker, pay the taker fee, and earn no rebate, which is the most common way a market-making strategy quietly loses its rebate. See Order types and Market makers.

What counts as volume

The tier reads the sum of two rolling 30-day counters, taker volume and maker volume. Maker volume counts, and so does liquidation volume: a liquidation credits the liquidatee's taker counter and the liquidator's maker counter, so both sides of a liquidation build tier progress. Volume earned filling other people's orders as a keeper does not count, and direct token swaps do not count either, because the swap path charges no trading fee at all.

Each counter decays linearly to zero over 30 days. Promotion is instant: a fill's volume lands in the counter immediately, and the very next fill is priced at the better tier.

Per-market rates

The schedule above is the baseline. Individual markets can be priced off it, and a promo tier may also be running, which only ever prices an account better than its volume tier and never worse. Everything that moves a fill off the published rate is set onchain and readable, so a fee above the tier number can be attributed rather than guessed at.

These are the rates in force on every perp market, read live from the program. Any market-specific pricing is already folded in, so the number in the column is the number charged.

MarketMaker rebate
Loading...

Worked example

The $10,000 account opens 20 SOL long at $100, a notional of $2,000, as a taker on a market priced at the published rate. At the Regular tier that is 4 bps, or $0.80, charged against the position's cost basis. Closing the same size pays it again, so the round trip costs $1.60. Posted with the post-only flag instead, the same order would have earned 0.25 bps of $2,000, or $0.05.

The $5,000,000 desk sits in VIP 1. On a $100,000 fill it pays 3 bps, or $30, where the Regular tier would have charged $40 and VIP 2 would charge $20. On a market priced 1.5 bps above the schedule the same fill costs 4.5 bps, or $45.

Where the fee goes

Where a taker fee goes

Referee discount: 5% of the gross taker fee, never collected. Applies only while builder codes are enabledReferrer reward: 10% of the gross taker fee, accrued to the referee's escrow. Applies only while builder codes are enabledFiller reward: 10% of the fee by size, capped by a time leg that starts at one centThe remainder after the rebate and reward legs are carved offThe insurance fund's share of the remainder, admin-set and 15% on mainnet todayThe AMM's share of the remainder, admin-set and 15% on mainnet today. Spot fills route nothing hereThe protocol keeps whatever the other two shares leave, the residual 70% of the remainder todayTaker fee100%gross, after tier and market rateReferee discount5%Referrer reward10%Filler reward10%Remainder75%Insurance fund11.25%15% of the remainderAMM11.25%15% of the remainderProtocol52.5%the residual 70%
Shows how one taker fee is divided, as a percentage of the gross fee. The remainder split drawn here is mainnet's live configuration, an AMM and insurance share of 15% each against a residual 70% to the protocol, not the program's compiled defaults. Both shares are admin-settable, so the split table below this figure reads them from the chain and is the authority if the two ever disagree. Spot fills route nothing to the AMM. The referrer and referee legs pay out only while the BuilderCodes bit of FeatureBitFlags is set on State.featureBitFlags; read the live State account for that bit.

Four amounts come off the top in a fixed order, and only what survives that is divided between the standing claimants.

  1. The referee discount reduces the fee before it is ever charged.
  2. The filler reward pays the keeper that landed the fill. It is the lesser of 10% of the fee and a time-based amount that starts at one cent for a just-placed order and grows with the age of the order. See Keeper incentives.
  3. The referrer reward, 10% or 20% depending on the referrer's level. See Referrals.
  4. The maker rebate, 0.25 bps of notional, when a maker was on the other side.

The remainder is split three ways: a share to the AMM, a share to the insurance fund, and the residual to the protocol's own withdrawable fee pool. The first two shares are admin-configured and sum to at most 100%, and whatever they leave is the protocol's, so the protocol's cut is a residual rather than a set rate.

ClaimantShare of the remainder
Loading...

Protocol fees land in a per-market pool that only designated, admin-set recipients can withdraw from, and a withdrawal is capped to that pool's own balance, so it can never reach user deposits. See Where the money sits.

Referral legs apply to the pre-discount fee

Both referral percentages are computed against the taker fee before the referee discount is applied, not against the fee actually paid. On a $0.80 taker fee that means a 5% discount of $0.04 and a 10% referrer reward of $0.08, giving a charged fee of $0.76. Maker fills generate no referral reward, and the referrer's share comes out of the remainder rather than adding to the taker's bill. See Referrals.

Fees that are not trading fees

Spot markets charge no maker or taker fee, because there is no spot orderbook to make or take on. Direct swaps are charged nothing.

Liquidations carry their own three-way split: a fee to the liquidator, a fee to the insurance fund, and a protocol fee, all per-market rates rather than tier rates. See Liquidation.

Lending yield is carved on accrual, with a fraction of deposit-interest gains reserved for the insurance fund and a fraction for the protocol. Lenders receive the remainder. See Interest rates.

A builder fee sits outside the split entirely. It is charged on top of the taker fee and passed through to the builder, so it changes neither the taker's fee tier nor the protocol's cut. See Builder codes.

What this means in practice

For a trader at size, the number that moves the tier is taker plus maker volume over a live trailing 30 days, liquidations included. Crossing a threshold prices the very next fill.

For a maker, post-only is the difference between paying the taker fee and receiving the rebate. The rebate is flat across tiers, so volume buys a cheaper taker fee and nothing else on the maker side.