
Stablecoin risk for agents: freezes, OFAC, exposure, allowances, transfers, graph. 7 chains.
Listed on
First seen 2 Oct 2026. One server, whatever directories list it: each directory listing keeps its own page and history.
1
Directories
Collected by InvokeRank
8
Tools
From an anonymous probe
-
ToolBench grade
Not graded by Arcade
-
GitHub stars
No repository data
Tools
| Tool | Description | Behaviour |
|---|---|---|
| get_address_approvals | Open ERC-20/Permit2 allowances for an address (Class-F decoded facts) with a per-row approval-risk band (shadow heuristic): unlimited to a flagged/unknown spender is the #1 drain vector. A known-service spender (DEX router / Permit2) is normal. Expired Permit2 sub-allowances are 'expired'. The band is informational, not a risk-tier contribution, until it clears the precision gate. No auth. | Not declared |
| get_address_compliance | Per-address Class-F compliance facts (M4) on ONE chain, plus the OFAC SDN flag. freeze[]: one row per enabled freeze-capable stablecoin — status frozen|seized|clear|unknown; 'unknown' = no issuer act names the address and the pair's historical freeze-log backfill is not complete (freeze_log_backfilled=false), so absence-of-evidence is NOT published as 'not frozen' (P4-18); coverage=true = this chain's issuer acts are in the indexed log at all (a stablecoin registered after indexing began, e.g. USD1 on Ethereum/Tron, also needs its own history swept). frozen_usd6 = the token balance last read on a frozen/seized address at frozen_asof_block, face value with 6 decimals — locked now, not at the act (a blacklisted address can still receive); absent = not read, never zero. not_freezable[] = the enabled stablecoins here whose issuer has no per-address freeze ({token: symbol, token_address: contract address — the two fields a freeze[] row spells the same way — variant, reason: no_freeze_function = the contract has no freeze function, no_freeze_authority = a Solana mint has no freeze authority}), e.g. the Binance-Peg USDT/USDC wrappers on BNB Chain: the issuer cannot freeze them on this chain, enforcement happens off-chain (bridge, custodian, exchange); every enabled stablecoin is in freeze[] or here, never both. frozen_elsewhere[] = the same 20 address bytes under a standing freeze/seize on ANOTHER indexed chain (EVM and Tron share them; Solana never matches), the cross-chain signal get_address_risk does not score: the issuer acted there — it does not freeze the balance here, and the same bytes are the same owner only for a plain key account; empty = no act elsewhere in what is indexed, not clean everywhere. freeze_proposals[] = acts proposed on this chain's issuer owner multisig naming the address (USDT on Ethereum and Tron): executed ones only, pending too only if the operator sets FREEZE_PROPOSALS_PUBLIC=true, failed/revoked/superseded/stale never; balance_at_submission, balance_at_execution and moved_out are raw token minor units (decimal strings); empty = no published proposal, not 'nothing pending'. Decoded on-chain issuer acts with provenance; no heuristics; not an identity/AML/legal determination. No auth. | Not declared |
| get_address_exposure | The §8 taint-exposure verdict for an address: a bounded backward BFS over the value graph to the nearest OFAC-sanctioned or hack/drainer/mixer root, returning a class (sanctioned|direct|indirect|negligible|unknown|none), nearest-hop, and a value-proportional haircut fraction. 'unknown' = the assessment could not be completed (OFAC list unloaded, walk truncated by its time budget or frontier cap, Solana coverage pending or partial, short history, or no hack/drainer/mixer label loaded for this chain) — never a false 'none'; incomplete_reasons names which (time_budget may complete at a quieter moment, frontier_cap repeats). Heuristic risk signal, not an AML/legal determination. No auth. | Not declared |
| get_address_risk | The unified risk verdict for an address (§9 R2): a single tier (unknown|none|low|medium|high|severe) aggregating decoded FACTS (OFAC listing, issuer freeze/seize, exposure to a sanctioned/hack root) and ATTRIBUTED labels (with provenance, capped at medium alone; a lone-source accusation contributes no tier). tier 'unknown' means the assessment could NOT be completed (incomplete coverage) — NOT 'checked clean'; a tier 'unknown' names its cause in evidence and incomplete_reasons (e.g. time_budget: the exposure walk was cut). The freeze input is this chain's per-token status alone: frozen/seized argues for high, and an 'unknown' status or a pair whose freeze history is not backfilled turns a would-be 'none' into 'unknown' — so a Solana tier, where every freeze pair is unknown, is never 'none'. NOT scored: the same address frozen on another chain (frozen_elsewhere), issuer freeze proposals and frozen balances — read them with get_address_compliance. Not an identity/AML/legal determination. No auth. | Not declared |
| get_recent_transactions | Recent stablecoin transfers on ONE chain (newest first), 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. No auth. | Not declared |
| get_sanctions_status | 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 auth. | Not declared |
| get_sync_status | Data freshness for one chain, so the agent knows how recent the data behind an answer is: freshness_seconds (the age of the newest indexed transfer, the freshness measure on every chain; null when it could not be read for this answer), the indexer's head and finalized blocks, its safe block and its lag in blocks (lag_blocks = head_block - last_indexed_block). 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. No auth. | Not declared |
| get_wallet_graph_walk | Bounded walk over the indexed stablecoin settlement flow graph from a wallet: payer<->recipient hops, value-weighted score, entity-aware node keys, attributed-node stop option, and sanctioned-node markers. This is an explainability primitive, not a detector verdict, identity/control assertion, AML decision, or legal advice. Subjects over the degree gate (~50k edge-rows) return hop 1 only with frontier_truncated=true. 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. No auth. | Not declared |
| Directory | Listing | Tier | First seen |
|---|---|---|---|
| Official MCP Registry | Stablecoin Scanner | - | 2 Oct 2026 |