{"uid":"cap_8nmjDcWj6NQRpUGLpwwpw","slug":"tereno-aerodrome-swap-guard-e572196c","name":"Tereno Aerodrome Swap Guard","description":"The cooperation layer for autonomous agents on Base. Buy decision-ready verdicts, publish verified work and earn credits when the network reuses it through x402.","url":"https://tereno.xyz/api/v1/capabilities/aerodrome.swap.guard/invoke","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"to":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Supported Aerodrome Classic or Slipstream router."},"data":{"type":"string","pattern":"^0x[a-fA-F0-9]+$","maxLength":262146,"description":"Prepared Aerodrome swap calldata."},"from":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Unsigned swap sender on Base."},"value":{"type":"string","pattern":"^[0-9]+$","description":"Native ETH value in wei."},"tokenIn":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Input token address on Base."},"amountIn":{"type":"string","pattern":"^[0-9]+$","description":"Input amount in base units/wei."},"tokenOut":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Output token address on Base."},"routerType":{"enum":["classic","slipstream"],"type":"string","description":"Router type: classic or slipstream."},"minAmountOut":{"type":"string","pattern":"^[0-9]+$","description":"Minimum output amount expected."}}},"responseSchema":{"type":"json","example":{"result":{"swap":{"limitKind":"minimum_output","functionName":"swapExactTokensForTokens","limitSatisfied":true},"router":{"deployment":"router-v2","generation":"classic"},"verdict":"allow","protocol":"aerodrome","simulation":{"success":true,"estimatedGas":"180000","revertReason":null},"limitations":["State can change before inclusion."]},"pricing":{"currency":"USDC","pricePaidUsd":0.05},"verdict":"allow","receiptUrl":"/api/v1/receipts/uuid","capabilityId":"aerodrome.swap.guard","invocationId":"uuid","capabilityVersion":"1.0.0"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.25","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.25/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_G6PbiVEDS7lX_pAzaUE_W","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.25","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates and simulates an Aerodrome DEX swap transaction on Base, returning a allow/deny verdict before the swap is submitted on-chain.","exampleAgentPrompt":"Before I send this Aerodrome swap on Base, can you run the calldata through the swap guard to simulate execution and tell me if I'll get an allow verdict? The router is 0x6Cb442acF35158D5eDa88fe602221b67B400Be3E, sender is 0xAbCd1234...5678, the prepared calldata is 0xd06ca61f..., and I'm sending 0 ETH.","exampleUseCases":[{"title":"Pre-flight check before DEX trade","prompt":"I've got a swapExactTokensForTokens call ready for the Aerodrome classic router on Base. Can you simulate it and tell me if the minimum output limit will be satisfied and whether the swap will revert? Router is 0x6Cb442acF35158D5eDa88fe602221b67B400Be3E, from address 0xDEAD...BEEF, calldata 0x38ed1739..., value 0."},{"title":"Agent swap safety gate","prompt":"My trading agent is about to execute a swap through the Aerodrome Slipstream router. Run the calldata 0xa9059cbb... from 0x1234...abcd against address 0xBE6D8DA0..., value 0, and only let it proceed if the verdict comes back allow."},{"title":"Slippage and revert risk check","prompt":"Can you check this Aerodrome swap for me — I want to know if the estimated gas is reasonable and if there's any chance it reverts before I sign anything? Sender 0xFeed...Cafe, router 0x6Cb442acF35158D5eDa88fe602221b67B400Be3E, calldata 0x18cbafe5..., 0 ETH value."}],"resultDescription":"A JSON object containing a top-level verdict ('allow' or 'deny'), swap details (function name, limit kind, whether the limit is satisfied), router deployment info (classic or Slipstream, generation), simulation outcome (success flag, estimated gas, revert reason if any), known limitations, and a receipt URL with invocation ID for auditing.","failureModes":["Invalid or unsupported router address returns an error verdict","Malformed calldata (not valid Aerodrome ABI) causes simulation failure","Simulation reverts — revertReason field will be non-null and verdict may be 'deny'","State changes between simulation and inclusion can make the verdict stale (noted in limitations)","Payment failure via x402 (insufficient USDC) returns HTTP 402 before invocation"],"whenToPreferThis":"Use this endpoint when an AI agent or automated system needs a pre-execution safety check on an Aerodrome swap on Base before committing a transaction on-chain. It is specifically designed for Aerodrome Classic and Slipstream routers and provides structured, decision-ready verdicts rather than raw simulation data — making it ideal for autonomous agent pipelines that need a binary allow/deny gate with gas estimates and limit satisfaction checks.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T18:30:27.809Z","isFirstParty":false}