LLMs.txt: agent-readable Markdown index of this site at /llms.txt

Collect and Compound Fees

Trigger fee collection on an Instant Launch position and compound part of the fees back into it.

An Instant Launch position is held permanently by the FeeSplitter. Two permissionless actions apply to it: collecting fees from the pool and pushing each recipient its share, and increasing a position in its custody.

Collect Fees

collectFees collects the accrued fees of each position from the PoolManager and distributes them to the recipients. The splits are immutable, so the caller cannot redirect them.

Recipients that have a callback receive the token ID and the information about the share of the fees sent to them, so they can be attributed per position.

Compound Fees

The share of fees to be compounded accrues to a CompoundingClaimRecipient.

For a handful of Crowd Launch pools, claim must be called on an alternative entrypoint rather than the CompoundingClaimRecipient listed against the FeeSplitter. Those positions can be located from the PositionGuarded event emitted by that entrypoint contract, at 0x2EB0b14814dCa26Df8b8AD729F8F70aD3399E89e on Robinhood Chain.

event PositionGuarded(uint256 indexed guardedTokenId, address indexed compounder);

Any address implementing IClaimExecutor can call claim, which:

  1. transfers the full token and native amounts attributed to that position to msg.sender
  2. calls onClaimed back on msg.sender
  3. requires that the position's liquidity has grown by at least minLiquidityIncrease, otherwise reverting with NotEnoughLiquidityAdded

Collect the position before compounding it. increaseLiquidity reverts with UncollectedFees while fees are still pending, so a single transaction should call collectFees before claim.

Caller tip

A call to claim transfers the caller all balances attributed with the position, while the liquidity it must add is fixed.

amounts(tokenId) returns what is currently claimable for a position (not including available fees inside the PoolManager); minLiquidityIncrease() returns the minimum liquidity units that the call must add

Where to Go Next