Skip to content
Protocol contracts not yet configured for this build
Enter app

Pons V2 integration

Sweeps

A sweep moves accrued fees out of the curve or hook and into the Pons Fee Escrow, where a recipient can claim them. Plouto cannot perform a sweep, cannot force one, and cannot predict when one will happen.

This is the most significant external dependency in the design.

Who can sweep

OperationCallerWhere
sweepPoolFees(poolId, minQuoteOut, minTokensOut)Pons feeSweepOperatorMeme hook
rescuePoolFees(poolId)Pons-permissionedMeme hook
rescueCurveFees(token)Pons factory ownerFactory

None of these is callable by Plouto or by a Plouto role.

What the delay means in practice

Revenue is earned but unavailable

Fees exist and are owed. They cannot be claimed, split, spent on buybacks or paid to stakers until the sweep happens.

Rewards are lumpy

Stakers do not receive a smooth stream. They receive whatever arrives when a sweep lands and the router is called.

A long gap looks like nothing happening

From the outside, an unswept period is indistinguishable from a period with no trading. The distinction is not visible on chain from Plouto's side.

Post-graduation this gets worse

Hook fees may be held in the memecoin rather than in ETH. Converting them to the quote asset happens during the sweep, and sweepPoolFees takes slippage parameters — meaning the operator must choose them sensibly for the sweep to succeed.

If the operator stops running, or runs with parameters that cause reverts, fees accumulate indefinitely.

What Plouto does about it

Three things, all of them honesty rather than mitigation:

  1. Unswept fees are shown as unknown, never estimated. See fee accrual.
  2. Claiming is permissionless, so the moment a sweep lands anyone can pull the fees — no Plouto operator needs to be awake.
  3. The dependency is documented here, in the threat model, and in Pons dependency.

Monitoring

pnpm keeper:route prints the escrow balance every run. A rising escrow balance means sweeps are happening; a flat one at zero means either no trading or no sweeping, and the two cannot be distinguished from Plouto's side.

The status page shows the same figure live under Fees credited in escrow.