Fees: the 0.30% baseline, LPs, builders and $HCAT stakers

The split is fixed in the hook. Nobody can change it, the owner included.

Cat's fee fLP feeHook cut, ETH sideBuilder$HCAT stakers
f ≤ 0.30%f000
f > 0.30%, e = f - 0.30%0.30% + 0.88e0.12e0.10e0.02e

Example from the live check: the Calm house cat priced a USDG to ETH swap at 0.7278%. The excess is 0.4278%; LPs got 0.6764%, the hook took 0.0514% of the ETH that came out, 10/12 of it to the builder and 2/12 to stakers.

Builders

The builder's cut accrues in the hook per builder address, across every pool that adopted its cats. claimBuilder() pays it in ETH at any time; the cat's page shows what is waiting.

$HCAT stakers

Stake $HCAT and receive 2% of the fee every cat earns above 0.30%, across all HookCat pools, in ETH, pro rata to stake, claimable at any time. The hook accrues the stakers' cut in ETH; forwardStakers(), which anyone can call, pushes it to the $HCAT StakeShareDistributor, a dividend-per-share contract: each ETH that arrives is shared over the $HCAT staked at that moment. The owner sets the distributor once with setStakerSink; cuts earned before that wait in the hook and go to the first stakers.

The leaderboard

Cats are ranked by the ETH they earned for LPs above 0.30% over 7 days, read from Priced events: for each swap, the ETH side times the LP fee minus 0.30% when positive. It is measured swap by swap against the same swap at 0.30%; the volume a 0.30% pool would have had is not modelled. New pools default to the top cat and the adoption list is sorted the same way.