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.