{"type":"https://eips.ethereum.org/EIPS/eip-8004#registration-v1","name":"TrustAgent","description":"Judgment engine over ERC-8004. Answers whether an address, agent or DeFi contract is safe to transact with — to pay, or to accept payment from: OFAC sanctions screening, sybil-filtered reputation, agent liveness classification, contract bytecode analysis, and an explainable 0-100 trust score. Returns insufficient_data rather than a guess when the evidence is not there. Paid per call over x402.","image":"https://trust-agent.io/icon.svg","active":true,"x402Support":true,"services":[{"name":"verify","endpoint":"https://trust-agent.io/v1/verify/quick","version":"1.0.0","skills":["counterparty-risk-assessment","sanctions-screening","erc8004-reputation-reading","sybil-filtering","trust-scoring"],"domains":["trust","risk","agent-commerce","compliance-screening"]},{"name":"verify-deep","endpoint":"https://trust-agent.io/v1/verify/deep","version":"2.0.0","skills":["contract-static-analysis","defi-protocol-classification","proxy-detection"],"domains":["smart-contract-security","defi"]},{"name":"reputation","endpoint":"https://trust-agent.io/v1/reputation","version":"2.0.0","skills":["erc8004-reputation-reading","sybil-filtering"],"domains":["reputation"]},{"name":"verify-batch","endpoint":"https://trust-agent.io/v1/verify/batch","version":"2.0.0","skills":["bulk-counterparty-screening"],"domains":["trust","risk"]}],"registrations":[{"agentId":60015,"agentRegistry":"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432","agentIdentifier":"eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432/60015"}],"supportedTrust":["x402-settlement","erc8004-reputation"],"x402":{"network":"base","payTo":"0x6121654D3Fd4C8B42a90d30472E4D40927C3e6BB","endpoints":[{"method":"GET","path":"/v1/search/agents","price":"$0.005001","description":"Which live agents can do X? Searches what ERC-8004 agents DECLARE about themselves — skills, domains, name — across the registrations this service fetches on a rolling sweep, and returns only the ones actually answering. Each row carries the service endpoint to call and the wallet a payment would go to. Roughly 8% of registrations on Base are live at all; the alternative is fetching sixty thousand files yourself.","inputSchema":{"type":"http","method":"GET","queryParams":{"skill":"One of `skill`, `domain` or `q` is REQUIRED. Declared skill, e.g. natural-language-processing-info. See GET /v1/search for the live vocabulary — it is normalised from what agents declare, so it changes as the corpus does.","domain":"OPTIONAL. Declared domain, e.g. compliance.","q":"OPTIONAL. Case-insensitive substring over the agent name. Descriptions are not indexed — use `skill` or `domain` to search what an agent does.","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, checkedAt","nextCursor":"offset for the next page, or null when exhausted","note":"A declared skill is a claim, not a capability — score the payout wallet before paying it"}},{"method":"GET","path":"/v1/endpoint/screen","price":"$0.005","description":"Is this x402 endpoint safe to pay? Reads the endpoint's own payment challenge under BOTH protocol versions — v1 body and v2 PAYMENT-REQUIRED header, so a live v2-only service is not reported as dead — extracts the payout wallet it advertises, and screens that wallet: OFAC sanctions, sybil-filtered ERC-8004 reputation, on-chain behaviour. Flags an endpoint that names different recipients under the two versions. Scores the wallet, not the service behind it, and says so.","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"}},{"method":"GET","path":"/v1/verify/quick","price":"$0.002","description":"Is this counterparty safe to transact with — to pay, or to accept payment from? Screens the address against the OFAC sanctions list, then SYBIL-FILTERS its ERC-8004 reputation: reviewers are clustered by first funding source and capped at one vote per cluster, so manufactured feedback from wallets funded out of one purse counts once. Returns an explainable 0-100 trust score with a proceed / hold / block recommendation, and reports insufficient_data rather than guessing when the evidence is not there.","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"}},{"method":"GET","path":"/v1/verify/deep","price":"$0.01","description":"Should you approve this contract? Everything in quick, plus static analysis of the bytecode: privileged functions (mint, pause, blacklist, arbitrary withdrawal), proxy and upgradeability detection, dangerous opcodes, DeFi protocol classification and source-verification status.","inputSchema":{"type":"http","method":"GET","queryParams":{"address":"REQUIRED. Contract address to analyse.","type":"OPTIONAL. contract | defi_protocol.","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","contract":"bytecode analysis: opcodes, proxy kind, privileged functions, interfaces, protocol class, safetyScore","flags":"includes contract-specific findings","components":"per-rule scoring breakdown; the score is reconstructable from these plus overrides","overrides":"hard caps applied after weighting, each with from/cap/reason"}},{"method":"GET","path":"/v1/reputation","price":"$0.002001","description":"What is this agent's reputation actually worth? 92.6% of ERC-8004 feedback on Base is coordinated. This clusters reviewers by funding provenance and caps each cluster at one effective vote, returns every record with its evidence class and flag reasons, and refuses to average ratings that use incompatible scales.","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"}},{"method":"GET","path":"/v1/watch/addresses","price":"$0.002002","description":"Has anything changed about counterparties you already screened? Re-checks a list of addresses against OFAC designations and delistings since a timestamp you supply, so a verdict you acted on last month does not go quietly stale. Stateless: no watchlist is stored and nothing is sent to you — pass the returned checkedAt back as `since`.","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"}},{"method":"GET","path":"/v1/provenance/chain","price":"$0.010002","description":"Where did this address get its money? Walks the funding chain upward and returns the account that ultimately paid for the wallet, plus a cluster id. Two addresses funded from the same account are not independent parties, however new and unremarkable each looks alone — the strongest cheap signal there is that an identity was manufactured. Works on any address, not only registered agents.","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"}},{"method":"GET","path":"/v1/registry/agents","price":"$0.010001","description":"The filtered ERC-8004 directory: which registered agents are actually alive, and which accept x402. Roughly 15% of registrations on Base have both a compliant registration file and a declared service — this returns those, rather than making you screen sixty thousand addresses one at a time to find them. 100 agents per page.","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"}},{"method":"POST","path":"/v1/verify/batch","price":"$0.010003","description":"Screen up to 10 addresses in one call: OFAC sanctions check, trust score, risk band and recommendation for each. For vetting a counterparty set before a run of payments, maintaining an allowlist, or auditing wallets you already pay.","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."}}],"freeTrial":{"callsPerWallet":3,"windowHours":24,"howTo":"https://trust-agent.io/v1/trial"}},"reads":{"standard":"ERC-8004","identityRegistry":"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432","reputationRegistry":"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63","chainId":8453},"docs":{"manifest":"https://trust-agent.io","scoringModel":"https://trust-agent.io/v1/model","pricing":"https://trust-agent.io/v1/pricing","console":"https://trust-agent.io"}}