Install
openclaw skills install @galleonlabs/galleon-aerodrome-slipstreamAerodrome Slipstream workflow and evidence
openclaw skills install @galleonlabs/galleon-aerodrome-slipstreamReturn the NFT's range, custodian, emissions eligibility, claim estimate, and exact next action. Aerodrome has both classic stable/volatile ERC-20 pools and Slipstream concentrated NFT pools. Identify the model before using any gauge ABI. This recipe covers Slipstream; an ERC-20 LP amount requires the classic pool's own router/gauge flow.
positions(tokenId) and ownerOf(tokenId). Slipstream's pool key uses tickSpacing, unlike Uniswap v3's fee field. Read factory getPool(token0,token1,tickSpacing) and compare the returned pool's token order, spacing and current price. Do not assume fee equals spacing or remains fixed.gauges(pool). Verify gauge pool(), nft(), voter(), token0(), token1() and tickSpacing() against those reads. Read isAlive(gauge) on its voter. A dead gauge is not a deposit candidate even when the pool remains swappable.stakedContains(wallet,tokenId) or stakedValues(wallet). A gauge-owned NFT with no matching depositor record is unresolved custody, not a lost NFT or wallet-owned position. Unknown vault/Sickle ownership requires its withdrawal procedure.For the verified gauge model, staking receives emissions instead of the unstaked position's trading fees. Show these alternatives separately, using the user's range and active liquidity rather than adding both headline APRs. Read rewardToken(), token decimals, periodFinish(), rewardRate() and current range. Out-of-range capital does not earn in-range emissions merely because its NFT is staked.
Read earned(wallet,tokenId) only for a confirmed stake. Treat the result as block/version-specific; inspect whether that implementation requires a reward-growth update for an accurate simulation. Do not send a state-changing update solely to obtain a quote. Simulate the relevant claim path when available.
Current upstream includes depositTimestamp(tokenId) and gauge-factory penaltyRate()/minStakeTimes(pool). These are version-dependent, not promises about every deployed gauge. Confirm deployed selectors/source first. Where supported, compute the earliest penalty-free time and simulate the actual claim/withdrawal. Do not subtract a penalty again if earned already returns net claimable reward. An older implementation without these methods needs its own verified semantics.
approve(gauge,tokenId) if needed, then gauge deposit(tokenId). Re-read custody and depositor membership. Do not substitute an ERC-20 approve or require blanket setApprovalForAll.getReward(uint256 tokenId) overload. The getReward(address account) overload can be voter-restricted. Include reward token, expected net amount, penalty assumptions and gas cost.withdraw(tokenId) returns custody and may collect emissions/fees in the verified implementation. Confirm ownerOf and membership before any manager operation; do not assume a second claim remains necessary.The skill is independently usable through reads and an unsigned official UI/tool handoff. Installation does not authorize signing, approvals or transfers. For an explicitly requested action, use an existing authorized wallet tool, exact terms and simulation; never build a signer here. Do not resend an uncertain deposit or withdrawal. Read the original receipt and both custody records first.
Synthetic NFT 42: owner is verified gauge G; stakedContains(Alice,42)=true; current tick equals tickUpper. Report staked, out of range, not missing. Suppose this deployed version's earned read returns 90 AERO net of a 10% early-claim penalty and penalty-free time is in 1 hour. The present claim estimate is 90, not 81. Compare waiting against market and gas costs without guaranteeing a future 100. For a user-requested exit, prepare withdraw(42) first, then verify Alice owns it before decrease/collect.
Primary sources checked 2026-09-27. Protocol recipes and sources contain the concrete calls. Recheck deployments and API schemas before preparing financial actions; documentation access alone proves no live position or transaction.