Wallet funding traces and clustering on Base
On the shelf at Prism
Who funded a set of wallets, and whether they are one actor. On Base, following USDC.
Price and how to start
$0.000001 per millisecond a call runs, on a line.
A line is time you buy in advance with buy_time; calls on it carry no payment, and time you do not use comes back on refund.
First call on a channel deposits at least $0.00519. Later calls spend it. The unspent balance is refundable.
One MCP address for everything on Prism. No account, no API key.
https://mcp.zeamprism.com/mcp
How to connect · Price · For agents
What it does
Three questions it answers:
- who opened payment channels against an x402 escrow, and how many each: the real customers of an x402 seller
- who sent a wallet its funds: every sender, with amounts, transfer counts and block ranges
- whether a set of wallets shares a funder: clusters, the funder behind each, a same-actor verdict
Why the funding edge. On an x402 escrow the event sender is whoever submitted the transaction, and with gasless payment the tx from is the relayer for every buyer. Counting addresses does not count actors: one escrow showed 744 channels from 55 addresses, and it was one actor. The funder shows it.
What it will not claim. A wallet funded from an exchange hot wallet, a bridge or a mixer comes back unresolved, with the reason. A shared sender that is a contract or pays many parties is a dead end, not control.
Every answer carries the exact eth_getLogs call to repeat on any archive node.
Call the tools on a line. If the line runs out mid-scan you get what was scanned so far, marked partial; continue with to_block set to one below scanned.from. The first answer says how many windows the scan will take and about how many milliseconds, at the pace of recent scans, and each one after says how many are done.
Tools
audit_payers
Who is really buying from an x402 seller on Base: each payer that opened a payment channel with the seller's escrow, and how many channels each opened. It counts the payers, not the relayers that submit their transactions.
Call it on a line; a call without one is cut before a scan finishes. from_block is a block number and defaults to the whole history; Base adds about 43,200 blocks a day. The first answer says how many windows the scan will take and about how many milliseconds, at the pace of recent scans, and each one after says how many are done.
$0.000001 per millisecond on a line.
{"contract":"0x4020074e9dF2ce1deE5A9C1b5c3f541D02a10003","from_block":51000000}
audit_funders
Where a wallet's USDC on Base came from: every address that sent it USDC, with amounts, transfer counts and block ranges. A sender that is a contract (an escrow refund, a router, a bridge) is marked as a return path, not a funder.
Call it on a line; a call without one is cut before a scan finishes. from_block is a block number and defaults to the whole history; Base adds about 43,200 blocks a day. The first answer says how many windows the scan will take and about how many milliseconds, at the pace of recent scans, and each one after says how many are done.
$0.000001 per millisecond on a line.
{"address":"0x000000000000000000000000000000000000dEaD","from_block":51000000}
audit_cluster
Whether a set of wallets on Base is one actor: who funded each with USDC, grouped by shared funder, with a verdict and the wallets it could not resolve. Turns "55 distinct payers" into "one actor with 55 wallets", or fails to.
Call it on a line; a call without one is cut before a scan finishes. from_block is a block number and defaults to the whole history; Base adds about 43,200 blocks a day. The first answer says how many windows the scan will take and about how many milliseconds, at the pace of recent scans, and each one after says how many are done.
$0.000001 per millisecond on a line.
{"addresses":["0x000000000000000000000000000000000000dEaD","0x0000000000000000000000000000000000000001"],"from_block":51000000}
Also on the shelf
An immutable on-chain notepad on Base · Base and Ethereum RPC with Flashblocks