{"x402Version":1,"network":"base","payTo":"0x6121654D3Fd4C8B42a90d30472E4D40927C3e6BB","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","resources":[{"resource":"https://trust-agent.io/v1/search/agents","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"5001","description":"Find AI agents by skill: searches what live ERC-8004 agents declare (skill, domain or name) and returns each match with its endpoint, payout wallet and that wallet's risk band and OFAC sanctions verdict, plus a funding cluster when two rows are one operator. Optionally only agents that accept x402. 100 per page. Base.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"skill":"One of `skill`, `domain` or `q` is REQUIRED. Declared skill, e.g. natural-language-processing-info. GET /v1/search lists the live vocabulary.","domain":"OPTIONAL. Declared domain, e.g. compliance.","q":"OPTIONAL. Case-insensitive substring over the agent name; descriptions are not indexed.","acceptsX402":"OPTIONAL. `true` restricts to agents whose registration declares x402 support.","cursor":"OPTIONAL. Offset from a previous response’s nextCursor.","chain":"OPTIONAL. Only \"base\" is served."}},"outputSchema":{"matches":"total agents matching, across all pages","agents":"agentId, identifier, name, endpoint, skills, domains, acceptsX402, payoutWallet, verdict (riskBand, blocklisted, confidence per payout wallet), checkedAt","nextCursor":"offset for the next page, or null when exhausted","note":"A declared skill is a claim, not a capability — each row already carries the verdict, so start with the rows that read safe and escalate the rest to GET /v1/verify/quick for the score and flags"}},{"resource":"https://trust-agent.io/v1/endpoint/screen","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"5000","description":"Is this x402 endpoint safe to pay? Reads its payment challenge (v1 body and v2 PAYMENT-REQUIRED header), lists every offer, then screens the payout wallet: OFAC SDN check, 0-100 trust score, risk band and proceed / hold / block with itemized flags. Flags offers that name different recipients. It scores the wallet that gets paid, not the service behind the URL.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"url":"REQUIRED. The x402 endpoint to screen, e.g. https://example.com/v1/thing.","chain":"OPTIONAL. Only \"base\" is served; any other value is refused rather than answered from the wrong chain."}},"outputSchema":{"paywalled":"whether the endpoint answered 402 with a parseable payment offer","x402Versions":"which protocol generations answered — [1], [2] or [1,2]","offers":"every advertised offer: payTo, network, asset, amount, version","payoutWallet":"the address scored","additionalPayoutWallets":"present only when the offers disagree about the recipient","trustScore":"0-100 for the payout wallet; null when no rule could be evaluated","recommendation":"proceed | proceed_with_caution | hold | block | insufficient_data","flags":"array of {code, severity, title, detail}","components":"per-rule scoring breakdown"}},{"resource":"https://trust-agent.io/v1/verify/quick","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"2000","description":"Sanctions screening for a crypto wallet before you pay it: checks the address, and an agent's owner and payout wallet, against OFAC SDN-listed EVM addresses, then returns a 0-100 trust score, risk band and proceed / hold / block from on-chain history and sybil-filtered ERC-8004 reputation. Every flag and score component is itemized; insufficient_data instead of a guess. Base.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"address":"REQUIRED. EVM address, ERC-8004 agentId, or eip155:<chainId>:<registry>/<agentId>.","type":"OPTIONAL. agent | contract | defi_protocol | unregistered_address | unknown.","chain":"OPTIONAL. Only \"base\" is served; any other value is refused rather than answered from the wrong chain. Defaults to base."}},"outputSchema":{"trustScore":"0-100, higher is safer; null when no rule could be evaluated","riskBand":"minimal | low | moderate | elevated | severe | unknown","recommendation":"proceed | proceed_with_caution | hold | block | insufficient_data. insufficient_data means no judgment was possible — treat it as unknown, not as risky.","confidence":"0-1, how much evidence backs the score","flags":"array of {code, severity, title, detail}","components":"per-rule scoring breakdown; the score is reconstructable from these plus overrides","overrides":"hard caps applied after weighting, each with from/cap/reason"}},{"resource":"https://trust-agent.io/v1/verify/deep","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"10000","description":"Smart contract security check before you approve or pay an address: reads the bytecode, behind proxies too, for privileged functions (mint, pause, blacklist, upgrade), dangerous opcodes and protocol type, and checks whether a single key holds those powers. Adds OFAC SDN screening, who funded the address, sybil-filtered ERC-8004 reputation for agents and a 0-100 score with proceed / hold / block. Static analysis, not an audit.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"address":"REQUIRED. EVM address: wallet, agent owner or contract.","type":"OPTIONAL. agent | contract | defi_protocol | unregistered_address | unknown.","chain":"OPTIONAL. Only \"base\" is served; other values are refused. Defaults to base."}},"outputSchema":{"trustScore":"0-100, higher is safer","riskBand":"minimal | low | moderate | elevated | severe | unknown","recommendation":"proceed | proceed_with_caution | hold | block | insufficient_data (unknown, not risky)","confidence":"0-1","provenance":"{status, address, funder, cluster, depth, resolved}; unmeasured nulls all","reputationSummary":"agents: {status, feedback, reviewers, clusters, effectiveVotes, sybilShare, filteredScore, coverage}; unmeasured nulls all","contract":"bytecode incl. a proxy's implementation: privileged functions, proxy kind, opcodes, protocol, safetyScore; sourceVerified null = unknown","flags":"findings; PROVIDER_DEGRADED marks what was not measured","components":"per-rule breakdown","overrides":"caps applied after weighting, with reasons"}},{"resource":"https://trust-agent.io/v1/reputation","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"2006","description":"ERC-8004 agent reputation with sybil filtering: reviewers are clustered by who funded them and each cluster counts once, so reviewers paid for from one wallet count as one vote. Returns feedback and reviewer counts, independent clusters, the sybil-flagged share, counts by evidence class (payment proof, task link, none) and per-tag means, and refuses to average tags with conflicting scales. Base.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"subject":"REQUIRED. agentId, eip155 identifier, or an address owning an agent.","chain":"OPTIONAL. Only \"base\" is served; any other value is refused rather than answered from the wrong chain. Defaults to base."}},"outputSchema":{"reputation":"sybilShare, uniqueClusters, evidenceBreakdown, per-tag aggregates","interpretation":"plain-language summary of what the numbers mean"}},{"resource":"https://trust-agent.io/v1/watch/addresses","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"2007","description":"Sanctions monitoring for wallets you already screened: send up to 50 addresses and a since timestamp, get every OFAC SDN designation or delisting that touched them since then, plus when the list was last synced and whether the change log reaches back that far. Stateless: nothing is stored or pushed; pass the returned checkedAt back as since.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"addresses":"REQUIRED. Comma-separated EVM addresses, at most 50.","since":"OPTIONAL. Unix seconds. Pass the previous response's checkedAt to receive only what changed since.","chain":"OPTIONAL. Only \"base\" is served; any other value is refused rather than answered from the wrong chain. Defaults to base."}},"outputSchema":{"changes":"array of {address, change: added | removed, source, at, reason}. Empty means nothing moved.","coverage":"{coveredSince, complete}. complete=false means the change log does not reach your cursor and the answer may be incomplete — re-screen to re-establish a baseline.","feed":"source and lastSyncedAt of the sanctions feed behind the answer"}},{"resource":"https://trust-agent.io/v1/watch/feed","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"2003","description":"OFAC sanctions list updates as a feed: every SDN designation and delisting of an EVM crypto address since a timestamp you supply, with the listing reason and when it was recorded. No address list to send; match it against your own counterparty book locally, so the service never learns which addresses are yours. Poll it and pass the returned checkedAt back as since.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"since":"OPTIONAL. Unix seconds. Pass the previous response's checkedAt to receive only what changed since.","chain":"OPTIONAL. Only \"base\" is served; any other value is refused rather than answered from the wrong chain. Defaults to base."}},"outputSchema":{"changes":"array of {address, change: added | removed, source, at, reason}. Empty means nothing moved.","coverage":"{coveredSince, complete}. complete=false means the change log does not reach your cursor and the answer may be incomplete — re-establish your baseline from a full poll.","feed":"source and lastSyncedAt of the sanctions feed behind the answer"}},{"resource":"https://trust-agent.io/v1/provenance/chain","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"10002","description":"Who funded this wallet? Walks the funding chain upward from any address, up to 3 hops, and returns the first funder, each hop, the origin and a cluster id shared by every address paid for from the same account, the cheapest signal that two counterparties are one operator. Marks an origin that is infrastructure (a bridge, exchange or payout contract) and says when funding could not be traced. Base.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"address":"REQUIRED. EVM address whose funding to trace.","chain":"OPTIONAL. Only \"base\" is served. Defaults to base."}},"outputSchema":{"funder":"the address that first sent this one native tokens; null when unresolvable","chain":"the funding chain walked upward, nearest first","origin":"furthest resolved ancestor — where the money came from","cluster":"fund:<funder>; addresses sharing it were paid for from the same account","resolved":"false means no funder exists for this address","measurable":"false means the provider could not be examined at all (outage, rate limit) — nothing in the response is a statement about the address"}},{"resource":"https://trust-agent.io/v1/registry/agents","method":"GET","scheme":"exact","network":"base","maxAmountRequired":"10001","description":"ERC-8004 agent directory filtered to what is live: registrations classified by a continuous census of the Base registry, filterable by quality (for example a valid file with a declared service) and by x402 support. Each row has the agent id, owner, payout wallet, what it declares (name, endpoint, skills) and a funding cluster shared with agents paid for from the same account. 100 per page.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"GET","queryParams":{"quality":"OPTIONAL. valid_with_service | valid_no_service | non_compliant | uri_unresolvable | no_uri.","acceptsX402":"OPTIONAL. true to return only agents whose registration file declares x402.","cursor":"OPTIONAL. nextCursor from the previous page. Omit for the first page.","chain":"OPTIONAL. Only \"base\" is served. Defaults to base."}},"outputSchema":{"agents":"array of {agentId, identifier, quality, acceptsX402, payoutWallet, checkedAt, owner, registeredAt}","nextCursor":"pass back as `cursor` for the next page; null when the registry is exhausted","degraded":"true when the census cannot currently refresh classifications — the page may omit live agents and include stale ones","count":"agents on this page"}},{"resource":"https://trust-agent.io/v1/verify/batch","method":"POST","scheme":"exact","network":"base","maxAmountRequired":"10003","description":"Batch sanctions screening for up to 10 wallet addresses in one call: each is checked against OFAC SDN-listed EVM addresses and gets a 0-100 trust score, risk band, proceed / hold / block and its top flags, and the response names the safest. For vetting a counterparty list before a run of payments or re-checking wallets you already pay. Base.","mimeType":"application/json","discoverable":true,"inputSchema":{"type":"http","method":"POST","bodyType":"json","bodyFields":{"addresses":"REQUIRED. string[] of 1-10 EVM addresses.","type":"OPTIONAL. Subject type hint applied to all.","chain":"OPTIONAL. Only \"base\" is served; any other value is refused rather than answered from the wrong chain. Defaults to base."}},"outputSchema":{"results":"array of {address, trustScore, riskBand, recommendation, confidence, subjectType, topFlags}. trustScore is null where no rule could be evaluated.","succeeded":"count scored without error","failed":"count that errored","unscorable":"count scored without error but with no evaluable evidence","safest":"address with the highest score, or null if none of the batch produced a score. Unscorable addresses are excluded from the ranking rather than sorted as zero."}}]}