How to claim holder fees

After a token migrates to Uniswap v4, every swap generates trading fees. Those fees do not go to liquidity providers, the LP is burned, so there are no LPs to pay. Instead they flow to PEG holders, distributed by a balance-weighted accumulator inside the PegHook contract.

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), you don't have to do anything to keep accruing.

Fee accrual begins at the block of migration. Tokens held before migration do not accrue pre-migration bonding-curve fees, those stay in the curve contract and are used to seed the Uniswap pool's initial liquidity.

How to claim

  1. Navigate to the token's detail page at peg.fun/t/<address>.
  2. Scroll to the fee section. If you have unclaimed fees above the minimum threshold, a "Claim X.XX ETH" button is enabled.
  3. Click the button and confirm the transaction in your wallet.
  4. 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: multi-transaction claim

If you hold more than 100 objects in a single collection, your claim may be split into multiple transactions via claimRange(). The UI handles this automatically:

  • It detects your object count.
  • It computes the optimal range size.
  • It sequences the transactions, signing each in order.

You'll see multiple wallet pop-ups during a large claim. That's expected. Each transaction claims a slice of your objects' accumulated fees and pushes ETH to your wallet.

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

After graduation:

  • Every buy and sell through DirectSwap pays a small percentage fee.
  • The fee splits between the creator (a small share), the platform treasury (a small share), and the holder accumulator (the majority share).
  • 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.

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.

Related