Fee structure
Every basket charges up to three fees, all set by its creator at deploy time, all capped, and all split 90% to the creator / 10% to the protocol treasury. Fees are denominated in the basket's own shares, and the exact numbers are shown before you confirm any transaction.
The three fees at a glance
| Fee | Cap | When it's charged | Who pays |
|---|---|---|---|
| Entry | 3% (300 bps) | Every time shares are minted (buy — zap or in-kind) | The buyer |
| Exit | 1% (100 bps) | Every time shares are redeemed (sell) | The seller |
| Management | 3% per year (300 bps/yr) | Continuously, streamed via dilution | All holders, over time |
bps = basis points; 100 bps = 1%. The protocol's cut of every fee is fixed at 10% (PROTOCOL_CUT_BPS = 1000); the remaining 90% goes to the creator.
The 90 / 10 split
Whenever a fee is collected, it is divided:
protocol share = fee × 10% → protocol treasury
creator share = fee × 90% → basket creator
This holds for all three fees. The creator earns the lion's share as the incentive to build and maintain good baskets; the protocol takes a small cut to sustain itself.
Entry fee (on buying)
When you buy, the fee is taken out of the shares you'd otherwise receive:
feeShares = grossShares × entryFeeBps / 10000
you receive = grossShares − feeShares
The feeShares are minted to the creator (90%) and treasury (10%).
Example — 2% entry fee, buying 100 shares' worth:
- Gross shares: 100
- Entry fee (2%): 2 shares → creator 1.8, treasury 0.2
- You receive: 98 shares
Exit fee (on redeeming)
When you redeem, a slice of the shares you burn is kept as the fee:
feeShares = sharesIn × exitFeeBps / 10000
burned = sharesIn − feeShares (this is what returns underlying to you)
The feeShares are transferred (not burned) to the creator (90%) and treasury (10%), so you receive the underlying for sharesIn − feeShares.
Example — 1% exit fee, redeeming 100 shares:
- Shares in: 100
- Exit fee (1%): 1 share → creator 0.9, treasury 0.1
- Redeemed for underlying: 99 shares' worth
Management fee (on holding)
The management fee is an annualized rate that accrues continuously as newly-minted shares, split 90/10. Because new shares are minted to the creator/treasury, existing holders are gently diluted over time — you're never charged a separate payment; your slice of the vault just shrinks very slowly.
feeShares = totalSupply × mgmtFeeBpsPerYear × elapsedSeconds / (10000 × 365 days)
It accrues on every mint or redeem, and anyone can also poke it with accrueMgmtFee(). The math uses floor division, so it never over-charges. (Frequent accrual compounds a hair above the nominal rate — at the 3% cap the contract bounds this at a fraction of a basis point per year, i.e. negligible.)
Example — 1%/yr management fee, holding for one year: roughly 1% of your share value is diluted away over the year (≈0.083%/month), split 90/10 to creator/treasury.
What you'll actually see
The app previews every fee before you confirm:
- On a buy, it shows the entry fee and the net shares you'll get.
- On a sell, it shows the exit fee and the net proceeds.
- On each basket page, the full fee schedule (entry · management/yr · exit) is displayed.
Gas
Beyond protocol fees, you pay the network's gas for your transaction (Robinhood Chain gas is very cheap). One-click zaps also incur the swap price impact of trading through Uniswap v4 liquidity — shown as a price-impact figure in the quote, and separate from the protocol fees above.
Caps are enforced on-chain
A basket can never charge more than the caps: the Basket contract reverts at creation if any fee exceeds ENTRY_FEE_CAP (300), EXIT_FEE_CAP (100), or MGMT_FEE_CAP (300) bps. Because baskets are immutable, the fees you see when you buy are the fees for the life of your position.