Docs / Economics / Fees
Fees
Five fees, all of them fixed in basis points, none of them a percentage of a percentage. Every satoshi the protocol takes buys $BWA. This page lists each one, what it is charged on, and where it ends up.
Every fee in one table
| Parameter | Bps | Percent | Charged on | Destination |
|---|---|---|---|---|
| surchargeBps | 250 | 2.50% | The expected value, to form the acquisition fee | Split three ways, below |
| ownerAcquisitionFeeBps | 100 | 1.00% | Each acquisition fee, taken out of the surcharge | Protocol, then $BWA buyback |
| ownerSettlementFeeBps | 100 | 1.00% | The backing, when the acquirer keeps the NFT | Protocol, then $BWA buyback |
| settlement discount | 1000 | 10.00% | The backing, when the acquirer takes the standing bid | Protocol, then $BWA buyback |
| token trading fee | 500 | 5.00% | $BWA buys and sells | Marketing wallet |
| protocolFeeToTokenBps | 10000 | 100.00% | Accrued protocol fees | $BWA buybacks |
There is no listing fee, no withdrawal fee and no fee for taking either half of a position beyond the ones above. Every configurable value on this page is in Parameters.
The acquisition fee, 100 bps
1% of each acquisition fee goes to the protocol, and it comes out of the 2.5% surcharge rather than being added on top of it.
The acquirer price does not change when this fee changes. An acquirer pays EV * 1.025 whatever ownerAcquisitionFeeBps is set to. Moving it moves money between the protocol and depositors and does not touch what anyone is quoted.
The settlement fee, 100 bps
When an acquirer keeps the NFT, the depositor gets the backing back less 1%. That 1% is the protocol's cut on a completed sale, and it is charged once, on the backing, only on the keep and relist paths.
An acquirer who keeps an NFT pays nothing here. They already paid the acquisition fee.
The settlement discount, 1000 bps
When an acquirer takes the standing bid they receive 90% of the backing. The missing 10% is the settlement discount, and it is the largest single fee in the protocol.
It is large on purpose. The standing bid is a floor that has to be there for every position at every moment, and pricing it at par would make the pool a free option: draw, look at the NFT, and hand it back at no cost whenever it disappoints. At 90% the exit exists but has a price, so it is used when the NFT is genuinely worth less than the backing rather than as a matter of routine.
Both bid paths, BNB and $BWA, carry the same 1000 bps. Settlement has the worked comparison.
The token trading fee, 500 bps
5% on $BWA buys and sells, sent to the marketing wallet. It applies to trades against the BWA/BNB pair, in both directions, and it is separate from everything above. It is a token level fee rather than a pool level one. The contract caps it at 500 bps, so it cannot be raised past 5%.
100% of protocol fees fund buybacks
protocolFeeToTokenBps is 10000, which is the whole of it. Nothing accrued by the protocol is kept as BNB.
Two permissionless calls move it, and either can be sent by any address.
| Call | What it does | Caller keeps |
|---|---|---|
| payoutFees() | Sweeps 100% of accrued protocol fees into the buyback reserve | — |
| buyback() | Spends up to 1 BNB from the reserve through PancakeSwap V2 | 50 bps |
The 0.5% the caller keeps is what pays for the gas and the bother of running it, which is what makes the buyback something that actually happens rather than something that theoretically could. What the bought tokens are then used for is on the token page.
Depositor earnings are equal per acquisition
Every acquisition produces an amount of BNB for depositors. That amount is split equally across every active position, not in proportion to backing.
A position backed with 1 BNB earns exactly what a position backed with 0.05 BNB earns from the same acquisition. Size buys you nothing here. What size buys is time: a larger backing is drawn less often, so it stays active across more acquisitions and collects on all of them.
This is the counterweight to inverse weighting. Small positions are drawn constantly and close quickly, so they collect few payments. Large positions are drawn rarely and collect many. The two effects push against each other, which is why there is no single backing amount that dominates.
$BWA emissions to depositors work differently, on a square root of backing accumulator. The token page has that table.
The dynamic surcharge split
Once the protocol has taken its 100 bps, what remains of the surcharge is divided between paying depositors and buying $BWA. That division moves with how busy the protocol is.
Busy is measured as the gap, the time since the last acquisition.
tokenShareBps share of the remaining surcharge spent on $BWA the rest goes to depositors as acquisition earnings
| Gap | Reading | To depositors | To the $BWA buy |
|---|---|---|---|
| 60s | Hot, at or under hotGap | 100.00% | 0.00% |
| 600s | Busy | 84.75% | 15.25% |
| 1830s | Exact midpoint of the two bounds | 50.00% | 50.00% |
| 3060s | Quiet | 15.25% | 84.75% |
| 3600s | Cold, at or over coldGap | 0.00% | 100.00% |
The reasoning is that the two payouts matter at different times.
- When acquisitions are frequent, positions turn over quickly and depositors are the ones carrying the pool. Paying them the full remaining surcharge is what keeps positions being listed.
- When acquisitions are rare, a per acquisition payment split across every active position is a small number arriving seldom. Spending it on $BWA instead puts it somewhere every depositor holds a claim on, through the emission accumulator and the burn.
Overriding the split
forcedTokenShareBps replaces the interpolation with a fixed share when it is set. The schedule above is what applies while it is not.
Worked example Illustrative
The five position pool from the pricing page, one acquisition, taken at a gap under 60 seconds so the whole remaining surcharge goes to depositors. Nothing here is read from chain.
| Line | BNB | Rule |
|---|---|---|
| Expected value | 0.13157895 | The price of the position, not a fee |
| Surcharge | 0.00328947 | 250 bps of EV |
| Protocol cut | 0.00134868 | 100 bps of the acquisition fee, out of the surcharge |
| Remaining surcharge | 0.00194079 | Surcharge less the protocol cut |
| To depositors | 0.00194079 | 100% of the remainder, gap under hotGap |
| To the $BWA buy | 0.00000000 | 0% of the remainder, gap under hotGap |
| Per active position | 0.00038816 | 0.00194079 split equally across 5 active positions |
Checks: the protocol cut plus the remaining surcharge is 0.00328947, the whole surcharge. The expected value plus the surcharge is 0.13486842, the acquisition fee. Five positions at 0.00038816 comes back to 0.00194079.
The same acquisition, taken cold at a gap of 3600 seconds or more, sends the full 0.00194079 to a $BWA buy instead and pays depositors nothing that round.