You saw a wallet buy. Should that mean anything? Cookin keeps a lifetime record for every wallet it has seen trade: what it earned, how long it holds, whether it trades inside a coordinated group, and whether its exits move prices.
| Field | Meaning |
|---|---|
pnl_sol |
Lifetime profit and loss, in SOL. Can be negative. |
roi |
Lifetime return on investment. |
win_rate |
Share of trades closed in profit. |
avg_hold_slots |
How long this wallet typically holds. |
bundled_trades_rate |
Share of its trades made inside a coordinated group. |
sell_impact |
What this wallet's exits typically do to the price. |
smart_money |
True when Cookin classes it as smart money. |
$ curl https://api.cookin.fun/v1/traders/<wallet>
{
"data": {
"pnl_sol": 412.8,
"roi": 2.31,
"win_rate": 38.4,
"avg_hold_slots": 1840,
"bundled_trades_rate": 0.0,
"sell_impact": -2.1,
"smart_money": true
}
}
Pay per call in USDC on Solana with x402, from $0.01 and no account, or use a Pro key at 1 SOL per 30 days. A call that errors is never charged. Full price list on the x402 page.
Every trade on every tracked token updates the wallet's record, so the profile is built from behaviour rather than from labels. The same numbers ride along on each trade in the token feed, snapshotted at the moment of that trade, which makes a trade row something you can replay later.
https://api.cookin.fun/mcp, or locally with
npx -y @cookinfun/mcp.
A record, not a label: profitable across enough tokens, with exits that do not depend on dumping into thin liquidity. The flag is derived from the same stats the endpoint returns, so you can apply your own bar instead.
Yes. The trades endpoint returns recent trades with each trader's history attached, so you can judge a buyer without a second call.
Coverage follows what Cookin tracks, which is Pump.fun and the venues tokens graduate to. A wallet with no tracked trades returns 404, and a 404 is never charged.