OceanAltOceanAlt

DEVELOPERS · FREE API

A pre-payment risk check for your agent or system

The same address-risk logic we use ourselves, as a free API: no signup, CORS-enabled, returns verifiable evidence. Drop it into your system or an AI agent's pre-settlement flow — ask 'is this counterparty safe?' before paying.

No signup · free

Call directly, no API key (fair use).

CORS enabled

Call from browser, agent, or server.

Evidence, not just a score

Which list, which on-chain path — all verifiable.

GET/api/risk

Single address

Screen one payee before paying: sanctions / mixer / our risk list, or high-risk on-chain signals? Returns a verdict plus verifiable evidence.

Parameters

  • addr requiredAddress to screen: 0x (EVM) / T (TRON) / Solana base58
  • network optionalEVM chain for 0x addresses: ethereum (default) / base / bsc / polygon / arbitrum / optimism / avalanche

Example

curl "https://oceanalt.com/api/risk?addr=0x8589427373D6D84E98730D7795D8f6f8731FDA16&network=ethereum"

Response

{
  "address": "0x8589...FDA16",
  "verdict": "risky",           // risky | caution | clear
  "risk": 100,                   // 0-100
  "blocked": true,              // 网关是否会拦下 / gateway blocks?
  "signals": ["混币器合约"],
  "evidence": [                  // 可点开核验的证据 / verifiable
    { "label": "命中 mixer 名单", "detail": "Tornado Cash",
      "url": "https://etherscan.io/address/0x8589..." }
  ],
  "advice": "Decline. ...",
  "standard": "https://oceanalt.com/en/rap"
}
POST/api/risk/batch

Batch screening

Screen many addresses at once (deduped, up to 25). For OTC desks / batch jobs. Sorted risky → caution → clear.

Parameters

  • addresses requiredArray of addresses (JSON body), up to 25

Example

curl -X POST "https://oceanalt.com/api/risk/batch" \
  -H "content-type: application/json" \
  -d '{"addresses":["0x8589...","TWd4...","T..."]}'

Response

{
  "summary": { "total": 3, "risky": 1, "caution": 0, "invalid": 1 },
  "results": [
    { "address": "0x8589...", "verdict": "risky", "risk": 100,
      "blocked": true,  "top": "混币器合约" },
    { "address": "TWd4...",    "verdict": "clear", "risk": 3,
      "blocked": false, "top": "有历史活动" }
  ]
}
GET/api/risk/flow

Fund-flow (Tron + EVM)

For a Tron USDT address: top-8 counterparties by amount, first USDT inflow, Tether-frozen counterparties, and bridge detection. EVM (ethereum/base/polygon/arbitrum/optimism, pass network) returns USDT/USDC counterparties + bridge detection.

Parameters

  • addr requiredTron address (T…) or 0x EVM address
  • network optionalEVM chain for 0x (ethereum default / base / polygon / arbitrum / optimism); omit for Tron

Example

curl "https://oceanalt.com/api/risk/flow?addr=TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb"

Response

{
  "chain": "tron",
  "total": 10000,
  "inbound":  [ { "address": "T...", "tag": "Binance-Hot",
                  "count": 17, "usdt": 2890000, "risky": false } ],
  "outbound": [ { "address": "T...", "tag": "OKX Hot",
                  "count": 25, "usdt": 3370000, "risky": false } ],
  "firstInflow": { "from": "T...", "usdt": 500, "date": "2024-06-01" },
  "riskyParties": 0
}

What the verdict means

  • riskySanctions / mixer / our risk list, or high-risk on-chain → decline.
  • cautionRisk signals present → proceed only within your mandate.
  • clearNo risk signal. Note: absence of evidence ≠ proof of safety.

Supported networks

7 EVM chains + Tron + Solana. Sanctions / mixer / scam checks are chain-agnostic; on-chain signals and issuer (USDT/USDC) freeze are queried live per chain, each verifiable.

  • ethereum · base · bsc · polygon · arbitrum · optimism · avalanche
  • tron (USDT-TRC20 freeze / deep trace / fund-flow) · solana (sanctions list)

x402 paid tier (pay-per-call · no signup, no key)

Heavier analysis via x402: HTTP 402 → sign one USDC authorization → 200. The facilitator verifies, pays gas, and never custodies your funds. One line with the oceanalt-aml SDK, or any x402 client.

  • POST /api/x402/decisionfull gateway verdict (allow/review/decline) + evidence · $0.30
  • GET /api/x402/trace?addr=T…Tron multi-hop taint trace (≤3 hops) · $0.20
  • POST /api/x402/batchbatch screening (≤25) · $0.10

Machine-readable manifest (free vs paid / network / facilitator / pricing): /api/x402

SDK & MCP (wire it into your agent)

① Programmatic SDK (Node / browser / Deno / Bun, zero-dependency free path):

npm i oceanalt-aml

import { OceanAltAML } from "oceanalt-aml";
const aml = new OceanAltAML();
const r = await aml.screen("0x…", { network: "optimism" });        // free
const d = await aml.decision({ to: "0x…", amountUsdc: 25 },        // paid (x402)
  { privateKey: process.env.PAYER_KEY });

② MCP server (native calls from Claude / any MCP client):

{
  "mcpServers": {
    "oceanalt-aml": {
      "command": "npx", "args": ["-y", "oceanalt-aml-mcp"],
      "env": { "OCEANALT_PAYER_KEY": "0x…" }
    }
  }
}

Free tools: screen_address, recent_flagged; paid: compliance_decision, deep_trace, batch_screen (needs OCEANALT_PAYER_KEY).

Fair use: free for personal and integration testing. For heavy or commercial use, get in touch. Signals only — not financial or trading advice.

🤖 x402-ecosystem callable (free): our AML is declared as an x402 resource at price=0 — agents call directly, no payment, no key (vs paid per-call APIs like MistTrack). Machine-readable manifest: /api/x402. Every query enriches our own address-intelligence DB — it grows with use.

→ Try address screening in the browser · Full compliance gateway (11 gates) · RAP standard