How to claim holder fees
Every swap pays a fee, both before and after a token migrates to Uniswap v4. Part of that fee flows to PEG holders, distributed by a balance-weighted accumulator inside the PegHook contract. The pool also charges its own separate liquidity fee that is real and does not reach this accumulator at all — see What LP burn means for where that share actually goes.
This page is the operator's manual for claiming your share.
How fees accrue
The hook tracks each holder's fee share using a balance-weighted accumulator. Your share is proportional to:
- Your PEG balance, and
- How long you've been holding it.
Holding more PEG and holding it longer earns you more fees. The accumulator updates on every swap that touches your balance (buys, sells, transfers), automatically, with no action required from you — however many objects you hold.
The 100-object limit is gone. This page used to warn that holding more than 100 objects in one collection meant the system never registered your weight, so you earned nothing until you manually pressed "Settle" — and that your share went to the platform treasury until you did. That was true, and it was a real defect, not a design: it also meant your weight stopped growing with age even after you settled. It is fixed. A 400-object holder now accrues exactly like a 1-object holder, at the same cost, with no Settle step. If you settled in the past, nothing about that is undone; you simply never have to do it again.
A holders' share exists on both sides of migration. Before migration, the bonding curve already pays holders 1.0% of every trade (in addition to the creator and treasury shares). Migration changes the split, it doesn't switch on a fee that didn't exist before. One edge case: the very first buy on a brand-new pool can't pay a holders' share, because at the instant the fee splits, that buyer isn't registered as a holder yet — that single trade's holder share goes to treasury instead. From the next qualifying buy on, it works as described above.
How to claim
- Navigate to the token's detail page at
peg.fun/t/<address>. - Scroll to the fee section. If you have unclaimed fees above the minimum threshold, a "Claim X.XX ETH" button is enabled.
- Click the button and confirm the transaction in your wallet.
- ETH is sent directly to your wallet in the same transaction. There is no separate withdrawal step.
Minimum claim threshold
The minimum claimable amount is 0.003 ETH. This guard prevents sub-gas claims, transactions where the gas you pay would exceed the ETH you receive.
If your pending balance is below 0.003 ETH, the claim button is disabled and shows your accumulated amount as informational text. The fees continue accruing until they cross the threshold; once they do, the button enables automatically.
Don't try to claim through direct contract calls with raw tools. The claim function expects a specific encoding that peg.fun's UI handles correctly. Manual calls can fail or pay more gas than necessary.
Large holders
Nothing special applies to you any more. There is no object-count threshold, no Settle step, and no multi-transaction sequence to sign.
Claiming costs the same whether you hold one object or four hundred, because the contract no longer walks your objects one by one to work out what you are owed — it reads two running totals. Measured: 107,624 gas to claim on 1 object, 107,606 on 200.
claimRange() still exists so that anything already built against it keeps working, but it now
does exactly what claim() does and ignores the range you pass it.
Fee transparency
Pending fees for any address are public. You can:
- Check your own pending balance on the token detail page (always visible if connected).
- Check any address's pending balance by querying the PegHook contract directly with that address.
- Verify the accumulator math independently, the per-block share is a public function on the hook.
There is no off-chain piece of this. Everything is on-chain and verifiable.
What fees a token earns
Before graduation, every trade on the bonding curve pays 2.5% total, split creator / treasury / holders. After graduation, every trade pays 2.5% total too, but it splits five ways: creator, treasury, and holders (the three shares this page is about) through the hook, plus a separate pool fee that goes to liquidity rather than to holders — see What LP burn means for where that share goes and why it isn't yours to claim here.
The exact splits are visible on the token's detail page under "Mechanics".
The numbers are locked at deploy time. They can't be raised by the creator post-graduation, the contract is renounced.
What can go wrong
- You claim before crossing 0.003 ETH. The UI prevents this, the button stays disabled.
- A claim transaction reverts. Usually a gas issue or a chain congestion problem. Re-submit and it should land.
- You sell your PEG before claiming. Your accumulator slot updates on every transfer, so by the time you sell, your pending fees are already up-to-date. You can claim after selling, the pending balance stays in the accumulator until you trigger the claim.
- You drop below the eligibility floor. Earning requires holding at least 3 PEG. It is a switch, not a slope: at 2.9 PEG you earn nothing at all, however many objects you hold, and you resume earning from the moment you cross back over — not retroactively for the gap.
What you can't do
- You can't transfer your unclaimed fees to another wallet directly. The accumulator is bound to your PEG balance, selling moves the fee slot forward but doesn't migrate it to a new address.
- You can't claim fees for a token you never held. The accumulator only credits addresses that received PEG through DirectSwap (or via transfer from a holder).
- You can't force a claim for someone else. Each holder triggers their own claim.