{"uid":"cap_TCMJTkGQWxHiKhjEQ0diK","slug":"tereno-transaction-preflight-verdict-6a69d0b8","name":"Tereno Transaction Preflight Verdict","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/tx.preflight/invoke","method":"GET","headers":{},"bodySchema":{"type":"object","required":["to","from"],"properties":{"to":{"type":"string"},"data":{"type":"string"},"from":{"type":"string"},"quote":{"type":"string"},"value":{"type":"string"}}},"responseSchema":{"type":"object","required":["capabilityId","invocationId","verdict","result","receiptUrl"],"properties":{"result":{"type":"object","properties":{"summary":{"type":"string"},"evidence":{"type":"object","additionalProperties":true},"limitations":{"type":"array","items":{"type":"string"}},"reasonCodes":{"type":"array","items":{"type":"string"}},"computedAtBlock":{"type":"integer"},"validUntilBlock":{"type":"integer"}}},"pricing":{"type":"object","properties":{"listPriceUsd":{"type":"number"},"pricePaidUsd":{"type":"number"},"creditAppliedUsd":{"type":"number"},"actualCacheStatus":{"enum":["hit","partial","miss"],"type":"string"},"quotedCacheStatus":{"enum":["hit","partial","miss"],"type":"string"}}},"verdict":{"enum":["allow","review","block"],"type":"string"},"nextCall":{"type":"object","nullable":true,"properties":{"watch":{"type":"object","nullable":true,"additionalProperties":true},"recheck":{"type":"object","properties":{"url":{"type":"string"},"body":{"type":"object","nullable":true,"additionalProperties":true},"method":{"enum":["GET","POST"],"type":"string"},"payment":{"enum":["x402"],"type":"string"},"capabilityId":{"type":"string"},"notBeforeBlock":{"type":"integer"},"listPriceUsdCeiling":{"type":"number"}},"additionalProperties":true},"validForSeconds":{"type":"integer","nullable":true},"validUntilBlock":{"type":"integer"}},"description":"The validity boundary of this answer, as structure rather than prose. `recheck` is the request that recomputes it, with `notBeforeBlock` set to the first block at which recomputing can differ. `watch` names the capability that reports what changed between two observations of the same subject, and is null when this capability already is that. Null for answers with no block window. Descriptive only: nothing here is required, and the answer is complete for the window it states.","additionalProperties":true},"receiptUrl":{"type":"string"},"capabilityId":{"type":"string"},"invocationId":{"type":"string"},"evidenceReference":{"type":"object","description":"Portable provenance/reproduction pointer. Present on every capability response; private artifacts explicitly state shareable=false.","additionalProperties":true}}},"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_e0mcczQ2eJn878J31t8z-","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":"Runs a preflight risk check on a blockchain transaction (from/to/value/data) and returns a decision-ready allow/review/block verdict with supporting evidence.","exampleAgentPrompt":"Before I sign this transaction, run a preflight risk check on it — the sender is 0xABC...123, the recipient is 0xDEF...456, and the value is 0.5 ETH with calldata 0x...789. Tell me if it's safe to proceed.","exampleUseCases":[{"title":"DeFi swap safety check","prompt":"I'm about to swap 1000 USDC for ETH on a DEX — the contract address is 0xUniswap...456 and my wallet is 0xMyWallet...789. Can you run a preflight risk verdict on this transaction before I sign it?"},{"title":"Block suspicious recipient transfer","prompt":"Someone is asking me to send 2 ETH to address 0xSuspect...321 — can you do a preflight check on that transaction from my wallet 0xMyWallet...789 and tell me if it should be allowed, reviewed, or blocked?"},{"title":"Agent approves on-chain action autonomously","prompt":"Before my agent submits this contract call from 0xAgent...111 to 0xContract...222 with calldata 0xabcdef, get a preflight verdict from Tereno so we only proceed if the verdict is 'allow'."}],"resultDescription":"Returns a structured verdict object containing: a top-level decision (allow, review, or block), a human-readable summary, an evidence object with supporting on-chain data, reason codes explaining the verdict, the block range for which the verdict is valid, cache status and pricing breakdown, and a receipt URL for auditability. An evidenceReference is also included for portable provenance.","failureModes":["Missing required 'to' or 'from' address returns a validation error","Invalid Ethereum address format causes a 400 bad request","Expired or invalid price quote may cause payment rejection","Cache miss increases cost to full list price","Block range expiry means the verdict may be stale and must be re-fetched","Network congestion on Base may delay block-based validity computation"],"whenToPreferThis":"Choose this endpoint when an AI agent needs a decision-ready risk verdict on an EVM transaction before execution — especially on the Base network — and requires structured reason codes and evidence rather than a raw simulation. Prefer it over generic RPC simulation when you need a human-readable allow/review/block output, audit receipts, and credit-based caching for repeated checks on the same transaction patterns.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:32:50.171Z","isFirstParty":false}