{"domain":"stablescan.achivx.com","count":1,"changes":[{"captured_at":"2026-10-15T20:34:02.524248","card_hash":"db82142e043f2c3983b4a21e5000c901e93284eef229a0c7424e18d7cfb675ce","previous_card_hash":null,"diff":{"skills_added":[{"id":"get-address-approvals","name":"Open allowances + approval-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'.","tags":["allowances","approvals","erc20","permit2","risk"],"inputModes":null,"outputModes":null},{"id":"get-address-compliance","name":"Address compliance facts","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 Solana mint without a freeze authority) - e.g. the Binance-Peg USDT/USDC on BNB Chain, where enforcement is off-chain. frozen_elsewhere[]: the same address under a standing act on another indexed chain - the cross-chain signal, not scored by get-address-risk. freeze_proposals[]: executed issuer multisig proposals naming the address (pending ones only where the operator publishes them in full; elsewhere a pending proposal's address is shown once it executes). Class-F decoded facts, no heuristics.","tags":["compliance","freeze","seize","ofac","sanctions"],"inputModes":null,"outputModes":null},{"id":"get-address-exposure","name":"Taint/exposure verdict","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'; incomplete_reasons names why: OFAC list unloaded, walk cut (time_budget, frontier_cap), Solana coverage pending or partial, short history, or no hack/drainer/mixer label loaded for this chain.","tags":["taint","exposure","sanctions","aml","risk"],"inputModes":null,"outputModes":null},{"id":"get-address-risk","name":"Unified risk verdict","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'; it names its cause in evidence and incomplete_reasons (e.g. time_budget: the exposure walk was cut). An 'unknown' freeze status or a pair whose freeze history is not backfilled turns a would-be 'none' into 'unknown', so a Solana tier is never 'none'. Not scored: frozen_elsewhere, issuer freeze proposals and frozen balances - read get-address-compliance.","tags":["risk","verdict","screening","compliance"],"inputModes":null,"outputModes":null},{"id":"get-recent-transactions","name":"Recent transactions","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.","tags":["transfers","transactions","feed","stablecoin"],"inputModes":null,"outputModes":null},{"id":"get-sanctions-status","name":"OFAC sanctions 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.","tags":["sanctions","ofac","dataset","coverage"],"inputModes":null,"outputModes":null},{"id":"get-sync-status","name":"Data freshness","description":"Indexer head/safe/finalized block, lag_blocks (head_block - last_indexed_block) and freshness_seconds (the age of the newest indexed transfer, the freshness measure on every chain) so the agent knows data recency. On Solana (chain -1) safe_block is the finalized slot, and lag_blocks is near 0 by construction and never negative, so it is not a freshness signal there: read freshness_seconds. On the EVM chains and Tron a negative lag_blocks means the node's head went back.","tags":["freshness","sync","status"],"inputModes":null,"outputModes":null},{"id":"get-wallet-graph-walk","name":"Wallet graph walk","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. window_from present means the answer was built from that date, the edge-grain horizon, not from the start of the requested window; the default window all, 90d and 1y included (/v1/methodology edge_grain_horizon). When window_from is present, read the graph as covering that span only — do not treat the absence of a counterparty, a path or a sanctioned node as evidence about anything before that date. volume on nodes is the token's raw minor units (divide by 10^decimals); volume_usd6 is the same amount in USD with 6 decimals at peg 1. On Solana (chain -1) the answer carries coverage_status for the subject address only, never for its counterparties: pending — its history is still being filled, so an empty or small answer is not final; partial — filled to a documented bound. The walk shows a finished fill after the next Solana rollup pass (about 10 minutes), and never shows history older than window_from. This read never starts a fill, so pending can also mean none was asked for yet: one compliance read of the address asks for it. A Solana answer without coverage_status could not read it in time — treat it as pending. On Solana (chain -1) the edge grain of 2026-07-20..2026-09-14 is incomplete: those days hold part of their transfers or none, because their raw rows were offloaded before a fix reached production on 2026-09-17; they are not restored, and answers do not mark them (decision of 2026-09-17). Solana's grain is never trimmed, so there the horizon that window_from reports is not where retained data ends: once window_from is later than 2026-09-14 the answer holds none of those days. An answer that reaches them — window_from on or before 2026-09-14, or no window_from over a window that includes them — counts them as floors: at least this much, never the whole, and a counterparty, path or sanctioned node missing from those days is not evidence that there was none.","tags":["graph","flow","walk","tracing","explainability"],"inputModes":null,"outputModes":null}],"skills_removed":[],"skills_changed":[],"fields_changed":[{"field":"name","before":null,"after":"Stablecoin Scanner"},{"field":"description","before":null,"after":"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)."},{"field":"version","before":null,"after":"1.4.0"},{"field":"protocolVersion","before":null,"after":"1.0.0"},{"field":"url","before":null,"after":"https://stablescan.achivx.com"},{"field":"documentationUrl","before":null,"after":"https://stablescan.achivx.com/agents.md"},{"field":"supportedInterfaces","before":null,"after":[{"protocolBinding":"JSONRPC","protocolVersion":"1.0","url":"https://stablescan.achivx.com/a2a"}]},{"field":"capabilities","before":null,"after":{"extensions":[{"description":"Every card skill is also callable as its own JSON-RPC method on the same endpoint (method = skill id, params = the skill's inputSchema object). Calling such a method implies activation; no A2A-Version header required on these.","required":false,"uri":"https://stablescan.achivx.com/a2a-ext/skill-methods/v1"},{"description":"Machine-readable map of the ACHIVX ecosystem: the sibling surfaces, their manuals and agent cards, and the shared identity layer. Data-only — it adds card information and changes nothing in the request flow.","params":{"identityBridge":"a wallet is an address: the same EIP-191 wallet that is an identity on the forum is a vettable address on the Stablecoin Scanner","surfaces":[{"agentCard":"https://stablescan.achivx.com/.well-known/agent-card.json","job":"vet an address, check a freeze, read settlement","manual":"https://stablescan.achivx.com/agents.md","name":"Stablecoin Scanner"},{"agentCard":"https://x402scan.achivx.com/.well-known/agent-card.json","job":"find an x402 service to pay, vet it, verify a payment","manual":"https://x402scan.achivx.com/agents.md","name":"x402scan"},{"agentCard":"https://forum.achivx.com/.well-known/agent-card.json","job":"ask, answer (register to write)","manual":"https://forum.achivx.com/agents.md","name":"ACHIVX Forum"},{"job":"the shared layer: one EIP-191 wallet across surfaces, forum trust levels TL0-TL5","manual":"https://api.achivx.com/agents.md","name":"Reputation & identity"}]},"required":false,"uri":"https://stablescan.achivx.com/a2a-ext/ecosystem/v1"}],"pushNotifications":false,"streaming":false}}],"other_changed":true,"is_empty":false,"human_summary":"added 8 skills · name ∅ → Stablecoin Scanner · description ∅ → Stablecoin Scanner — onchain dollar obse · version ∅ → 1.4.0 · protocolVersion ∅ → 1.0.0 · url ∅ → https://stablescan.achivx.com · documentationUrl ∅ → https://stablescan.achivx.com/agents.md · supportedInterfaces ∅ → https://stablescan.achivx.com/a2a (JSONR · capabilities ∅ → extensions, pushNotifications, streaming"}}]}