{"id":"076ebfeb-def","name":"Token Verdict — Pre Trade","description":"Combined go/no-go before a trade: PROCEED / CAUTION / ABORT from the token's market verdict, the wallet's sanctions/age/poisoning check, and (with a spender) its ERC-20 approvals. Mode 'compact' returns the decision plus per-leg summaries. Use this when an agent is about to swap or pay and needs token + wallet + allowance risk in one call. Payable in USDC on Base or Solana.","endpoint_url":"https://token-verdict-production.up.railway.app/v1/pre-trade","endpoint_canonical":"https://token-verdict-production.up.railway.app/v1/pre-trade","category":"data.crypto","kind":"api","price_amount":0.05,"price_currency":"USDC","chains":["base"],"request_schema":{"type":"object","required":["token_address"],"properties":{"token_address":{"type":"string","description":"Token contract address (0x...) the trade would buy or receive"},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Chain of the token leg. Wallet/allowance legs are Base-only: supplying wallet_address requires chain base."},"wallet_address":{"type":["string","null"],"description":"Optional counterparty / own wallet (Base 0x...) to check for sanctions, age, activity and poisoning signals"},"spender":{"type":["string","null"],"description":"Optional spender contract (Base 0x...); with wallet_address, adds the allowance leg for that spender"},"mode":{"type":"string","enum":["full","compact"],"description":"Optional response mode, default 'full'. 'full' returns every leg in full (signals, market data, sanctions and poisoning detail). 'compact' returns the decision, the worst leg, and one summary per leg (verdict, score, headline reason) — the same computation, a smaller response."}},"example":{"token_address":"0x2821d96B5FC81aEC3763340b375a846a89A3Ec1b","chain":"base","wallet_address":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","spender":null,"mode":"compact"}},"response_schema":{"type":"object","required":["verdict","score","legs","degraded","not_checked"],"properties":{"verdict":{"type":"string","enum":["PROCEED","CAUTION","ABORT"]},"score":{"type":"number","minimum":0,"maximum":100,"description":"Combined risk = the worst delivered leg's risk score"},"token":{"type":"object"},"wallet":{"type":["string","null"]},"spender":{"type":["string","null"]},"legs":{"anyOf":[{"type":"object","required":["token"],"properties":{"token":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["ok","unknown"]},"token":{"type":["object","null"],"properties":{"address":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"chain":{"type":"string"}}},"verdict":{"type":["string","null"],"enum":["SOLID","CAUTION","DANGER",null]},"risk_score":{"type":["number","null"],"minimum":0,"maximum":100},"signals":{"type":"array","items":{"type":"object","required":["name","score","weight","detail"],"properties":{"name":{"type":"string"},"score":{"type":"integer","minimum":0,"maximum":100},"weight":{"type":"number"},"detail":{"type":"string"}}}},"take":{"type":["string","null"]},"detail":{"type":"string"}}},"wallet":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["ok","unknown"]},"address":{"type":"string"},"verdict":{"type":["string","null"],"enum":["SAFE","CAUTION","AVOID",null]},"risk_score":{"type":["number","null"],"minimum":0,"maximum":100},"sanctions":{"type":"object","properties":{"status":{"type":"string","enum":["matched","no_match","unknown"]},"matched":{"type":["boolean","null"]},"snapshot_date":{"type":["string","null"]}}},"wallet_age_days":{"type":["integer","null"]},"first_activity":{"type":"string"},"outgoing_tx_count_nonce":{"type":["integer","null"]},"poisoning":{"type":"object","properties":{"status":{"type":"string","enum":["signals_found","none_found","unknown"]},"signals":{"type":"array"}}},"reasons":{"type":"array"},"not_checked":{"type":"string"}}},"allowance":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["ok","unknown"]},"owner":{"type":"string"},"spender":{"type":["string","null"]},"tokens_held_checked":{"type":["integer","string"]},"spenders_checked":{"type":"integer"},"allowance_checks_performed":{"type":"integer"},"active_approvals":{"type":["array","string"]},"unlimited_approvals":{"type":["integer","string"]},"max_risk":{"type":"string","enum":["high","medium","none","unknown"]},"summary":{"type":"string"},"not_checked":{"type":"string"}}}}},{"type":"array","items":{"type":"object","required":["leg","status","headline"],"properties":{"leg":{"type":"string","enum":["token","wallet","allowance"]},"status":{"type":"string","enum":["ok","unknown"]},"verdict":{"type":["string","null"]},"score":{"type":["number","null"],"minimum":0,"maximum":100},"headline":{"type":"string"}}}}],"description":"Full mode: an object keyed by leg name with each leg in full. Compact mode: an array of per-leg summaries (see worst_leg)."},"worst_leg":{"type":["string","null"],"enum":["token","wallet",null],"description":"Compact mode only: the leg that drove the combined outcome (a hard-abort source, else the highest-risk scored leg)"},"abort_reasons":{"type":"array","items":{"type":"string"}},"degraded":{"type":"boolean","description":"True when at least one leg could not be evaluated (verdict then caps at CAUTION)"},"not_checked":{"type":"string"},"mode":{"type":"string","enum":["full","compact"],"description":"The response mode that produced this result (echo of the request's mode, 'full' when omitted). The legs shape follows it."}},"example":{"mode":"compact","verdict":"CAUTION","score":35,"token":{"address":"0x2821d96B5FC81aEC3763340b375a846a89A3Ec1b","symbol":"BASE","name":"Base King","chain":"base"},"wallet":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","spender":null,"worst_leg":"token","legs":[{"leg":"token","status":"ok","verdict":"CAUTION","score":35,"headline":"3 transactions in 24h — a handful of wallets is the market."},{"leg":"wallet","status":"ok","verdict":"SAFE","score":0,"headline":"No risk deductions — sanctions no_match, poisoning none_found."}],"abort_reasons":[],"degraded":false,"not_checked":"Not checked: contract honeypot simulation and holder concentration (need a paid indexer), the person or entity behind the wallet, and approvals beyond the allowance leg. Leg-level limits are itemised in full mode's per-leg not_checked fields."}},"sample_query":"https://token-verdict-production.up.railway.app/sample/pre-trade","facilitator_url":null,"status":"verified","delisted_reason":null,"origin":"submitted","ephemeral":false,"created_at":1793552774,"updated_at":1793553053,"status_changed_at":1793553053,"embedding_synced_at":1793552776,"score":1,"p50_latency_ms":721,"p95_latency_ms":1727,"p99_latency_ms":2520,"probe_count":260,"probes_passed":260,"last_ok_at":1794019620,"consecutive_failures":0,"last_probed_at":1794019620,"probe_interval_s":1800,"distinct_payers":0,"x402_version":2,"transport":"header","obs_scheme":"exact","accepts_count":2,"accepts_index":0,"obs_network":"eip155:8453","obs_asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","obs_pay_to":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","amount_atomic":"50000","amount_usd":0.05,"domain_name":"USD Coin","domain_version":"2","observed_at":1794019620,"obs_first_seen_at":1793552791,"price_changed_at":null,"pay_to_changed_at":null,"payto_unstable":false,"payto_distinct_recent":1,"onchain_provider_status":null,"onchain_payto_checked":"0x097f9685d1e0752bf8b02d61e5ce9be7ea0fba7f","onchain_checked_at":1794018995,"onchain_last_attempt_at":1794018995,"onchain_provider_error":0,"onchain_source":"index","header_bytes":15531,"verified_via":"POST","testnet":false,"payment_protocols":["x402"],"mpp_methods":null,"mpp_offers":null,"mpp_note":null,"onchain_payto_shared_listings":40,"onchain_count_capped":false,"onchain_shape":null,"onchain_daily":[{"day":"2026-10-09","tx":1,"payers":1,"usd":2.997602},{"day":"2026-10-12","tx":1,"payers":1,"usd":0.02},{"day":"2026-10-23","tx":62,"payers":2,"usd":3.763},{"day":"2026-10-24","tx":6,"payers":2,"usd":0.05},{"day":"2026-10-25","tx":78,"payers":6,"usd":5.029},{"day":"2026-10-26","tx":9,"payers":3,"usd":3.195},{"day":"2026-10-27","tx":20,"payers":3,"usd":72.06456},{"day":"2026-10-28","tx":11,"payers":1,"usd":11.46},{"day":"2026-10-29","tx":44,"payers":3,"usd":6.082},{"day":"2026-10-30","tx":17,"payers":2,"usd":1.4},{"day":"2026-10-31","tx":7,"payers":1,"usd":1.155},{"day":"2026-11-01","tx":28,"payers":2,"usd":2.5},{"day":"2026-11-02","tx":20,"payers":2,"usd":0.717},{"day":"2026-11-03","tx":5,"payers":2,"usd":0.1},{"day":"2026-11-04","tx":3,"payers":1,"usd":0.09},{"day":"2026-11-05","tx":27,"payers":3,"usd":0.315},{"day":"2026-11-06","tx":11,"payers":2,"usd":0.247}],"latest_purchase_delivered":true,"latest_purchase_at":1793651408,"paid_verification_latest":{"at":1793651408,"delivered":true,"tx_hash":"0x0483e0db284ed1db76a3613747cf32ae0208fa47a6af7721cdf1bee35ce0aeb5","amount_usdc":0.05,"failure_reason":null,"note":"Most recent settled purchase by the nohumans scout; it delivered.","at_iso":"2026-11-02T20:30:08Z","age_days":4},"paid_verification":{"verified":true,"verified_at":1793651408,"tx_hash":"0x0483e0db284ed1db76a3613747cf32ae0208fa47a6af7721cdf1bee35ce0aeb5","amount_usdc":0.05,"schema_validated":true,"note":"Real USDC paid and response inspected by nohumans scout. One-time verification, not continuous.","verified_at_iso":"2026-11-02T20:30:08Z","age_days":4},"has_sample":true,"method_note":"This endpoint does not serve its 402 to a bare GET; the payment challenge was observed on POST with a JSON body. Call it with POST.","paid_verified":true,"paid_verified_at":1793651408,"paid_depth":{"rung":"paid_verified","deliveries":1,"span_weeks":1,"first_ok_at":1793651408,"last_ok_at":1793651408,"last_attempt_ok":1,"through_change":false,"first_ok_at_iso":"2026-11-02T20:30:08Z","last_ok_at_iso":"2026-11-02T20:30:08Z"},"payto_sentinel":false,"payto_note":null,"evidence_tier":"paid_verified","evidence_note":"We paid this endpoint real USDC and confirmed settlement on-chain; the response was inspected.","verdict_age_seconds":984,"probe_tier":"watch","next_check_by":1794021420,"next_check_basis":"watch tier, re-probed every 30 minutes: unverified, failing (up to 10 in a row), failed in the last 24 h, payment terms changed in the last 7 days, or new or changed status in the last 7 days; a record past next_check_by is stale by our own rule","last_probed_at_iso":"2026-11-07T02:47:00Z","next_check_by_iso":"2026-11-07T03:17:00Z","status_changed_at_iso":"2026-11-01T17:10:53Z","paid_verified_at_iso":"2026-11-02T20:30:08Z","probes_failed":0,"onchain_scope":"wallet-level, NOT this endpoint's: the payTo address is shared by 40 active listings, so these on-chain counts cover all of them; never attribute them to one endpoint or add them across listings","onchain_wallet":{"scope":"wallet-level, NOT this endpoint's: the payTo address is shared by 40 active listings, so these on-chain counts cover all of them; never attribute them to one endpoint or add them across listings","shared_by_listings":40,"pay_to":"0x097f9685d1e0752bf8b02d61e5ce9be7ea0fba7f","tx_count_30d":350,"unique_payers_30d":12,"volume_usd_30d":111.185162},"onchain_tx_count_30d":350,"onchain_unique_payers_30d":12,"onchain_volume_usd_30d":111.185162,"created_at_iso":"2026-11-01T17:06:14Z","updated_at_iso":"2026-11-01T17:10:53Z","embedding_synced_at_iso":"2026-11-01T17:06:16Z","last_ok_at_iso":"2026-11-07T02:47:00Z","observed_at_iso":"2026-11-07T02:47:00Z","obs_first_seen_at_iso":"2026-11-01T17:06:31Z","onchain_checked_at_iso":"2026-11-07T02:36:35Z","onchain_last_attempt_at_iso":"2026-11-07T02:36:35Z","latest_purchase_at_iso":"2026-11-02T20:30:08Z","paid_verified_age_days":4,"latest_purchase_age_days":4,"report_outcome":{"how":"POST https://api.nohumans.directory/v1/reports","when":"after you paid this endpoint on Base, whether or not it delivered","body":{"listing_id":"076ebfeb-def","ok":"JSON boolean: did it deliver what it promised","tx_hash":"your payment's transaction hash on Base","payer_signature":"EIP-191 personal_sign of message_to_sign by the wallet that paid"},"message_to_sign":"nohumans.directory report v1\nlisting_id: 076ebfeb-def\ntx_hash: <tx_hash, lowercase>\nok: <true|false>","distinct_payers_reported":0,"weight":"counts toward ranking once 3+ distinct payers have reported this listing","help":"https://api.nohumans.directory/v1/reports"},"observed":{"checked_at":1794019620,"x402_version":2,"challenge_transport":"header","scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pay_to":"0x097f9685D1e0752bF8B02d61E5Ce9be7eA0FBA7F","payment_options":2,"accepts_index":0,"extra":{"name":"USD Coin","version":"2"},"amount_atomic":"50000","amount_usd":0.05,"eip712_domain":{"name":"USD Coin","version":"2"},"price_stable_since":1793552791,"price_matches_listing":true,"payto_stable_since":1793552791,"checked_at_iso":"2026-11-07T02:47:00Z","price_stable_since_iso":"2026-11-01T17:06:31Z","payto_stable_since_iso":"2026-11-01T17:06:31Z"}}