{"name":"token_traders","title":"Who traded this token, and who made money?","category":"tokens","useWhen":"Run to see who bought a token early and who profited: launch-block snipers, the pool creator, wallets that sold more than they bought (got tokens some other way), and ordinary traders.","benefit":{"kind":"accuracy","text":"Shows each wallet's real SOL in and out on a token from its first trade, from chain balances, so 'smart money' claims, insider dumps and launch-block snipers can be checked instead of believed."},"description":"Reads a token's pool from its first transaction for a set time and lists the wallets that traded it: buys, sells, SOL spent and received, profit, how soon after launch they bought, and launch-block and creator flags.","price":"$0.03","priceText":"25 free calls a day, then $0.03 USDC per call (x402)","http":{"method":"POST","path":"/api/tools/token_traders","body":"JSON object with the inputs below"},"mcp":{"method":"tools/call","name":"token_traders"},"inputs":[{"name":"token","type":"string (mint address)","required":true,"lookingFor":"The token whose traders you want.","whereToGet":"find_token, or the token's address from the user. Never make one up."},{"name":"pool","type":"string (pool address)","required":false,"lookingFor":"The pool to read. Default: the pool with the most liquidity in RugCheck's report.","whereToGet":"A DEX page or GeckoTerminal's pool address."},{"name":"hours","type":"number 0.1-24","required":false,"lookingFor":"How long after the pool's first transaction to read (default 6).","whereToGet":"Short (1-2) to study the launch, longer to see who held."},{"name":"max_trades","type":"integer 10-1000","required":false,"lookingFor":"At most this many transactions are read, oldest first (default 400).","whereToGet":"Raise it for busy pools; the answer says when the window was cut short."},{"name":"how_many","type":"integer 1-100","required":false,"lookingFor":"How many wallets to list, most profit first (default 25).","whereToGet":"Default is fine."},{"name":"network","type":"\"mainnet-beta\" | \"devnet\"","required":false,"lookingFor":"Default \"mainnet-beta\" (real money).","whereToGet":"\"devnet\" only for test wallets."}],"outputs":[{"field":"pool / launch_time / launch_slot","type":"string / string | null / number","is":"The pool read and its first transaction.","howWorkedOut":"The oldest signature of the pool address (getSignaturesForAddress, paged back to the start)."},{"field":"window","type":"{ from, to, hours, cut_short }","is":"The time read. cut_short is true when max_trades or the time limit ran out before the hours did.","howWorkedOut":"Launch time plus hours, and the last transaction actually read."},{"field":"stopped_for_time","type":"boolean","is":"True when reading stopped at the 20-second limit, so the window holds fewer transactions than asked. Ask again with a shorter hours or smaller max_trades for a full window.","howWorkedOut":"Time since the call began, checked before each batch of 10 transactions. The limit keeps a paid answer inside the time its payment stays valid."},{"field":"start_reached","type":"boolean","is":"False when the pool's start couldn't be reached (over 40,000 transactions, or paging back took over 10 seconds); launch then means the oldest one read.","howWorkedOut":"Signature pages left over, or the 10-second paging limit."},{"field":"transactions_read / trades / unread","type":"number","is":"Transactions loaded, how many were a wallet buying or selling the token, and how many couldn't be loaded (left out, never guessed).","howWorkedOut":"getTransaction on each signature in the window."},{"field":"wallets_count / profitable_count","type":"number","is":"Wallets that traded, and how many took out more SOL than they put in.","howWorkedOut":"Counted from wallets[] before the how_many cut."},{"field":"wallets[]","type":"array","is":"Most profit first: wallet, buys, sells, sol_spent, sol_received, profit_sol, tokens_bought, tokens_sold, tokens_left, first_buy, first_buy_after_launch_s, bought_in_launch_slot, sold_more_than_bought, created_pool, held_minutes.","howWorkedOut":"Each trade is the signing wallet's own token and SOL (plus wrapped SOL) balance change in one transaction, fees and tips included. profit_sol = SOL received minus SOL spent in the window; tokens_left are not valued. sold_more_than_bought means the wallet got tokens another way (a transfer, often from the creator). held_minutes is first buy to last sell."},{"field":"snipers","type":"{ wallets, profit_sol }","is":"Wallets that bought in the pool's very first slot, and their total profit.","howWorkedOut":"bought_in_launch_slot on wallets[]."}],"notes":["SOL-paired pools only: trades paid in USDC or another token show up with sol near 0.","Profit is inside the window only. A wallet that bought before the window or still holds is not fully counted, and the answer never values tokens it still holds.","No names or labels: a wallet is described only by what its trades show."],"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string","description":"The token whose traders you want. find_token, or the token's address from the user. Never make one up."},"pool":{"description":"The pool to read. Default: the pool with the most liquidity in RugCheck's report. A DEX page or GeckoTerminal's pool address.","type":"string"},"hours":{"default":6,"description":"How long after the pool's first transaction to read (default 6). Short (1-2) to study the launch, longer to see who held.","type":"number","minimum":0.1,"maximum":24},"max_trades":{"default":400,"description":"At most this many transactions are read, oldest first (default 400). Raise it for busy pools; the answer says when the window was cut short.","type":"integer","minimum":10,"maximum":1000},"how_many":{"default":25,"description":"How many wallets to list, most profit first (default 25). Default is fine.","type":"integer","minimum":1,"maximum":100},"network":{"default":"mainnet-beta","description":"Default \"mainnet-beta\" (real money). \"devnet\" only for test wallets.","type":"string","enum":["mainnet-beta","devnet"]}},"required":["token"]}}