sour.finance
Launch app →
LEARN · FLAT FEE

The flat fee perp DEX

Sour charges a flat 3 bps per fill on every perpetuals trade — no taker premium, no maker rebate, no volume tier, no token-staking discount. 100% of the fee routes to the SOUR LP vault that backstops every position. One number, written down once, and the same for everyone.

What "flat" actually means

Most "low fee" claims hide a fee schedule with five rows and three asterisks. Flat means the schedule has one row.

  • TAKER FEE = MAKER FEE
    Both sides of a fill pay the same 3 bps. There is no maker rebate and no taker premium. The matching engine does not need to know which side of the book you are on, because the answer is the same either way.
  • NO SIZE BREAKPOINTS
    A $50 trade and a $50,000,000 trade pay the same 3 bps fraction of notional. There is no implicit cliff at $1M, no minimum-fee floor, and no notional-bracket lookup table.
  • NO TIER LADDER
    There is no 30-day rolling volume tier, no diamond-hands discount, no SOUR-staking discount. Every account, on its first fill and its millionth fill, pays the same fee.
  • SAME FEE FOR EVERY ROLE
    A passive market maker, a retail trader, the LP vault rebalancer, and an integrating program calling the matching engine via CPI all pay the same 3 bps. The fee schedule has no privileged accounts.
  • SAME FEE IN PRO AND DEGEN MODE
    Pro mode and Degen mode are different UIs over the same orderbook. The fee is a property of the protocol, not of the surface you trade through.

Where the fee goes

Every basis point of every fill credits the SOUR LP vault. The LP vault is the passive USDC pool that is the counterparty of last resort to every position on the protocol — when traders are net long and the market rises, USDC flows out of the LP vault to traders; when traders take losses, that USDC flows back in. Fees are the LP’s compensation for taking that risk. They are the only compensation. There is no protocol fee skim, no buyback-and-burn, no team treasury cut sitting between the trader and the LP.

This routing is enforced by the program, not by a guideline. The clear-batch handler debits the fee from each trade’s notional and credits it to the LP-vault USDC account inside the same atomic transaction that settles the fill. The pooled-vault invariant we formally verify — that vault USDC equals the sum of total assets and trader collateral, byte-exactly — captures fee accrual as part of total assets. The 100% routing is not a marketing claim. It is a tested property of the on-chain code at program ID souryQgnM1xiNuGcmVYLPGT3MKqnGN8QTqP8zk8eape.

The reason to design it this way is alignment. If LPs are not paid for the risk they shoulder, they leave, and the protocol degrades into a thin-book venue with synthetic depth and a wide effective spread. We would rather pay LPs the entire fee and run a clean book than slice the fee three ways and run a worse one.

Why we don’t run a maker rebate

Maker rebates are a continuous-CLOB artifact. On a venue like a centralized exchange or a continuous-orderbook DEX, makers post resting liquidity and bear the risk of being filled by a taker who knows something the maker does not — the classic toxic-flow problem. The maker rebate is an explicit subsidy that compensates makers for absorbing that information asymmetry, paid for by takers who pay a higher fee.

Inside a batch-cleared model, every order in a 1.8-second slot fills at the same uniform clearing price. There is no toxic-flow asymmetry between makers and takers within the slot, because they are filling each other at the same price by construction. A rebate in this setting is not compensating anything. It is just an accounting transfer with no incentive purpose, with the side effect of making the fee schedule harder to reason about. We removed it.

Why we don’t run a tier ladder

Tier ladders are a vestige of centralized-exchange volume marketing. They exist because CEXes compete for whale order flow and the cheapest way to advertise that competition is "fee = X% if you trade $50M a month". The economic effect is a sliding-scale tax on retail: the smaller you are, the more you pay per fill, even though you cost the venue the same in matching-engine cycles.

Sour does not need to compete that way. The LP vault is paid out of the flat 3 bps and a uniform fee gives every participant the same shot at the same price discovery. A discounted tier for high-volume accounts would create cartel-friendly economics — an incentive for big accounts to consolidate flow inside themselves rather than route through the protocol like everyone else. The simpler answer is to charge everyone the same and let the LP curve do its work.

How this compares

VenueFee model
Sour3 bps flat per fill. No maker-taker split, no tier ladder, no token discount. 100% to LP.
DriftMaker-taker split with a base taker fee, plus potential discounts via token staking and per-market parameters.
Jupiter PerpsNo per-fill orderbook fee in the same sense; primary cost is a borrow fee scaled by pool utilization, charged hourly while the position is open.
HyperliquidMaker-taker schedule with tiers based on 14-day rolling volume, plus separate referral and staking modifiers.

Fee schedules at other venues change frequently. This table describes the broad shape of each model, not exact numbers — check each venue’s docs before comparing on price.

At a glance

FEE
3 bps flat per fill
FEE DISTRIBUTION
100% to SOUR LP vault, atomic at fill
MAKER-TAKER SPLIT
None
TIER LADDER
None
TOKEN DISCOUNT
None
BASE ASSET
USDC
MAX LEVERAGE
50× isolated
MARKETS
SOL-PERP, BTC-PERP, ETH-PERP
PROGRAM ID
souryQgnM1xiNuGcmVYLPGT3MKqnGN8QTqP8zk8eape
SOURCE
github.com/GageBachik/sour
A fee schedule that fits in one sentence is a feature, not a missing column.