Fees
The protocol fee is charged in basis points and falls as the trade grows. The bands are expressed in US dollars at the time of the trade.
| Trade size | Fee | Basis points |
|---|---|---|
| Up to $1,000 | 15 bps | 0.15% |
| $1,000 – $10,000 | 10 bps | 0.1% |
| $10,000 – $100,000 | 7 bps | 0.07% |
| Above $100,000 | 5 bps | 0.05% |
The boundary is inclusive. A trade of exactly $1,000 is charged at 15 bps, not 10. The bands are a step function, not an interpolation, so there is never a size at which splitting a trade is cheaper than filling it whole at the next tier — the rate only ever falls.
What that costs in practice
| Trade | Rate | Protocol fee |
|---|---|---|
| $500 | 15 bps | $0.75 |
| $5,000 | 10 bps | $5.00 |
| $50,000 | 7 bps | $35.00 |
| $500,000 | 5 bps | $250.00 |
Calculating it
The SDK exports calculateProtocolFee and the tier table itself as FEE_TIERS. The daemon reimplements the same calculation in Rust and is conformance-tested against the TypeScript implementation, so the two cannot silently diverge.
import { calculateProtocolFee } from '@dash-intents/sdk';
calculateProtocolFee(500); // 0.75 — 15 bps
calculateProtocolFee(5_000); // 5.00 — 10 bps
calculateProtocolFee(50_000); // 35.00 — 7 bps
calculateProtocolFee(500_000); // 250.00 — 5 bpsWhere the fee goes is described inTreasury.