API
POST /launch-tool
Whether a Solana wallet launched or traded memecoins with a launch kit (Proxima, BlockX), with the evidence: its fees, its fee wallets, its creator-fee claims, its nonce cash-outs and the tree of wallets that funded it.
Request
Free, up to 10 scans a minute per account (and 20 a day on the free tier), and takes up to about two minutes (most scans take seconds). Iris reads the wallet's history (its whole history, or its latest and first 1,000 transactions) for the fingerprints Proxima and BlockX leave, reads each fee wallet it paid, and walks up the wallets that funded it (through stake and nonce accounts too). The report is about the kit whose marks it found, Proxima first; with none, it says so for both. Solana only.
| Field | Type | Meaning |
|---|---|---|
wallet | string | Required. The dev or trader wallet. A token's mint scans the token's creator. |
mint | string | Narrow the tokens, sells, fee wallets and claims to this token. The verdict still reads the whole wallet. |
1curl -X POST https://iriscan.app/api/launch-tool \2 -H "Authorization: Bearer $IRIS_KEY" \3 -H "Content-Type: application/json" \4 -d '{ "wallet": "<dev wallet>" }'What it looks for
Proxima charges 5% of the SOL received on every sell and 5% of pump.fun creator rewards claimed. Neither is inside the sell or named on-chain, so Iris reads how they are paid:
- Sell fee (strong): after a sell, a separate transaction of 3 accounts and 1 instruction, a plain SOL transfer of exactly 5% of what the sell paid out, built with the sell's blockhash and landing a few slots later. A fee on a fresh blockhash counts only when the sell carries another Proxima mark. A plain 5% transfer is not enough.
- One fee wallet per token: a fresh address takes the fees of one token, and the cut of its creator-fee claims.
- Claim cut (strong): a pump.fun or PumpSwap creator-fee claim that sends 5% of what it collected on, in the same transaction.
- Receipt: a trade pays exactly 895,880 lamports to a fresh address, which returns exactly 890,880 seconds later (strong with both legs, moderate with only the first).
- Weak on their own: sells guarded by the Lighthouse program, tips to several landing services at once (Jito, Helius Sender, 0slot, Astralane), launches sent with one tip-only transaction per relay, and a funding tree of equal transfers built in seconds.
BlockX takes a fee inside every trade and moves its wallets' SOL through durable-nonce accounts, which hide a payment from a plain transfer:
- Fee (strong): inside a buy, a sell or a launch, right after the tip, a transfer to BlockX's fee wallet of 0.4% to 0.8% (in 0.1% steps, rounded up) of the buy or of what the sell paid; before October 6, a flat 0.005 SOL to one of three wallets. Subscribers pay none.
- Nonce relay (strong): a relay wallet parks what a staging wallet paid it, less 0.004 SOL, in a nonce account, withdraws it to a fresh hop and pays the hop's fee to send it on, the hop keeping exactly 650,240 lamports; the relay returns exactly 2,824,760 lamports of change. Read from the hop or the relay; the funding walk follows it up.
- Nonce cash-out (strong): a round amount parked in a nonce account and withdrawn to another wallet a second later, all but the account's rent (1,056,640 lamports).
- Rent sweep (strong): BlockX withdrew the rent of the wallet's nonce accounts in a batch the wallet co-signed.
- Marketplace wallet (moderate): first paid by an exchange and swept seconds later into BlockX's marketplace wallet.
- Weak on their own: a 3,000,000-lamport Jito tip at launch and 1,000,000-lamport Astralane tips on sells, a terminal fee ending in 44,512 lamports, a payment whose fee a third wallet paid.
Response
1{2 "wallet": "<dev wallet>",3 "tool_name": "Proxima",4 "verdict": "tool",5 "verdict_name": "Proxima",6 "confidence": 0.99,7 "evidence": [8 {9 "kind": "sell_fee",10 "strength": "strong",11 "text": "1 fee of exactly 5% of a sell (0.0657 SOL on 1.3146 SOL received)…",12 "signatures": ["…"]13 }14 ],15 "tokens_launched": [16 { "mint": "…pump", "name": "…", "symbol": "…", "time": "…", "signature": "…", "relays": ["Astralane", "Jito"], "tip_signatures": ["…"] }17 ],18 "sells": { "seen": 1, "through_tool": 1, "sol_received": 1.3146, "fees_sol": 0.0657, "unconfirmed": 0, "fees": [] },19 "fee_wallets": [20 { "address": "…", "mints": ["…pump"], "paid_sol": 0.0775, "sell_fees": 1, "claim_cuts": 1, "balance_sol": 0.0775, "swept": false, "sent": [] }21 ],22 "claims": [23 { "signature": "…", "venue": "pump.fun", "claimed_sol": 0.2362, "cut_sol": 0.0118, "fee_wallet": "…", "mint": "…pump" }24 ],25 "funding": {26 "layers": [{ "depth": 1, "wallets": 10, "transfers": 10, "amount_sol": 0.110863894, "same_amount": 10, "fan_out": 1 }],27 "wallets": 85,28 "span_seconds": 22,29 "tree": true,30 "root": { "address": "…", "reason": "busy", "depth": 9, "first_funder": "…", "first_funder_label": "kol" },31 "complete": true32 },33 "window": { "transactions": 21, "whole_history": true },34 "requests": 91,35 "complete": true,36 "notes": []37}| Field | Type | Meaning |
|---|---|---|
tool, checked | string, string[] | The kit the report is about (proxima or blockx, named in tool_name), and the kits looked for. |
verdict | string | tool (a fingerprint only the kit leaves), likely (moderate evidence only) or none; verdict_name reads it, confidence is 0 to 1. |
evidence[] | Evidence | Each fingerprint found, strongest first: kind, strength (strong, moderate, weak), text ready to show and the transactions that show it. |
tokens_launched[] | Token | Tokens it created on pump.fun: the mint, when, the creation transaction and the landing services it tipped (in the launch and in tip-only transactions sent with it). |
sells | object | Launchpad sells read (seen), those the kit took its fee on (through_tool), what they paid out and the fees, each fee with its sell. |
fee_wallets[] | FeeWallet | The fee wallets this wallet paid: its tokens, what it paid (sell_fees, claim_cuts, and for BlockX trade_fees inside its buys and launches), the balance now, and whether it ever sent anything out (swept) and where (sent). |
claims[] | Claim | Proxima's creator-fee claims: what was claimed, the 5% cut and the fee wallet it went to. |
funding | object | null | The wallets that funded it, walked up layer by layer (wallets, transfers, the most common amount, fan-out, time span) to where the walk stops: a busy wallet (the operator's funder) or a known service. root says what Iris knows of it, and who first funded it. |
requests, complete | number, boolean | A scan makes at most 300 requests; complete is false when it, or the time limit, cut a part short (the notes say which). |
Fees are proof, funding is a lead
A sell fee or a claim cut is Proxima's own payment, a fee to BlockX's fee wallet BlockX's. A funding tree of equal transfers shows a tool built it, and its root is the wallet that paid for it, not necessarily the person behind the dev. A scan that finds nothing is still charged; one that fails is refunded.