Trading Fees
Velocity offers a highly competitive fee structure with low taker fees and a flat maker rebate, with the potential for even lower fees as trading volume increases. Fees are calculated per trade based on the filled notional position size and are charged in the market’s quote asset (USDC), affecting the position’s cost basis.
If a user holds only non-USDC assets, a USDC borrow may be triggered upon settlement of a loss in perpetual markets (see P&L).
Velocity’s tiered fees for futures markets are based only on an on-chain calculation of 30-Day Volume — there is no governance-token staking discount. (Drift’s DRIFT-staking fee discount was removed as part of the fee redesign.)
Velocity has no spot order book, so spot trades are not charged a trading fee — see Spot Market Fees below.
Perp Market Fees
Tier is selected purely by the account’s trailing 30-day perp volume; the maker rebate is flat across every tier.
| Tier | 30D Volume | Taker Fee | Maker Rebate |
|---|---|---|---|
| 0 | < $2M | 0.100% | -0.020% |
| 1 | 10M | 0.090% | -0.020% |
| 2 | 20M | 0.080% | -0.020% |
| 3 | 80M | 0.070% | -0.020% |
| 4 | 200M | 0.060% | -0.020% |
| 5 (VIP) | ≥ $200M | 0.050% | -0.020% |
These are the protocol’s default FeeStructure.feeTiers — an admin can update them (updatePerpFeeStructure), so treat the table above as the shipped default rather than an immutable constant.
Every tier also carries the same referrer reward (15% of the taker fee, paid to the referrer) and referee discount (5% off the taker fee, for accounts that signed up via a referral) — see Referee Discount / Referrer Reward below.
Builder Fees
Order params can optionally carry a builder code (builderIdx + builderFeeTenthBps, set via VelocityClient.changeApprovedBuilder). The builder fee is:
builder_fee = notional × fee_tenth_bps / 100_000This is charged on top of the taker fee (it doesn’t reduce the taker’s fee tier or the protocol’s cut) and accrues to the builder’s RevenueShareEscrow, swept out on the next settlePnl. Existing order placements are unaffected — the fields are optional.
Fee Redesign
Velocity’s fee model is a clean per-fill split rather than Drift’s insurance-fund waterfall. The full taker-fee decomposition, in order:
taker_fee = ceil(notional × fee_numerator / FEE_DENOMINATOR) tiered by 30d volume only,
± per-market fee_adjustment
− referee_discount (reduces what the taker pays; never collected)
− referrer_reward (→ referrer, via RevenueShareEscrow)
− filler_reward (→ keeper, as perp quote PnL)
− maker_rebate (→ maker; match path only)
───────────────────────────
remainder ── × amm_fee_numerator% → AMM fee provision (spendable AMM liquidity; the
│ bankruptcy backstop of last resort)
── × if_fee_numerator% → insurance fund (via the pnl-pool sweep)
── residual → protocol (withdrawable `protocol_fee_pool`)
builder_fee = notional × fee_tenth_bps / 100_000 ADDED on top of taker_fee; pure pass-throughThe AMM/IF split (FeeStructure.ammFeeNumerator / ifFeeNumerator) defaults to 0%/0% — the protocol receives 100% of the trade-fee remainder as the residual claimant — and is admin-configurable up to ammFeeNumerator + ifFeeNumerator ≤ 100%.
Key differences from the pre-redesign model:
- Protocol fees are directly withdrawable, not part of the backstop. They land in a per-market
protocol_fee_pooland exit viawithdraw_protocol_fees_perp/withdraw_protocol_fees_spot, recipient-locked toState.protocolFeeRecipientPerp/protocolFeeRecipientSpotand gated by a dedicatedFeeWithdrawhot key. - The AMM’s books contain only its own money. Its fee provision is real, spendable liquidity — but the market tracks the cumulative amount received (
feeLedger.ammProtocolFeesReceived) so a perp bankruptcy can claw back what’s still recoverable as the backstop of last resort. The AMM’s own trading/spread capital beyond that provision is never touched. - The Insurance Fund is 100% staker-owned. There are no protocol IF shares — every settled dollar accrues to stakers as share-price appreciation (see Liquidations and Insurance Fund).
- Liquidations carry an explicit protocol cut (
protocol_liquidation_fee), split IF-first against the existing insurance-fee budget so it can never push a liquidation into bankruptcy — see Liquidations.
Spot Market Fees
Spot trading on Velocity charges no trading fee — the swap fee is hardcoded to zero, and (per Order Types) there’s no spot order book to charge a maker/taker fee on in the first place. Spot trades route through begin_swap / end_swap (direct swaps) or the LP pool swap. Other spot-market fees (liquidator fee, insurance/protocol factors on lending yield) still apply — see Other Trading Fees.
Referee Discount / Referrer Reward
These apply to accounts that were signed up using a referred account. These percentages are applied to the effective taker fee paid: a 5% discount for the referee, and 15% of the taker fee paid to the referrer’s RevenueShareEscrow.
Filler Reward
Filler rewards are the lesser of a size-based component (10% of the fee) and a time-based component that grows with slots since the order was placed, so keepers are incentivized to fill older orders. See Keeper Incentives.
Fee Adjustments
Longer tail assets can have increased fees to stay in line with external markets’ fee schedules via a per-market fee_adjustment. Some markets will periodically have flat discounts applied to all fee tiers.
Disclaimers
Velocity reserves the right to end any promotional period or taker incentive program at any time. If it chooses to do so, it will provide notice to participating users, but such notice is not required in order to conclude the program early or extend the program. Please note that the terms and conditions of this program are subject to change without notice.
There are risks associated with Insurance Fund Staking. Read more about the Insurance Fund Staking and Risks).