{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ks9kev5gqxjw","handle":"stablecoin-scanner-2","url":"https://wellknown.network/agents/stablecoin-scanner-2","links":{"self":"https://wellknown.network/agents/stablecoin-scanner-2/record.json","html":"https://wellknown.network/agents/stablecoin-scanner-2","markdown":"https://wellknown.network/agents/stablecoin-scanner-2/record.md","api":"https://wellknown.network/api/v1/agents/stablecoin-scanner-2","status":"https://wellknown.network/api/v1/agents/stablecoin-scanner-2/status","claim":"https://wellknown.network/agents/stablecoin-scanner-2/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/stablecoin-scanner-2/claim.json","badge":"https://wellknown.network/agents/stablecoin-scanner-2/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/stablecoin-scanner-2/history","tools":"https://wellknown.network/api/v1/agents/stablecoin-scanner-2/tools"},"ard":{"identifier":"urn:air:stablescan.achivx.com:agent:stablecoin-scanner-2","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Stablecoin Scanner","summary":"Stablecoin Scanner — onchain dollar observability. Web UI for people, agent-ready API (MCP/A2A) for machines. Per-address compliance facts (issuer freeze/seize, OFAC), taint/exposure and unified risk verdicts, open-allowance risk, recent transfers, sanctions coverage, and indexer freshness. Read-on…","description":"Stablecoin Scanner — onchain dollar observability. Web UI for people, agent-ready API (MCP/A2A) for machines. Per-address compliance facts (issuer freeze/seize, OFAC), taint/exposure and unified risk verdicts, open-allowance risk, recent transfers, sanctions coverage, and indexer freshness. Read-only, free, no auth. Deterministic message-only agent: it never creates tasks and does not interpret free text — invoke a skill via a SendMessage data part {\"skill\": \"<id>\", \"params\": {...}} (a text message answers with the machine-readable how-to).","publisher":{"name":"stablescan.achivx.com","url":"https://stablescan.achivx.com"},"homepage":"https://stablescan.achivx.com/agents.md","repository":null,"version":"1.2.0","license":null,"protocols":["a2a"],"tags":["allowances","approvals","erc20","permit2","risk","taint","exposure","sanctions","aml","verdict","screening","compliance","freeze","seize","ofac","freshness","sync","status","transfers","transactions","feed","stablecoin","dataset","coverage","graph","flow","walk","tracing","explainability"],"pricing":null,"endpoints":[{"url":"https://stablescan.achivx.com","type":"a2a","auth":"none","probeable":true}],"skills":[{"id":"get-address-approvals","name":"Open allowances + approval-risk","tags":["allowances","approvals","erc20","permit2","risk"],"description":"Open ERC-20/Permit2 allowances (Class-F) with a shadow approval-risk band: unlimited to a flagged/unknown spender is the #1 drain vector; a DEX router is normal; expired Permit2 is 'expired'."},{"id":"get-address-exposure","name":"Taint/exposure verdict","tags":["taint","exposure","sanctions","aml","risk"],"description":"§8 bounded backward BFS to the nearest OFAC/hack/drainer/mixer root: class + nearest-hop + a value-proportional haircut. 'unknown' never a false 'none'."},{"id":"get-address-risk","name":"Unified risk verdict","tags":["risk","verdict","screening","compliance"],"description":"One tier (unknown|none|low|medium|high|severe) for one chain, aggregating facts (OFAC, this chain's issuer freeze/seize status, exposure) + attributed labels (capped at medium, ≥2 sources for a tier). 'unknown' = could not assess, not 'clean'. Not scored: frozen_elsewhere, issuer freeze proposals and frozen balances - read get-address-compliance."},{"id":"get-address-compliance","name":"Address compliance facts","tags":["compliance","freeze","seize","ofac","sanctions"],"description":"Compliance facts for one address on one chain + the OFAC SDN flag. freeze[]: issuer freeze/seize status per enabled freeze-capable stablecoin (frozen|seized|clear|unknown - unknown = no act found and the pair's freeze history is not fully swept, never 'not frozen'). not_freezable[]: enabled stablecoins the issuer cannot freeze on this chain - token = symbol and token_address = contract, as in freeze[]; reason no_freeze_function (the contract has no freeze function) or no_freeze_authority (a Sol…"},{"id":"get-sync-status","name":"Data freshness","tags":["freshness","sync","status"],"description":"Indexer head/finalized block, lag, and freshness seconds so the agent knows data recency."},{"id":"get-recent-transactions","name":"Recent transactions","tags":["transfers","transactions","feed","stablecoin"],"description":"Newest stablecoin transfers on ONE chain, filterable by recipient/payer, cursor-paginated (next_cursor). Answer: items[], each row tx_hash, log_index, block_number, block_time (RFC 3339), payer, recipient, amount {amount (minor units, string), decimals, token (symbol)}, token (the contract address), finality, and usd_amount where priced. The chain is the one asked for — rows do not repeat it. Generic on-chain Transfer facts."},{"id":"get-sanctions-status","name":"OFAC sanctions coverage","tags":["sanctions","ofac","dataset","coverage"],"description":"OFAC SDN sanction-list coverage: how many EVM + Solana + Tron addresses are ingested (free public 0xB10C list, US-Gov public-domain data) and when it was last refreshed. Heuristic exposure signal — not legal advice; verify against the official SDN list. No params."},{"id":"get-wallet-graph-walk","name":"Wallet graph walk","tags":["graph","flow","walk","tracing","explainability"],"description":"Bounded walk over the indexed stablecoin settlement flow graph from a wallet: payer<->recipient hops, value-weighted score, entity-aware keys, attributed-node stop option, and sanctioned-node markers. Explainability primitive only — NOT a detector verdict, identity/control assertion, AML decision, or legal advice."}],"tools":["Open allowances + approval-risk","Taint/exposure verdict","Unified risk verdict","Address compliance facts","Data freshness","Recent transactions","OFAC sanctions coverage","Wallet graph walk"],"extra":{"ard":{"type":"application/a2a-agent-card+json","metadata":null,"identifier":"urn:air:achivx.com:a2a:stablescan","artifactUrl":"https://stablescan.achivx.com/.well-known/agent-card.json","representativeQueries":["agent that checks whether a stablecoin address is frozen","a2a agent for stablecoin wallet risk and sanctions","ask an agent about recent stablecoin transfers"]},"inputModes":["application/json","text/plain"],"outputModes":["application/json"],"capabilities":{"streaming":false,"pushNotifications":false},"protocolVersion":"1.0.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":1,"provenance":"declared"},{"slug":"finance.banking","name":"Banking","confidence":1,"provenance":"declared"},{"slug":"security.scanning","name":"Security Scanning","confidence":1,"provenance":"derived"},{"slug":"data.news","name":"News & Feeds","confidence":1,"provenance":"declared"}],"categories":["data","finance","knowledge","security"],"language":"en"},"observed":{"status":"unavailable","statusReason":"5 consecutive checks failed; last success 13d ago.","lastOkAt":"2026-10-05T16:26:45.466Z","lastProbedAt":"2026-10-13T19:27:38.471Z","statusComputedAt":"2026-10-13T19:30:37.377Z","reliability30d":{"probes":25,"successRate":0.8,"p50Ms":134,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":25,"ok":20,"authBoundaryOk":0,"serviceOk":20,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-13T19:27:38.471Z","kind":"a2a_card","ok":false,"httpStatus":200,"latencyMs":194,"error":"invalid card: skills.7.description: Too big: expected string to have <=2000 characters","detail":null},{"at":"2026-10-09T19:25:57.250Z","kind":"a2a_card","ok":false,"httpStatus":200,"latencyMs":158,"error":"invalid card: skills.7.description: Too big: expected string to have <=2000 characters","detail":null},{"at":"2026-10-07T14:29:26.703Z","kind":"a2a_card","ok":false,"httpStatus":200,"latencyMs":195,"error":"invalid card: skills.7.description: Too big: expected string to have <=2000 characters","detail":null},{"at":"2026-10-06T11:26:09.490Z","kind":"a2a_card","ok":false,"httpStatus":200,"latencyMs":199,"error":"invalid card: skills.7.description: Too big: expected string to have <=2000 characters","detail":null},{"at":"2026-10-05T23:23:25.080Z","kind":"a2a_card","ok":false,"httpStatus":200,"latencyMs":140,"error":"invalid card: skills.7.description: Too big: expected string to have <=2000 characters","detail":null},{"at":"2026-10-05T16:26:45.466Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":99,"error":null,"detail":{"name":"Stablecoin Scanner","signed":false,"version":"1.2.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0.0"}},{"at":"2026-10-05T09:25:35.059Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":129,"error":null,"detail":{"name":"Stablecoin Scanner","signed":false,"version":"1.2.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0.0"}},{"at":"2026-10-05T03:24:56.950Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":46,"error":null,"detail":{"name":"Stablecoin Scanner","signed":false,"version":"1.2.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0.0"}},{"at":"2026-10-04T20:28:01.093Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":68,"error":null,"detail":{"name":"Stablecoin Scanner","signed":false,"version":"1.2.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0.0"}},{"at":"2026-10-04T13:26:40.052Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":119,"error":null,"detail":{"name":"Stablecoin Scanner","signed":false,"version":"1.2.0","cardPath":"/.well-known/agent-card.json","skillCount":8,"protocolVersion":"1.0.0"}}],"tools":null,"package":null,"toolSurface":null,"endpointFacts":[{"id":"ep_eyytxf85tc8b","url":"https://stablescan.achivx.com","type":"a2a","factsCheckedAt":"2026-10-09T19:25:57.278Z","auth":null,"tls":{"observedAt":"2026-10-09T19:25:57.290Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"achivx.com","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-10-05T20:30:47.000Z","validTo":"2027-01-03T20:30:46.000Z","daysToExpiry":76,"sanCount":2,"fingerprint256":"8C:70:D0:89:0D:D1:94:E8:62:56:DE:0C:19:27:5D:76:81:8D:DA:16:15:E9:5A:75:13:09:25:CE:91:B6:BC:99"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://stablescan.achivx.com/.well-known/agent-card.json","url":"https://stablescan.achivx.com/.well-known/agent-card.json","firstSeenAt":"2026-09-30T11:23:09.568Z","fetchedAt":"2026-09-30T11:23:09.568Z","normalizedAt":"2026-09-30T11:23:09.568Z"},{"source":"ard_catalog","key":"urn:air:achivx.com:a2a:stablescan","url":"https://stablescan.achivx.com/.well-known/ard.json","firstSeenAt":"2026-09-30T11:23:25.893Z","fetchedAt":"2026-09-30T11:23:25.893Z","normalizedAt":"2026-09-30T11:23:25.893Z"}]},"firstSeenAt":"2026-09-30T11:23:09.568Z","updatedAt":"2026-09-30T11:23:43.540Z"}