{"id":"676e5474-769","name":"Token Verdict — Batch Verdict","description":"Screen 1-25 Base tokens in one flat-fee call: SOLID / CAUTION / DANGER verdicts with scores, riskiest first, plus summary counts; unfetchable tokens return UNKNOWN with a reason. Mode 'compact' returns verdict/score and counts only. Use this when screening tokens before trading. Screening the same feed on a schedule? Pair this with StallRow Recheck (stall-row-production.up.railway.app/v1/recheck) to watch the endpoints you depend on for price/payTo/schema changes between screens. Payable in USDC on Base or Solana.","endpoint_url":"https://token-verdict-production.up.railway.app/v1/batch-verdict","endpoint_canonical":"https://token-verdict-production.up.railway.app/v1/batch-verdict","category":"data.crypto","kind":"api","price_amount":0.2,"price_currency":"USDC","chains":["base"],"request_schema":{"type":"object","required":["token_addresses"],"properties":{"token_addresses":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"},"description":"1-25 Base token contract addresses (0x...). Duplicates are screened once."},"mode":{"type":"string","enum":["full","compact"],"description":"Optional response mode, default 'full'. 'full' returns every per-token verdict in full (signals, take, market data). 'compact' returns per-token address, symbol, verdict and score (plus the reason for UNKNOWN entries) and the summary counts — the same screen, a smaller response."}},"example":{"token_addresses":["0x2821d96B5FC81aEC3763340b375a846a89A3Ec1b","0x000000000000000000000000000000000000dEaD"],"mode":"compact"}},"response_schema":{"type":"object","required":["chain","requested_count","unique_count","evaluated_count","unknown_count","summary","results"],"properties":{"chain":{"type":"string","const":"base"},"requested_count":{"type":"integer","minimum":1,"maximum":25},"unique_count":{"type":"integer"},"evaluated_count":{"type":"integer"},"unknown_count":{"type":"integer"},"summary":{"type":"object","required":["SOLID","CAUTION","DANGER","UNKNOWN"],"properties":{"SOLID":{"type":"integer"},"CAUTION":{"type":"integer"},"DANGER":{"type":"integer"},"UNKNOWN":{"type":"integer"}}},"results":{"type":"array","items":{"type":"object","required":["address","status","verdict"],"properties":{"address":{"type":"string"},"status":{"type":"string","enum":["ok","unknown"]},"symbol":{"type":["string","null"],"description":"Compact mode only: the token's symbol (null when the token is UNKNOWN)"},"verdict":{"type":"string","enum":["SOLID","CAUTION","DANGER","UNKNOWN"]},"score":{"type":["number","null"],"minimum":0,"maximum":100},"token":{"type":["object","null"]},"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"]},"reason":{"type":["string","null"],"description":"Why the token is UNKNOWN (set only when status is unknown)"}}},"description":"Evaluated tokens riskiest first; UNKNOWN entries last"},"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). Compact entries carry address/status/symbol/verdict/score/reason only."}},"example":{"mode":"compact","chain":"base","requested_count":2,"unique_count":2,"evaluated_count":1,"unknown_count":1,"summary":{"SOLID":0,"CAUTION":1,"DANGER":0,"UNKNOWN":1},"results":[{"address":"0x2821d96B5FC81aEC3763340b375a846a89A3Ec1b","status":"ok","symbol":"BASE","verdict":"CAUTION","score":35,"reason":null},{"address":"0x000000000000000000000000000000000000dEaD","status":"unknown","symbol":null,"verdict":"UNKNOWN","score":null,"reason":"No DEXScreener pair found for this token on base."}],"not_checked":"Per-token limits apply (see each result's take): market structure only — no contract honeypot simulation, no holder concentration."}},"sample_query":"https://token-verdict-production.up.railway.app/sample/batch-verdict","facilitator_url":null,"status":"verified","delisted_reason":null,"origin":"submitted","ephemeral":false,"created_at":1793552858,"updated_at":1793553157,"status_changed_at":1793553157,"embedding_synced_at":1793552859,"score":1,"p50_latency_ms":657,"p95_latency_ms":1745,"p99_latency_ms":2420,"probe_count":260,"probes_passed":260,"last_ok_at":1794019619,"consecutive_failures":0,"last_probed_at":1794019619,"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":"200000","amount_usd":0.2,"domain_name":"USD Coin","domain_version":"2","observed_at":1794019619,"obs_first_seen_at":1793552912,"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":9619,"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":null,"latest_purchase_at":null,"paid_verification_latest":null,"paid_verification":{"verified":false},"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":false,"paid_verified_at":null,"paid_depth":{"rung":"none","deliveries":0,"span_weeks":0,"first_ok_at":null,"last_ok_at":null,"last_attempt_ok":null,"through_change":false,"first_ok_at_iso":null,"last_ok_at_iso":null},"payto_sentinel":false,"payto_note":null,"evidence_tier":"probe_verified","evidence_note":"Sustained protocol conformance over many checks from our infrastructure. Says nothing about content accuracy.","verdict_age_seconds":994,"probe_tier":"watch","next_check_by":1794021419,"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:46:59Z","next_check_by_iso":"2026-11-07T03:16:59Z","status_changed_at_iso":"2026-11-01T17:12:37Z","paid_verified_at_iso":null,"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:07:38Z","updated_at_iso":"2026-11-01T17:12:37Z","embedding_synced_at_iso":"2026-11-01T17:07:39Z","last_ok_at_iso":"2026-11-07T02:46:59Z","observed_at_iso":"2026-11-07T02:46:59Z","obs_first_seen_at_iso":"2026-11-01T17:08:32Z","onchain_checked_at_iso":"2026-11-07T02:36:35Z","onchain_last_attempt_at_iso":"2026-11-07T02:36:35Z","paid_verified_age_days":null,"latest_purchase_age_days":null,"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":"676e5474-769","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: 676e5474-769\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":1794019619,"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":"200000","amount_usd":0.2,"eip712_domain":{"name":"USD Coin","version":"2"},"price_stable_since":1793552912,"price_matches_listing":true,"payto_stable_since":1793552912,"checked_at_iso":"2026-11-07T02:46:59Z","price_stable_since_iso":"2026-11-01T17:08:32Z","payto_stable_since_iso":"2026-11-01T17:08:32Z"}}