GET/api/wallet-check
Free in beta
One call per wallet, no key. The same answer is reused for 5 minutes per address.
Query
addressstringRequired- A Solana wallet address (base58, 32 to 44 characters), or a Solscan or Explorer link to one. Mainnet only.
Responses
- 200A WalletCheck.
- 400Not a wallet address; or an account a program owns:
That's a program account, not a wallet, with ahint. - 404Nothing on mainnet for this address yet: no SOL, no tokens, no transactions.
- 429Too many checks from one client. Wait for
Retry-After. - 502 · 504The chain didn't answer, or not in time. Try again in a moment.
curl
# Works today, no key. Put any mainnet wallet address in place of <wallet>.
$ curl "https://www.rollcage.tech/api/wallet-check?address=<wallet>"
JavaScript
const res = await fetch(`https://www.rollcage.tech/api/wallet-check?address=${wallet}`);
const check = await res.json();
if (!res.ok) throw new Error(check.error); // 400 · 404 · 429 · 502 · 504
if (check.verdict === 'would be held') {
// Stop: show check.would_hold to the owner before you fund or pay.
}
Response 200 · example, shortened
{"address":"<wallet>","sol":3.2,
"tokens":[{"mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","amount":125.5,"value_usd":125.49}],
"txs_in_window":13,"window":{"from":"2026-10-04T10:00:00.000Z","to":"2026-10-14T10:00:00.000Z"},
"outflows":[{"amount":7.5,"token":"SOL","mint":null,"to":"<recipient>","time":"2026-10-14T10:00:00.000Z","signature":"<signature>","new_recipient":true}],
"largest_outflow":{"sol":7.5,"pct":70.1,"to":"<recipient>","time":"2026-10-14T10:00:00.000Z","signature":"<signature>","new_recipient":true},
"new_recipients":[{"address":"<recipient>","amount":7.5,"token":"SOL","time":"2026-10-14T10:00:00.000Z","signature":"<signature>","lookalike_of":null}],
"delegates":[{"token_account":"<token account>","mint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","delegate":"<delegate>","amount":100,"program":"Token"}],
"programs":[{"program_id":"11111111111111111111111111111111","name":"System Program","txs":5}],
"score":31,"verdict":"would be held",
"would_hold":[{"what":"7.5 SOL to Cyy…qg9","why":"70.1% of the balance in one transfer, to an address paid only once","signature":"<signature>","time":"2026-10-14T10:00:00.000Z"}],
"deductions":[{"points":-30,"reason":"Largest outflow moved 70.1% of the balance in one transfer"},
{"points":-24,"reason":"3 payments to addresses paid only once in the window"},{"points":-15,"reason":"1 active token delegate"}],
"activity":{"signed_txs":10,"txs_per_day":1,"swaps":2,"failed_txs":1,"outflows":7,"recipients":5,
"recipients_seen_once":3,"program_recipients":1,"token_accounts":6},
"notes":[],"partial":false,"checked_at":"2026-10-14T10:05:00.000Z","explorer":"https://solscan.io/account/<wallet>"}