{"service":"salvo","mode":"mainnet","sellerNetwork":"base","endpoints":[{"id":"token-safety","route":"/v1/token-safety","method":"POST","title":"Token Safety Scanner","description":"Scores rugpull/honeypot risk of an ERC20 token from on-chain signals: mint/pause functions, ownership, upgradeable proxy, ERC20 sanity.","priceUsd":0.005,"enabled":true,"inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","description":"ERC20 contract address (0x...)"},"chain":{"type":"string","description":"Data chain (ethereum|base|arbitrum|optimism|...). Default ethereum."}}},"outputExample":{"token":"0x...","chain":"ethereum","riskScore":18,"verdict":"safe","name":"Example","symbol":"EXM","decimals":18,"ownerRenounced":true,"flags":[],"capabilities":[]}},{"id":"pretrade","route":"/v1/pretrade","method":"POST","title":"Pre-Trade Risk Check","description":"Single go/caution/block verdict for an ERC20 before buying: safety scan + honeypot sell-simulation (routed to the liquidity pair) + liquidity depth. Built for trading bots (one call).","priceUsd":0.003,"enabled":true,"inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","description":"ERC20 contract address (0x...)"},"chain":{"type":"string","description":"Data chain (ethereum|base|arbitrum|optimism|bsc|...). Default ethereum."}}},"outputExample":{"token":"0x...","chain":"ethereum","verdict":"go","canSell":true,"riskScore":12,"liquidity":{"pairExists":true,"pooledNative":41.2,"nativeSymbol":"WETH","tier":"deep","dex":"uniswap-v2"},"reasons":["passed safety, sell-simulation, and liquidity checks"],"confidence":0.9}},{"id":"wallet-risk","route":"/v1/wallet-risk","method":"POST","title":"Wallet Risk / AML Score","description":"AML risk assessment: OFAC + mixer blocklist screening of the address and its counterparties, an ERC20 + native ETH value graph, and behavioral laundering typologies — with an explainable score and recommendation.","priceUsd":0.01,"enabled":true,"inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Wallet address (0x...)"},"chain":{"type":"string","description":"Data chain. Default ethereum."},"depth":{"type":"number","description":"Analysis depth 1–3 (wider history window, more thorough, higher cost). Default 1."}}},"outputExample":{"address":"0x...","chain":"ethereum","sanctioned":false,"riskScore":12,"verdict":"safe","recommendation":"ALLOW","signals":[],"exposure":{"directBadContacts":[],"counterparties":14}}},{"id":"token-unlock","route":"/v1/token-unlock","method":"POST","title":"Token Unlock / Vesting Reader","description":"Reads vesting/lockup schedule from standard contracts (OZ VestingWallet, TokenTimelock): start, end, progress, unlock date.","priceUsd":0.004,"enabled":true,"inputSchema":{"type":"object","required":["contract"],"properties":{"contract":{"type":"string","description":"Vesting/lockup contract address (0x...)"},"chain":{"type":"string","description":"Data chain. Default ethereum."},"now":{"type":"number","description":"UNIX time for progress calc (optional; otherwise taken from block)."}}},"outputExample":{"contract":"0x...","chain":"ethereum","standard":"OZ VestingWallet","start":1700000000,"end":1731536000,"percentVested":42.5}},{"id":"wallet-score","route":"/v1/wallet-score","method":"POST","title":"Wallet Quality / Airdrop Score","description":"Composite 0–100 wallet score from lifetime activity, counterparty/token diversity (multi-day window) and balance. Gauges organic behavior (anti-sybil) and wallet \"quality\". Known infrastructure is flagged, not scored.","priceUsd":0.006,"enabled":true,"inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Wallet address (0x...)"},"chain":{"type":"string","description":"Data chain. Default ethereum."}}},"outputExample":{"address":"0x...","chain":"ethereum","score":73,"tier":"good","breakdown":{"activity":26,"diversity":32,"balance":15},"stats":{"txCount":412,"uniqueCounterparties":180,"uniqueTokens":24}}},{"id":"wallet-graph","route":"/v1/wallet-graph","method":"POST","title":"Investigation Graph","description":"Transfer graph around a wallet with risk-classified nodes (sanctioned/exploit/scam/mixer/infra) and edges — for tracing flows and connections. Powers the interactive investigation view.","priceUsd":0.008,"enabled":true,"inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Wallet/contract address (0x...)"},"chain":{"type":"string","description":"Data chain. Default ethereum."},"depth":{"type":"number","description":"Graph depth 1–2 (2 expands active neighbors to reveal paths). Default 1."}}},"outputExample":{"address":"0x...","chain":"ethereum","depth":1,"nodes":[{"id":"0x...","category":"clean","label":"","subject":true}],"edges":[{"from":"0x...","to":"0x...","kind":"erc20","count":3}],"stats":{"nodes":24,"edges":31,"flagged":1},"scanned":{"fromBlock":25160000,"toBlock":25290000,"blocks":130000,"incomplete":false}}}]}