Fees & protocol revenue
Deposits earn an equal share of acquisition fees while active; 100% of current in-protocol fees funds FWA buybacks.
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, FWA 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 calls payoutFees(). That call moves 100% into the FWAToken buyback reserve, with no current remainder sent to the configured owner 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% FWA trading fee on buys and sells, routed directly to its configured fee wallet.
Mainnet protocol-fee sharing
The current mainnet configuration redirects 100% of the first three in-protocol fee streams to the FWAToken buyback reserve, leaving no owner-payout remainder for the configured splitter. If the protocol-fee share is changed for future receipts, that splitter's 70% owner-side / 30% NFT allocation pays 90% of the owner side to the primary recipient and 10% to a fixed secondary recipient. The NFT share is divided equally across the eligible soulbound NFT ids captured at deployment, and the current owner of each eligible, unburned NFT claims that id's cumulative ETH share. The split can change for future receipts only, and after one year the splitter owner may close claims and sweep the remaining balance3. The separate 1% FWA trading fee is not part of this split.
All accrued protocol fees are currently routed into the FWAToken buyback reserve4, turning the protocol's revenue into buy pressure for the token. The separate 1% FWA buy/sell trading fee is not included in this allocation.
Technical breakdown
- 1.A dividend-accumulator pattern:
accFeePerEVtracks fee per share, every position carriesfeeShare = 1(hence equal), and a ceiledfeeDebtcheckpoint set at deposit means a position only earns from acquisitions during its own tenure (_distribute/_pendingFees). Ceiling rounding keeps credited ≤ collected. - 2.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 whenretainedToProtocol = true. Payout is permissionless: anyone can callpayoutFeesto move 100% of the accrued balance into FWAToken's buyback reserve. No current remainder reaches the owner payout address or its configured splitter. The hook's trading fee uses a separate fee wallet and is excluded from this allocation. - 3.The splitter fixes its eligible id cap and active-supply denominator when it is deployed. Later mints and remints above that cap are excluded, and a burned snapshot id cannot claim. The initial 70% owner-side / 30% NFT allocation may be changed from 0% through 100% owner-side share, but only ETH received after a change uses the new split. The one-year wind-down is an earliest sweep time, not an automatic expiry; the first successful sweep permanently closes both holder and recipient claims.
- 4.
protocolFeeToTokenBps = 10000(100%) sets the share of accrued protocol fees recycled into the FWA buyback reserve instead of the owner payout. CallingpayoutFees()funds the reserve; a separate permissionlessbuyback()call executes the purchase. See the FWA page for the complete mechanism.
