Docs · Fees
Fees and the 25/75 split
Each launch charges a single fee F on every swap, between 1% and 5%, which can differ for buys and sells. Three quarters of it goes to the beneficiary and one quarter to the protocol. The creator gets nothing.
Fee F#
- Range
- 1% to 5% per direction (10,000–50,000 pips, where 1,000,000 pips = 100%).
- Buy vs sell
- The creator can set one F for both directions or separate fees: the buy fee (paid in the quote token) and the sell fee (taken from the token side). Each must be within 1%–5%.
- Who sets it
- The creator, at launch. It is stored per pool by the zk-pad hook.
- Changes
- Lower-only. The token admin may reduce either fee, never raise it and never below 1%.
Every swap pays
F = 1% – 5%
Buy fee and sell fee set by the creator, lower-only after launch, measured on what the trader pays in.
+ ≈0.03% PancakeSwap protocol fee (not zk-pad's)
Beneficiary
75%
LP fee (0.75·F) earned by the locked positions → collected by the locker → credited to an opaque id in the FeeVault, in the quote token.
Protocol
25%
Hook fee (0.25·F of volume), always taken in the quote token.
The 25/75 split#
zk-pad splits everything it captures 25% protocol / 75% beneficiary. Mechanically the fee has two parts:
LP fee = 75% of it → locked positions → 100% to the beneficiary
protocol fee = 25% of it → hook fee, in the quote token
F is measured on what the trader pays in: the quote tokens spent on a buy, the tokens sold on a sell. The LP fee is earned by the positions held in the locker. Collecting it is permissionless, and the locker credits it to the beneficiary's id in the FeeVault. The protocol fee is taken by the hook on each swap, always in the quote token, and is one third of the LP fee the positions actually receive, so the two add up to F in a 25:75 ratio.
On a buy the protocol fee comes off the input before the pool swaps, so the hook raises the buy-side LP fee to 0.75·F / (1 − 0.25·F·(1 − pcs)) of what the pool swaps. That keeps the total at F of the buyer's gross input, instead of slightly less. On a sell the LP fee (0.75·F, in the launched token) is valued at the pool price after the swap, which is what the beneficiary realizes when the fees are collected and converted.
Worked examples#
These numbers are computed by the same code as the calculator below. Values are rounded for display.
Buy with 1 WBNB at a 3% fee
A trader buys a WBNB-paired token, spending 1 WBNB. The token's buy fee is 3%.
| zk-pad fee (3%) | 0.029991 WBNB |
|---|---|
| Beneficiary (75%) | 0.022493 WBNB |
| Protocol (25%) | 0.00749775 WBNB |
| PancakeSwap (≈0.03%) | 0.00029775 WBNB |
| Swapped after fees | 0.969711 WBNB |
Sell worth 1,000 USDT at a 2% sell fee
A trader sells tokens of a USDT-paired launch for about 1,000 USDT. The creator set buy 3% / sell 2%, so the sell fee applies.
| zk-pad fee (2%) | 19.994 USDT |
|---|---|
| Beneficiary (75%) | 14.9955 USDT |
| Protocol (25%) | 4.9985 USDT |
| PancakeSwap (≈0.03%) | 0.3 USDT |
| Swapped after fees | 979.706 USDT |
The beneficiary's LP share of a sell accrues in the launched token and is swapped to USDT when fees are collected, so it is credited as USDT.
A sniper buys 5 WBNB in the first second
Anti-snipe is on: the fee starts at 50% and decays to F over 60 s. A bot buys with 5 WBNB at t = 0.
| zk-pad fee (50%) | 2.4993 WBNB |
|---|---|
| Beneficiary (75%) | 1.8744 WBNB |
| Protocol (25%) | 0.624813 WBNB |
| PancakeSwap (≈0.03%) | 0.00131256 WBNB |
| Swapped after fees | 2.4994 WBNB |
The surcharge is not burned or kept by the creator: it is split 25/75 like every other zk-pad fee.
1% minimum fee, 10,000 USDT trade
The creator chose the lowest fee (1% both ways). A trader buys with 10,000 USDT.
| zk-pad fee (1%) | 99.97 USDT |
|---|---|
| Beneficiary (75%) | 74.9775 USDT |
| Protocol (25%) | 24.9925 USDT |
| PancakeSwap (≈0.03%) | 2.9925 USDT |
| Swapped after fees | 9,897.04 USDT |
Calculator#
Try different fees, trade sizes, an anti-snipe window and monthly volumes.
Fee calculator
Preview only. On-chain rounding can differ in the last digits.
Buy of 1 WBNB · fee 3%
- zk-pad fee (3%)
- 0.029991 WBNB
- → Beneficiary, 75%
- 0.022493 WBNB
- → Protocol, 25%
- 0.00749775 WBNB
- PancakeSwap protocol fee (≈0.03%)
- 0.00029775 WBNB
- Total fees paid
- 0.030289 WBNB
- Swapped after fees
- 0.969711 WBNB
Monthly projection
- Beneficiary
- $5,623.31
- Protocol
- $1,874.44
- Blended fee
- 3%
PancakeSwap's fee on top#
PancakeSwap Infinity charges its own protocol fee on dynamic-fee pools, about 0.03% by default (pcs). It is set by PancakeSwap and goes neither to zk-pad nor to the beneficiary. PancakeSwap takes its cut first and zk-pad charges F on the rest, so with F = 3% a trader pays about 3.03% in total (3% · 0.9997 + 0.03%; on a buy PancakeSwap's cut applies after the protocol fee, a hair less).
Anti-snipe surcharge#
Optionally, the creator can start trading with a high fee that decays to F. The start fee is at most 80% and the decay lasts at most 120 seconds. The curve is quadratic and based on timestamps, ported from Clanker v4's MevDescendingFees. It only ever moves down, and the module switches itself off after two minutes at the latest.
The surcharge is a zk-pad fee like any other, so it is split 25/75 as well. Example with a 50% start, a 60 s decay and F = 3%:
| Time after launch | Total fee | Surcharge | To beneficiary per 1 BNB |
|---|---|---|---|
| 0s | 50% | +47% | 0.374888 BNB |
| 10s | 36.96% | +33.96% | 0.277098 BNB |
| 20s | 24.95% | +21.95% | 0.187041 BNB |
| 30s | 15.55% | +12.55% | 0.116562 BNB |
| 40s | 8.76% | +5.76% | 0.065662 BNB |
| 50s | 4.58% | +1.58% | 0.034337 BNB |
| 60s | 3.01% | +0.01% | 0.022591 BNB |
Lowering fees#
The token admin can call lowerFees on the hook with new buy and sell fees. The call reverts unless at least one fee goes down and neither goes up or drops below 1%. Each change emits a FeesLowered event, so the history is public. Raising the fee again is impossible.
Collection and assets#
- Buys pay the fee in the quote token, so the beneficiary's share is quote token directly.
- Sells pay the LP part in the launched token. The fee-conversion locker swaps it to the quote token when fees are collected, so beneficiaries are credited in the quote token by default.
- Balances can later be consolidated into USDT on demand, and then withdrawn or shielded into Railgun. See why USDT.