Minimize trading fees through maker orders, volume tiers, and fee-aware execution.
Use this skill for:
Check current 30-day volume and fee rates:
kraken volume --pair BTCUSD -o json 2>/dev/null
The response includes volume (30-day USD equivalent) and fees / fees_maker arrays showing the tier schedule.
At starter tier: 0.26% taker, 0.16% maker. The difference compounds over many trades.
Force maker execution by rejecting orders that would immediately fill:
kraken order buy BTCUSD 0.001 --type limit --price 50000 --oflags post -o json 2>/dev/null
If the order would cross the spread and fill as taker, it is rejected instead. This guarantees maker fees on every fill.
By default, fees are deducted from the received currency. Override with:
kraken order buy BTCUSD 0.001 --type limit --price 50000 --oflags fciq -o json 2>/dev/null
| Flag | Fee taken from |
|---|---|
fciq | Quote currency (e.g., USD) |
fcib | Base currency (e.g., BTC) |
Paying fees in quote currency preserves your base asset balance, useful when accumulating.
Higher 30-day volume unlocks lower fees. Track progress:
kraken volume -o json 2>/dev/null
If close to the next tier threshold, consolidating trading activity (rather than splitting across exchanges) can push you into a cheaper bracket.
kraken futures feeschedules -o json 2>/dev/null
Futures fee volumes:
kraken futures fee-schedule-volumes -o json 2>/dev/null
When buying a fixed dollar amount, account for fees in the volume calculation:
# $100 buy at starter taker rate (0.26%)
# Effective spend: $100 / 1.0026 = $99.74 worth of BTC
# Fee: ~$0.26
For precise accounting, check the fee field in the trade response after execution.
Batch orders share a single API call, reducing overhead. Use when placing related orders:
kraken order batch orders.json --pair BTCUSD -o json 2>/dev/null
--validate before submitting live orders.