Fees

Every trade pays 5 % by default, on buys and on sells, from the market's 11th block for the rest of its life; the first ten blocks run the anti-snipe described below. Since 2026-10-05 the rate, its split and the anti-snipe are onchain settings of StockFun's owner, set on the hook (setTaxSettings): a change applies from the next swap, on every pool. The figures on this page are the defaults. Since 2026-10-02 the hook is also upgradeable by StockFun's owner: see Trust model.

A launched market

5.00 %  total tax
├─ 2.00 %  market treasury        → tokenized stocks → airdrop to holders
├─ 2.00 %  creator                → ETH
├─ 0.50 %  team                   → ETH
└─ 0.50 %  $STOCKFUN buyback      → ETH → buy → burn

The $STOCKFUN market

The protocol token's market has no external creator. That line goes to the team instead:

5.00 %  total tax
├─ 2.00 %  $STOCKFUN treasury     → tokenized stocks → airdrop to holders
├─ 2.50 %  team                   → ETH
└─ 0.50 %  $STOCKFUN buyback      → ETH → buy → burn

The total is identical under both, and the treasury share is the same in both: one setting, 2.00 % by default, covers both schedules, and every piece of the product's communication rests on it. The buyback takes what the other lines leave; the setting refuses a schedule whose lines exceed the tax.

The full cost of a swap

StockFun pools charge no Uniswap LP fee by default (decision of 2026-09-29): the hook's tax is the whole cost of a trade.

5.00 %  hook tax
0.00 %  Uniswap LP fee
────────
5.00 %  total cost, per direction

A round trip therefore costs 9.75 % (1 − 0.95²), before any price impact, at the default tax. The figure is displayed in the product rather than hidden: a 5 % tax is high, and the only honest way to defend it is to show where it goes. Until 2026-09-29 the pools also charged the standard 0.30 % LP fee, which brought a round trip to about 10.3 %.

Since 2026-10-05 the LP fee is part of the launch settings, zero by default. A change applies to the markets created afterwards: each pool keeps the LP fee it was created with. A pool created with one pays it to its locked positions on every swap; when the lock collects it, the ETH side is split between the market's vault, the team and the creator (the team on $STOCKFUN), 50 %, 25 % and 25 % by default, and the token side is burned. Anyone can trigger a collection (collectFees); the keeper does, once a day, for every pool created with an LP fee. Each share is paid on its own: a vault that refuses its share, or a hook that refuses the creator's, leaves that share kept in the lock for its recipient, and anyone pays it later (payOwed), the keeper every cycle. A team wallet that refuses its share sends it to the vault instead.

The opening blocks

A new market's first blocks run under a separate regime, described in The hook and anti-snipe. With the default settings, the tax starts at 80 % in the opening block and falls by 8 points per block, down to the normal 5 % from the 11th block. The creator's launch buy and the addresses on the creator's whitelist pay the normal 5 %.

The part above 5 % goes to the market's treasury; on the $STOCKFUN market, to the team's claimable fees. Since 2026-10-05, if the market's vault refuses it, the hook keeps it as owed to that vault, like the treasury line (below). It is a deterrent, not a revenue line: it exists only to make sniping the opening blocks unprofitable.

Where the money actually goes

Line Destination Possible exit
Treasury The market's TreasuryVault, during the trade; if the vault refuses it, a debt on the hook, owed to that vault Airdrop to holders, pro rata; emergency mode, at once. A debt is paid to the vault by payTreasury, callable by anyone
Creator A pull balance on the hook, per market claimCreatorFees, one transaction per market; claimCreatorFeesTo sends it to another address of the creator's choosing
Team A balance on the hook, owed to the team wallet claimTeamFees(), callable by anyone; once paid, spendable; pays infrastructure and keeper gas
Buyback A balance on the hook, owed to the BuybackBurner Pulled at the start of each burn, or sent by anyone with claimBuybackFees(); buys $STOCKFUN and sends it to 0xdEaD, no other path

Only the treasury line moves during the trade. Since 2026-10-01 the other three wait on the hook until they are claimed, outside any trade: no fee wallet can block a trade, and a wallet that refuses ETH only delays its own payout. Before, the team and buyback lines were sent during the trade.

Since 2026-10-05 a vault that refuses its line no longer blocks a trade either, for instance after a faulty upgrade of that vault: the hook keeps the amount as owed to that vault (treasuryOwed), with an event, and every buy and sell goes on. Anyone pays the debt to that vault with payTreasury once it takes ETH again, and the keeper tries every cycle. Until then such a vault halted its market's trading, sells included.