{"api":"v1","generated_at":"2026-09-16T01:58:14.510Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/agentpay-tools-tools-pre-trade-check-call-cf62c1","pinned_page":"https://tollindex.com/e/agentpay-tools-tools-pre-trade-check-call-cf62c1/at/2026-09-15T21-20Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-09-15T21:20:12.737Z","snapshot_stamp":"2026-09-15T21-20Z","endpoint":{"slug":"agentpay-tools-tools-pre-trade-check-call-cf62c1","canonical_url":"https://agentpay.tools/tools/pre_trade_check/call","resource":"https://agentpay.tools/tools/pre_trade_check/call","http_method":"POST","type":"http","x402_version":2,"registries":["cdp"],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Pre-trade risk check for AI agents trading crypto: live orderbook slippage at YOUR size, side-aware funding carry, open-interest crowding, and optional contract security — composed into a single ok/caution/avoid verdict with per-factor reasons and raw data embedded. Answers 'is this trade sane?' before trading, not after. Replaces four API integrations plus the judgment layer.","service_name":"AgentPay Pre-Trade Risk Check","declared_category":null,"declared_tags":["trading","trade","risk","slippage","pre-trade-check"],"route_template":null,"registry_updated":"2026-09-14T15:33:02.295Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"pre trade check call","category":"market-data","first_observed_by_toll":"2026-09-10T19:08:24.178Z","last_observed_by_toll":"2026-09-15T21:20:12.737Z","observation_began":"2026-09-10"},"presence":{"listed_now":true,"first_absent_at":null,"delisting_confirmed_at":null,"events":[{"registry":"cdp","at":"2026-09-10T19:08:24.178Z","event":"listed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.01 USDC","amount_units":0.01,"decimals_known":true,"pay_to":"0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7","scheme":"exact"}],"counters":{"observed_at":"2026-09-15T21:20:12.737Z","calls_30d":36,"unique_payers_30d":11,"last_called_at":"2026-09-14T15:33:01.711Z"},"validation":{"latest":{"observed_at":"2026-09-15T06:35:56.951Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-09-15"},"uptime":[{"days":7,"observed":5,"passed":5,"ratio":1},{"days":30,"observed":5,"passed":5,"ratio":1},{"days":90,"observed":5,"passed":5,"ratio":1}],"history_90d":[{"observed_at":"2026-09-15T06:35:56.951Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-15","state_changed":false},{"observed_at":"2026-09-14T06:04:46.677Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-14","state_changed":false},{"observed_at":"2026-09-13T05:56:37.925Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-13","state_changed":false},{"observed_at":"2026-09-12T08:13:53.178Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-12","state_changed":false},{"observed_at":"2026-09-11T12:31:08.567Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-11","state_changed":true}]},"seller":{"wallet":"0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7","page":"https://tollindex.com/seller/0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7","endpoints":3,"hosts":1},"reports":0,"registry_record":{"cdp":[{"tags":["trading","trade","risk","slippage","pre-trade-check"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2","assetTransferMethod":"eip3009"},"payTo":"0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7","amount":"10000","scheme":"exact","network":"eip155:8453","mimeType":"application/json","resource":"https://agentpay.tools/tools/pre_trade_check/call","description":"One-call pre-trade sanity check: 'I want to long $X of SYMBOL — is now sane?' Combines live orderbook slippage at YOUR size, cross-exchange funding (carry cost), open-interest crowding, and contract security (GoPlus) into a single ok/caution/avoid verdict with a per-factor breakdown. Major ERC-20 addresses (LINK, UNI, ARB, OP, AAVE, PEPE, SHIB) resolve automatically; native assets (BTC, ETH, SOL, ...) report security n/a; an unrecognized token without token_address reads 'unknown' and caps the verdict at caution — an unscreened contract can never read 'ok'. Replaces four API integrations and the judgment layer on top of them. Raw component data embedded so you can apply your own thresholds.","outputSchema":{"input":{"type":"object","required":["symbol"],"properties":{"side":{"enum":["long","short"],"type":"string","default":"long","description":"Trade direction (funding carry is side-aware)"},"symbol":{"type":"string","description":"Asset to check, e.g. 'ETH', 'BTC', 'SOL'"},"size_usd":{"type":"number","default":10000,"description":"Intended position size in USD (drives the slippage check)"},"token_address":{"type":"string","description":"Optional ERC-20 contract address for the GoPlus security scan. Auto-resolved for major tokens; required for a full verdict on tokens the resolver doesn't know (otherwise security reads 'unknown' and caps the verdict at caution)"}}},"errors":[{"body":{"error":"<summary>","reason":"<machine-readable reason>"},"when":"No payment attached (this challenge), or the attached payment failed verification: wrong amount/recipient, memo mismatch, expired, or already used (replay)","retry":"Re-request the challenge and pay again","status":402},{"body":{"detail":[{"loc":["body"],"msg":"<what is wrong>","type":"<error type>"}]},"when":"Request body present but malformed (invalid JSON or wrong field types) WITH a payment header attached — checked BEFORE settlement, so the payment is never consumed. An unpaid malformed request gets the 402, not a 422","retry":"Fix the body and retry with a fresh payment","status":422},{"body":{"detail":"Tool '<name>' not found"},"when":"Unknown tool name","status":404},{"body":{"error":"Rate limit exceeded"},"when":"Rate limited (per-IP and per-wallet limits)","retry":"Back off and retry after a minute","status":429},{"body":{"tool":"<name>","error":"Tool execution failed","payment_status":"refund_pending"},"when":"Payment settled on-chain but tool execution failed — the payment is marked refund_pending automatically; you are not charged for a failed call","status":500},{"body":{"detail":"<what is unavailable>"},"when":"Tool temporarily unavailable, or the gateway cannot persist the challenge (fail-closed)","retry":"Retry shortly","status":503}],"output":{"side":"long","symbol":"ETH","factors":{"carry":{"level":"caution","reason":"longs paying elevated funding","annualized_pct":67.9,"median_funding_pct":0.062},"crowding":{"level":"ok","reason":"positioning unremarkable","long_short_ratio":1.4,"oi_change_24h_pct":3.2},"security":{"level":"skipped","reason":"no token_address provided"},"liquidity":{"level":"ok","reason":"fills within 0.011% of best ask","bucket_usd":50000,"slippage_pct":0.011}},"verdict":"caution","size_usd":50000}},"maxTimeoutSeconds":300}],"quality":{"lastCalledAt":"2026-09-14T15:33:01.711Z","l30DaysTotalCalls":36,"l30DaysUniquePayers":11},"resource":"https://agentpay.tools/tools/pre_trade_check/call","extensions":{"bazaar":{"info":{"input":{"body":{"parameters":{"side":"long","symbol":"ETH","size_usd":50000}},"type":"http","method":"POST","bodyType":"json"},"errors":[{"body":{"error":"<summary>","reason":"<machine-readable reason>"},"when":"No payment attached (this challenge), or the attached payment failed verification: wrong amount/recipient, memo mismatch, expired, or already used (replay)","retry":"Re-request the challenge and pay again","status":402},{"body":{"detail":[{"loc":["body"],"msg":"<what is wrong>","type":"<error type>"}]},"when":"Request body present but malformed (invalid JSON or wrong field types) WITH a payment header attached — checked BEFORE settlement, so the payment is never consumed. An unpaid malformed request gets the 402, not a 422","retry":"Fix the body and retry with a fresh payment","status":422},{"body":{"detail":"Tool '<name>' not found"},"when":"Unknown tool name","status":404},{"body":{"error":"Rate limit exceeded"},"when":"Rate limited (per-IP and per-wallet limits)","retry":"Back off and retry after a minute","status":429},{"body":{"tool":"<name>","error":"Tool execution failed","payment_status":"refund_pending"},"when":"Payment settled on-chain but tool execution failed — the payment is marked refund_pending automatically; you are not charged for a failed call","status":500},{"body":{"detail":"<what is unavailable>"},"when":"Tool temporarily unavailable, or the gateway cannot persist the challenge (fail-closed)","retry":"Retry shortly","status":503}],"output":{"type":"json","example":{"side":"long","symbol":"ETH","factors":{"carry":{"level":"ok","reason":"carry unremarkable","median_funding_pct":0.01},"crowding":{"level":"ok","reason":"positioning unremarkable","long_short_ratio":1.2},"security":{"level":"skipped","reason":"no token_address provided"},"liquidity":{"level":"ok","reason":"fills within 0.001% of best price","slippage_pct":0.001}},"verdict":"ok","size_usd":50000}}},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","bodyType","body","method"],"properties":{"body":{"type":"object","properties":{"parameters":{"type":"object","required":["symbol"],"properties":{"side":{"enum":["long","short"],"type":"string","description":"Trade direction (funding carry is side-aware; default long)"},"symbol":{"type":"string","description":"Asset to check, e.g. 'ETH', 'BTC', 'SOL'"},"size_usd":{"type":"number","description":"Intended position size in USD (drives the slippage check; default 10000)"},"token_address":{"type":"string","description":"Optional ERC-20 address — adds a GoPlus security scan"}}}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"description":"Pre-trade risk check for AI agents trading crypto: 'I want to long $X of SYMBOL — is now sane?' Live slippage at your size + side-aware funding carry + OI crowding + optional security scan → one ok/caution/avoid verdict with per-factor breakdown and raw components embedded."}},"description":"Pre-trade risk check for AI agents trading crypto: live orderbook slippage at YOUR size, side-aware funding carry, open-interest crowding, and optional contract security — composed into a single ok/caution/avoid verdict with per-factor reasons and raw data embedded. Answers 'is this trade sane?' before trading, not after. Replaces four API integrations plus the judgment layer.","lastUpdated":"2026-09-14T15:33:02.295Z","serviceName":"AgentPay Pre-Trade Risk Check","x402Version":2}]}}