Fees & protocol revenue
Deposits earn an equal share of acquisition fees while active; protocol cuts are bounded.
Every acquisition fee, minus the protocol cut and the crown tithe (a small slice set aside for the top deposit reward), is split equally across all active positions1. Every position earns the same amount per acquisition, no matter its backing. Earnings build up continuously as a withdrawable balance.
Equal per acquisition, uneven over time. A position earns its share on every acquisition it's in the pool for, and richly-backed positions, with their lower selection weight, tend to stay in the pool far longer. So a richly-backed NFT and a cheap one earn the same on any single acquisition, but the richly-backed one collects fees across many more acquisitions before it's finally allocated. On average, the larger the backing, the more ETH the position earns over its lifetime, purely because it sticks around longer.
The risk is duration. The selection weight implies an average lifetime for each deposited NFT, but any individual position can be selected earlier than that average. When that happens, the depositor's earning life ends sooner than expected: no more future acquisition fees, FND rewards, or crown tithe from that NFT. A depositor whose NFT is selected early and who doesn't replenish can realize a loss versus the cut they expected to earn over the average lifetime.
- It keeps acquisitions cheap and rewards small depositors: a modest position earns just as much per acquisition as a large one, which encourages the many small deposits that keep the pool liquid and the price low.
- On its own it would scare off large deposits, so the size incentive it removes is added back through a separate, visible mechanism: the top deposit reward.
Where protocol revenue comes from
The protocol is the third role: it doesn't list positions or make acquisitions, but it earns when activity exposes a gap between NFT value, ETH backing, and the choices purchasers make. Its revenue comes from a few clearly-bounded sources. The in-protocol balance stays in the contract until anyone pushes it to the configured payout address2. None of them touch backing; they're taken only from fees and the surcharge:
- A cut of every acquisition fee (from the surcharge; your acquisition price is unchanged).
- A cut when a purchaser keeps the NFT (a small % of the position's value, from the depositor's backing return).
- The settlement discount: by default to the protocol; a toggle can instead share it among depositors (your proceeds as a purchaser are the same either way).
- A separate 1% $FND trading fee on buys and sells, routed directly to its configured fee wallet.
The fee burner
Half of the protocol cuts never reaches the payout address. 50% of the accrued protocol balance is redirected into buying $FND on the open market3, and every token bought that way is burned — a permanent reduction of the fixed supply, not a transfer to anyone. The other half still pays out, covering the randomness float, gas and hosting.
The burn is a straight consequence of use: more acquisitions and settlements mean more protocol revenue, more ETH spent buying $FND, and less $FND in existence. Anyone can push the payout and anyone can poke the buyback; neither step needs the operator. Both shares are on-chain settings the owner can change later, and each change is a public event.
Technical breakdown
- A dividend-accumulator pattern: accFeePerEV tracks fee per share, every position carries feeShare = 1 (hence equal), and a ceiled feeDebt checkpoint set at deposit means a position only earns from acquisitions during its own tenure (_distribute / _pendingFees). Ceiling rounding keeps credited ≤ collected.
- Sources: ownerAcquisitionFeeBps = 100 (1% of each acquisition), ownerSettlementFeeBps = 100 (1% of value when a purchaser keeps the NFT, from the depositor's backing return), and the retained settlement discount when retainedToProtocol = true (the default). Payout is permissionless: anyone can call payoutFees to push the remaining balance to the configured payout address. The hook's trading fee uses a separate fee wallet.
- protocolFeeToTokenBps = 5,000 (50%), set explicitly at deploy: the share of the accrued protocol balance payoutFees sends to the token's buyback reserve instead of the payout address. On the token side the buyback routing is set to 0% depositors / 0% purchasers / 100% burn, so the whole bought amount is burned rather than recycled into rewards. Both are owner-settable and emit events (ConfigSet on the pool, RouteSplitSet on the token). See the $FND page for the buyback mechanism.