How it works
Where a Pons creator fee comes from, how it reaches your vault, and how the vault pays it out.
Where fees come from
Every buy and sell on a Pons v2 bonding curve pays two charges on its ETH side: the creator tax, which goes to the creator in full, and the trading fee, which the creator shares with the Pons protocol. Per trade the creator earns:
creator earns = tax + fee × (1 − protocol share)
example: tax 1.5% + fee 1% × (1 − 30%) = 1.5% + 0.7% = 2.2% of each trade
a 1 ETH buy pays the creator 0.022 ETHEach token has its own settings. The calculator reads them from the curve, and Analytics shows what the creator has actually earned, split by buys and sells.
From the curve to the Pons escrow
Fees first collect inside the curve contract. A Pons operator periodically calls sweepFees on the curve, which credits the creator's part to the Pons fee escrow under whoever is the token's creator fee recipient at that moment. The recipient withdraws it from the escrow with claim().
Routing fees to your vault
Pons lets the current fee recipient hand the role to another address in one call, transferCreatorFeeRecipient(token, newRecipient), effective immediately. Onboarding therefore asks for two signatures: one to create the vault through the Feeroute factory, one on the Pons factory to make the vault the recipient.
After that only the vault can move the route, through proposeRoute, the timelock, and executeRoute. A creator cannot quietly point fees back at a personal wallet: the proposal sits on the public report for the whole timelock first.
- Escrow credit recorded for your wallet before the switch stays yours. Claim it from Pons as usual.
- Everything the Pons operator sweeps after the switch is credited to the vault.
Sweeping
sweep() is open to anyone. In one transaction it:
- claims the vault's ETH from the Pons fee escrow,
- takes everything the vault holds except what it already owes recipients,
- divides it by the active shares, in basis points,
- pays each recipient straight away, or adds the share to that recipient's vesting schedule,
- emits
Sweptwith the split version it used, so the report can show which rules applied.
Each payment forwards 50,000 gas. A recipient that reverts or needs more, such as some smart-contract wallets, does not block the others: its share is held for it as claimable balance and can be released later. Rounding dust, under 10 wei, stays in the vault for the next sweep.
Vesting
Each recipient can have its own vesting period, from 0 to 365 days. A vested share unlocks linearly from the sweep that created it. When new fees arrive while older ones are still locked, the vault blends them into one schedule: the new end date is the amount-weighted average of the remaining time and a full new period.
new end = now + (still locked × time remaining + new amount × vesting period)
/ (still locked + new amount)Whatever has unlocked is taken with release(account). Anyone can call it, and it always pays account. A recipient can also send its own share somewhere else with releaseTo(to).
Changing the split
The first split is live as soon as the vault exists, since nothing has been routed to it yet. Every change after that is a proposal:
- The owner calls
proposeSplits. The vault checks the new split against every rule and starts the timelock. - The report shows the proposal, what changes, and a countdown.
- Once the timelock has passed, anyone can call
executeSplits. It sweeps with the old split first, so fees earned under the old rules are paid under them, then activates the new one. - Until then the owner can withdraw it with
cancelSplits. One split proposal and one route proposal can wait at a time.
Auto-sweep
A bot sweeps every vault once an hour. It skips a vault until the fees ready for it, in the vault plus waiting in Pons, reach the owner's minimum (0.001 ETH by default), and it waits when network gas is unusually expensive. It can only call sweep(), which pays the vault's own recipients, so it never touches funds. When the settings database is enabled, owners change the minimum or turn auto-sweep off in Settings by signing a message with the owner wallet; no transaction needed.
The public report
Every vault has a page at /r/<token> that reads straight from the chain: the live split, pending split and route changes with their countdowns, any recipient change the Pons admin has queued, the recipient Pons has on record, every sweep with its transaction, and a CSV export. It comes with a share button, an embeddable badge, and a preview image for links.