钱包情报,
一次请求即得。
驱动每份 Iris 报告的引擎,以 JSON API 形式提供。发送 Iris 支持的 11 条链上任意地址,即可获得它的身份、风险,以及两者的证据。
1# Analyze a wallet: its identity, risk and the proof2import os3import requests4 5profile = requests.post(6 "https://iriscan.app/api/analyze",7 headers={"Authorization": f"Bearer {os.environ['IRIS_KEY']}"},8 json={9 "address": "sy88tvipKfaCTuVVeU2PczPa88hqgPfKnYQyCHboHP8",10 "depth": 200,11 },12).json()13 14print(profile["identity"], profile["risk"])1{2 "address": "sy88tvipKfaCTuVVeU2PczPa88hqgPfKnYQyCHboHP8",3 "identity": {4 "type": "MEV_ARBITRAGE",5 "confidence": 0.956 },7 "risk": {8 "level": "LOW",9 "score": 10,10 "confidence": 0.311 },12 "summary": [13 "MEV arbitrage bot",14 "Bot",15 "Tips Jito",16 "Swaps on Jupiter, BisonFi"17 ],18 "behaviors": [19 {20 "kind": "MEV_ARBITRAGE",21 "confidence": 0.9522 },23 {24 "kind": "BOT",25 "confidence": 0.926 },27 {28 "kind": "JITO_TIPPER",29 "confidence": 0.930 }31 ],32 "behavior": {33 "transactions_analyzed": 200,34 "active": true35 },36 "meta": {37 "scope": "live",38 "depth": 20039 }40}一个密钥,任意语言
基于 HTTP 的纯 JSON 接口,使用账户中的 API 密钥,也可以用官方的 TypeScript 和 Python SDK。发送地址,返回画像。没有账户?Agent 可以通过 x402 用 USDC 按次付费。
天生可解释
每个标签都附带来源,每种行为都附带证明它的交易。
同一套引擎
报告和 Explorer 正是基于这些接口构建的,没有任何保留。
SDK
官方 SDK,
支持 TypeScript 和 Python。
覆盖每个接口的类型化客户端,内置风险摘要。目前从 GitHub 安装。
1npm install github:iris-intel-app/sdk-js即将发布到 npm 和 PyPI。在此之前,请从 GitHub 安装。
1import { Iris, riskSummary } from "@iriscan/sdk";2 3const iris = new Iris({ apiKey: process.env.IRIS_API_KEY });4 5const report = await iris.analyze("<token mint>"); // 1 analysis6console.log(report.risk.level, report.risk.score); // "HIGH" 827 8const scan = await iris.launchTool("<dev wallet>"); // free9if (scan.verdict !== "none") console.log(`Made with ${scan.tool_name}`);10console.log(riskSummary(report).bundleHeldPct);两者都会从环境变量读取 IRIS_API_KEY。在你的账户中创建密钥。
iris-guard:面向 Solana 机器人的交易前跑路过滤器,基于 SDK 构建。
接口
四个接口,
Iris 掌握的一切。
JSON 进,JSON 出,位于本站的 /api 下。错误以 {“error”: “…”} 返回,状态码会告诉你是否应该重试。
POST/api/analyze
分析钱包
读取钱包最近的交易,将每个交易对手与来自 57 个来源的 640,000+ 个已标注地址进行比对,运行行为规则,返回它是谁、风险多高以及原因。
请求体
addressstring必填base58 格式的 Solana 地址、0x 开头的 EVM 地址、dydx1 开头的 dYdX 地址、noble1 开头的 Noble 地址、Bitcoin 地址(bc1、1 或 3 开头)或 Tron 地址(T 开头)。
depthinteger可选读取的最近交易数,1 到 10,000。默认 1,000;越多越慢。
chainstring可选"solana"、"ethereum"、"base"、"arbitrum"、"robinhood"、"bsc"、"polygon"、"dydx"、"noble"、"bitcoin" 或 "tron"。默认:base58 地址为 Solana,0x 为 Ethereum,dydx1 为 dYdX,noble1 为 Noble,Bitcoin 地址为 Bitcoin,Tron 地址为 Tron。
返回WalletProfile
1curl -X POST https://iriscan.app/api/analyze \2 -H "Authorization: Bearer $IRIS_KEY" \3 -H "Content-Type: application/json" \4 -d '{ "address": "sy88tvipKfaCTuVVeU2PczPa88hqgPfKnYQyCHboHP8" }'1{2 "identity": {3 "type": "MEV_ARBITRAGE",4 "confidence": 0.955 },6 "risk": {7 "level": "LOW",8 "score": 10,9 "confidence": 0.310 },11 "summary": [12 "MEV arbitrage bot",13 "Bot",14 "Tips Jito"15 ],16 "behaviors": [17 {18 "kind": "MEV_ARBITRAGE",19 "confidence": 0.9520 }21 ],22 "meta": {23 "scope": "live",24 "depth": 100025 }26}钱包画像
一个结论,
以及背后的证据。
/analyze 返回的内容及其类型。每个字段都是报告页面所渲染的内容,所以你在 Iris 中看到的一切都可以拿来构建。
1type WalletProfile = {2 address: string;3 // The chain read, and its coin: the sol fields hold ETH on EVM chains (BNB on BNB Chain, POL on Polygon), USDC4 // on dYdX and Noble, BTC on Bitcoin, TRX on Tron5 chain: "solana" | "ethereum" | "base" | "arbitrum" | "robinhood" | "bsc" | "polygon" | "dydx" | "noble" | "bitcoin" | "tron";6 native_symbol: "SOL" | "ETH" | "BNB" | "POL" | "USDC" | "BTC" | "TRX";7 // What the wallet is, and how sure: "MEV_ARBITRAGE", "EXCHANGE", "MIXER"…8 identity: { type: string; confidence: number };9 // A 0–100 score, LOW / MEDIUM / HIGH, and how complete the data behind it is10 risk: { level: "LOW" | "MEDIUM" | "HIGH"; score: number; confidence: number };11 // One-line takeaways: "MEV arbitrage bot", "Sends to Binance"12 summary: string[];13 // Everything known about the address, each with its source and a link14 labels: Label[];15 // Patterns found, with the transaction signatures that show them16 behaviors: Behavior[];17 // Mixers, drainers and sanctioned wallets it dealt with18 flagged_counterparties: Counterparty[];19 // Exchanges, protocols and DEXes it used20 known_counterparties: Counterparty[];21 // SOL and dollars in and out, and the biggest parties on each side22 flows: { inbound: FlowSide; outbound: FlowSide };23 // Every counterparty with totals and transfers: the Explorer's graph24 connections: Connection[];25 // Where it swapped, and what it traded there26 swap_venues: SwapVenue[];27 // SOL held since the wallet was created28 balance_history: { time: number; sol: number; sampled: boolean }[];29 // When it ran, how many transactions it read, how complete the data is30 meta: { analyzed_at: string; depth: number; data_completeness: number };31};请求错误
地址无效、depth 超出范围或请求体格式错误。请修正请求,重试无济于事。
密钥无效
密钥缺失、错误或已被吊销。请在 账户 → API 中创建。
额度不足
套餐和充值包都已用完。充值后重试。
超出限制
超出密钥的调用限制(免费版每天 10 次,付费套餐按每 10 分钟的次数计算):请在 Retry-After 之后重试,不会扣费。或者已有三个请求在运行:等其中一个完成后再重试。
服务器错误
我们这边或上游服务出错。可以放心重试,不会扣费。
繁忙或超时
服务已满载,或处理时间超过两分钟。请几秒后重试。