Iterun is the compound layer on Pons, on Robinhood Chain. A Pons launch that names Iterun as the tax recipient keeps buying its own token for stakers. Those tokens are bought on the market. Nothing is minted.
Why it exists: sitting in ETH or the pair leaves you with the same quote after every trade. Stake the launch token instead. Harvest spends creator tax on a market buy, then streams those tokens into the vault. Stay staked and later harvests keep landing on the same position.
Fees
What a trade pays
Two slices leave a Pons trade. Iterun only ever claims the creator tax. The protocol tax stays with Pons.
Slice
Who
Where it goes
~1%
Pons protocol tax
Stays with Pons. Iterun never claims it.
1–10% (default 5%)
Creator tax
Credited in Pons fee escrow to this token's Harvester. You set the rate at launch, clamped to the live Pons cap (Iterun also caps at 10%).
Tax does not jump into the vault on each trade. Pons holds it in escrow until someone harvests. That is deliberate: a harvest is a sized market buy with slippage protection, not a drip on every swap.
Harvest
Anyone can poke a harvest
Harvest is permissionless. There is no admin button and no on-chain clock. Anyone can submit harvest on that token's Harvester while the token is still on the bonding curve. The app poke on a token page is the same call.
Why a signature then? The caller is not gated. The order is. Iterun's policy signer attests quoteAmount, minTokensOut, deadline, and nonce (EIP-712). That stops a poke from buying at zero or draining escrow in one unbounded swipe. The hosted app asks /api/harvest-order for that signature, then any wallet can send the transaction.
What one harvest does
Read escrowCreator tax sits in the official Pons fee escrow, credited to the Harvester. On the bonding curve, a separate sweepFees (anyone) can fill escrow first. After graduation that call reverts AlreadyGraduated — tax accrues on the Pons meme hook. Poke first tries permissionless distributeQuoted, then Iterun hookSweep when that contract is feeSweepOperator, then harvests escrow. Harvest itself does not silently sweep.
Claim a sized amountThe signed order claims exactly quoteAmount of pair quote (ETH or the launch pair token).
Split, then buyOf the claimed quote: 85% to this token's vault, 5% reserved for $ITERUN, 10% to INFRA. Vault quote is a curve buy while the bonding curve is live, or raw quote after graduation. After a curve buy the tokens stream to stakers; after graduation a signed compound buys on the pool.
Before and after the curveHarvest keeps claiming creator tax for the whole life of the token. On the bonding curve it market-buys into the vault. After graduation it routes quote to the vault; a later signed compound buys on the Uniswap v4 pool. See After the curve.
Compound
Vault quote becomes a market buy
After graduation, harvest sends pair quote into the vault instead of buying on the curve. That quote sits there until anyone pokes a signed compound. The call spends the quote on a Uniswap v4 market buy of the vault token — $ITERUN on this desk — and streams the bought tokens to whoever is staked.
Those bought tokens sit in the vault as rewards until a staker claims or restakes them — they are not circulating in wallets and they are not staked principal. The $ITERUN desk shows lifetime harvest + compound buys as a share of total supply ("Bought from chart").
Compound is permissionless, same as harvest. The order is signed so a poke cannot buy at zero. If the vault has no pending quote, the poke has nothing to spend. Harvest first, then compound.
Restaking your own earned tokens is a different call (compoundRewards) inside the staking module. See Vault.
Split
Where harvested tax goes
These bars are shares of creator tax the Harvester claimed, not of the whole trade, and not of Pons protocol tax. They match IterunFeeSplits.PONS_INFRA_SHARE_BPS (1000) and CHILD_PARENT_BUYBACK_SHARE_BPS (500).
Child token, with INFRA set (mainnet): 85% vault, 5% $ITERUN, 10% INFRA. The 5% is quote, not an instant $ITERUN market buy. Until parentToken is pinned, it sits as pendingParentBuyback. After pin, a flush moves the quote into the $ITERUN vault; a later signed compound is what actually buys $ITERUN.
When the harvested token is $ITERUN itself, the 5% self-peel is skipped: 90% vault / 10% INFRA.
Child tokens
85 / 5 / 10
Of the creator tax this Harvester claims.
85%10%
85% Holders of that token
5% $ITERUN buyback
10% INFRA
Main token
90 / 10
No 5% self-peel when $ITERUN is the harvested token.
90%10%
90% $ITERUN holders
10% INFRA
Pons protocol tax is not in these bars. Mainnet has INFRA set, so the child bar is 85 / 5 / 10. If the owner clears infraRecipient, that harvest becomes 95 / 5. Until $ITERUN is live, the 5% accrues on the converter, then buys into its vault.
Factory owner can call setInfraRecipient(address(0)), which turns off the 10% INFRA peel so a child harvest becomes 95% vault / 5% $ITERUN. That is a live config change, not a hidden extra tax. Owner can also handoffCreatorFeeRecipient and point later creator tax away from Iterun. Neither call moves staked principal.
Launch
How a token is hooked up
You never paste a fee-recipient wallet. The Launch page predicts the Harvester clone before the token exists and writes that address into Pons as creatorFeeRecipient in the same transaction that creates the token.
Reserve the HarvesterThe factory deploys the CREATE2 clone from your wallet and salt before launch. The clone stays uninitialized, and that salt cannot be reused.
Launch on PonsName, ticker, pair, compound tax. Creator tax already points at the predicted Harvester. Iterun launches turn Pons holder-buyback sharing off (buybackEnabled: false) so the compound path is Iterun, not a second Pons splitter.
Activate clone and vaultAfter Pons lands, createAndActivate validates the launch, initializes the reserved Harvester, and creates its vault. Only the launch creator can finalize.
Why it keeps compounding
Once that wiring lands, every later trade on the curve credits creator tax to the same Harvester. You do not re-point fees. You do not keep a bot of your own. Anyone can harvest into the vault for as long as the token is on the curve and the Harvester is still the Pons recipient.
That is the default Iterun loop. It is not a literal forever-lock: the factory owner can hand the Pons fee recipient to another address. Users cannot. The vault has no admin withdraw. Staked principal stays yours to unstake.
Token already on Pons
Add a pool opens the same vault on an existing Pons v2 token. If the creator is still the fee recipient, the attach flow moves that recipient to the Iterun Harvester and activates it. After that, harvesting and staking work like a create launch.
Vault
Stake to receive the buys
The vault holds the launch token. Sitting in ETH or the pair does nothing. Deposit the token (stake) so harvest buybacks can find you.
Principal is what you deposited. Unstake returns that amount. You can unstake from the next block. Same-block stake and exit is blocked, so a flash-loan cannot farm a harvest in one block.
Rewards are extra launch tokens the vault received (harvest buys, or vault compound buys). They do not vest on a cliff. Each chunk streams for one day to current stakers, in proportion to how much they have staked. Share is stake times time in that stream, not a snapshot at poke.
Claim with getReward to your wallet, or compoundRewards to restake earned tokens (that restake also resets the same-block unstake lock).
If nobody is staked when a harvest lands, bought tokens sit in the vault and start streaming when the first stake arrives.
Pair quote can also sit on the vault (pendingQuote) if the vault is a Pons holder and dividends pay the pair asset. That quote is not launch tokens yet. A signed compound spends it on a buy (bonding curve, or the v4 pool after graduation).
Release
How tokens show up in a wallet
Iterun does not unlock a team allocation and does not run a vest. Supply comes from Pons. Iterun only buys tokens that already exist and routes them.
What
When you can take it
How
Launch tokens you bought
Immediately, on Pons
Bonding curve, then the Uniswap v4 pool after graduation. Iterun does not gate this.
Staked principal
From the next block after your last stake
unstake / exit. Same-block in and out reverts.
Harvest / compound buybacks
Streamed over 24 hours after each chunk lands
Accrue while you stay staked, then getReward or restake.
Pons LP from graduation
Per Pons locker rules
Locked by official Pons PonsV2LaunchLocker. Iterun does not hold those keys.
Leftover creator tax after graduation
While the Harvester is still the fee recipient
Same harvest loop: quote is claimed, split, and sent to the vault. Signed compound then buys on the v4 pool. flushTerminalEscrow is only an emergency path after a handoff.
Graduation
After the curve
Pons graduates a launch off the bonding curve onto a Uniswap v4 pool. Iterun does not create that pool and does not lock the LP. It only reads the Pons phase.
On the curve (phase 0):harvest claims escrow and buys on the curve into the vault. This is the main compound loop.
After graduation: Pons creator tax keeps accruing on the meme hook. Poke moves it into escrow via distributeQuoted when the live hook exposes it, or via Iterun hookSweep once Pons points feeSweepOperator at that contract (sweepPoolFees with minOut 1). harvest still claims and splits. The child share is quote sent to the vault. A signed compound then buys on the Uniswap v4 pool. The loop does not end at graduation.
Terminal escrow: leftover creator tax can still be flushed to whoever Pons currently lists as fee recipient, once the Harvester has been handed off. Normal operation does not hand off at graduation.
So a token launched with the Iterun Harvester compounds rewards for stakers on the curve and after the pool exists. Launches with Pons buybackEnabled are rejected — Iterun is the buyback path.
Roles
Who can do what
Action
Who
Notes
Stake / unstake / claim rewards
Anyone who holds the token
Unstake from the next block after your last stake.
Poke harvest or vault compound
Anyone
Needs a valid policy-signer order. The app fetches it.
Sweep curve fees, activate a predicted clone
Anyone
No signature. Preconditions still apply (recipient, launch exists).
Open a vault on an existing Pons token
Anyone
Add a pool. Attaching the Harvester as fee recipient needs the current creator (or a later owner handoff).
Rotate policy signer, pin $ITERUN
Factory owner
Users cannot pin or rotate the harvest-order signer.
setInfraRecipient
Factory owner
Sets or clears the 10% INFRA wallet. Zero makes child harvests 95% vault / 5% $ITERUN. Does not touch staked principal.
handoffCreatorFeeRecipient
Factory owner
Points later Pons creator tax away from the Harvester. How Iterun would stop receiving new yield for that token.
Onchain
Addresses
Robinhood mainnet (4663). Iterun contracts below also appear on Verify.
IterunPonsHarvesterFactory
Deploys each token's Harvester clone and points Pons creator tax at it.