Whale Wallet Tracker avatar

Whale Wallet Tracker

Pricing

from $5.00 / 1,000 result founds

Go to Apify Store
Whale Wallet Tracker

Whale Wallet Tracker

Track large native ETH and ERC-20 token movements for any wallet(s) via Etherscan's multichain API (bring your own key). Get current balance, flagged transfers above your ETH threshold, and recent token transfer activity — one row per wallet. No RPC node, no wallet-connect, no browser.

Pricing

from $5.00 / 1,000 result founds

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Whale Wallet Tracker — Large Native & Token Movements

Watch any wallet for large on-chain movements — without running a node or paying for a dashboard seat. A big native-token transfer often front-runs a market move, and traders, fund managers and crypto-Twitter accounts want to know when one happens; this Actor gives back the current balance, any recent native transactions above a size threshold you set, and recent ERC-20 token transfers, one row per wallet, straight from Etherscan-compatible explorer APIs — no RPC node, no wallet-connect, no browser, and no financial advice attached.

What you get

  • Current balance, large native movements, and recent token transfers — one row per wallet, no dashboard subscription.
  • Six EVM chains, keyless: Ethereum, Optimism, Gnosis, Polygon, Base, Arbitrum — no signup, no API key.
  • The right native currency, not just "ETH". Balance and movement sizes come back labeled with the chain's real gas token via nativeSymbol (ETH, POL, xDAI, BNB, …) — a Polygon or BSC wallet is never reported in the wrong unit.
  • Visible source coverage. If the balance check succeeds but the transaction history call fails (or vice versa), sourceCoverage and sourceErrors say exactly which one — so "zero large movements" and "couldn't check movements" never collapse into the same row.
  • Bring your own Etherscan key for chains outside the keyless six (e.g. BSC, chainId: 56) or for a higher rate limit than the shared keyless endpoint — billed against your own free quota, never marked up.
  • Runs on Apify: schedule it, monitor it, call it from the API or the MCP server, export to JSON/CSV/Excel, or push straight into your own pipeline.

How to run it

  1. Click Try for free — no card, no signup needed on the keyless chains.
  2. Paste wallet addresses into Wallets, one per line, and set Minimum native value to the size that counts as "large" for you.
  3. Press Start and read the results from the dataset — UI, API or webhook.

Pricing

Pay-per-event: $0.005 per run start + $0.005 per result. You only pay for what you pull. 100 wallets cost about $0.51; 1,000 wallets about $5.01. No markup on explorer usage — keyless runs cost nothing beyond the Actor's own charge above, and a key (if you add one) bills to your own Etherscan quota, not ours.

A wallet that could not be checked at all is still returned with found: false and the reason, and it is not charged for.

Input

FieldTypeDescription
walletsarray of stringsWallet addresses to track (0x...). Up to 100. One row per wallet.
chainIdintegerEVM chain ID. Keyless out of the box: 1 Ethereum, 10 Optimism, 100 Gnosis, 137 Polygon, 8453 Base, 42161 Arbitrum. Any other chain (e.g. 56 BSC) needs etherscanApiKey. Default 1.
etherscanApiKeystring (secret), optionalYour own Etherscan API key. Not required for the six keyless chains above — add it for other chains or higher throughput. Never logged, never stored, never returned in output.
minValueEthnumberFlag native transfers moving at least this much of the chain's native coin as a "large movement". Default 1.
maxConcurrencyintegerParallelism (1–10, default 3). Keep low on the shared keyless endpoint (or a free-tier key) to avoid rate-limit errors.
{
"wallets": ["0x28C6c06298d514Db089934071355E5743bf21d60"],
"minValueEth": 1
}

Output

One dataset row per wallet. This is a real row from a real run, trimmed only where a list repeats:

{
"wallet": "0x28C6c06298d514Db089934071355E5743bf21d60",
"chainId": 1,
"found": true,
"ethBalance": 215109.977692,
"nativeBalance": 215109.977692,
"nativeSymbol": "ETH",
"largeMovements": [
{ "hash": "0x93b01fdafe0f9d7a35fba48e832c584a1862e478db58434171f52b9c02b64de8", "ts": "2026-07-26T15:05:35.000Z", "direction": "out", "valueEth": 365, "counterparty": "0x6455327f820edd69c4cd665b995e0fec679d7f9e" },
{ "hash": "0xf9c69ad67a5c3c41c3f8984e403cf367511ceaef101ac243af625cb347099924", "ts": "2026-07-26T15:04:35.000Z", "direction": "out", "valueEth": 1508, "counterparty": "0xf8191d98ae98d2f7abdfb63a9b0b812b93c873aa" },
"…"
],
"tokenTransfers": [
{ "ts": "2026-07-26T15:12:11.000Z", "tokenSymbol": "CFG", "amount": 10374.7676, "direction": "out" },
{ "ts": "2026-07-26T15:12:11.000Z", "tokenSymbol": "USDT", "amount": 266.26, "direction": "out" },
"…"
],
"movementCount": 3,
"sourceCoverage": {
"balance": "ok",
"nativeTx": "ok",
"tokenTx": "ok"
},
"sourceErrors": {
"balance": null,
"nativeTx": null,
"tokenTx": null
},
"summary": "0x28C6c06298d514Db089934071355E5743bf21d60 — 215109.977692 ETH, 3 large native movement(s) ≥ 1 ETH, 20 recent token transfer(s).",
"checkedAt": "2026-07-26T15:12:23.556Z"
}
FieldDescription
walletThe address you passed (checksummed as returned)
foundWhether the wallet could be queried at all
nativeBalance / nativeSymbolCurrent native balance and the chain's real gas token symbol — correct on every chain
ethBalanceLegacy field, mirrors nativeBalance only on Ethereum mainnet (chainId: 1); null on every other chain, use nativeBalance/nativeSymbol instead
largeMovementsRecent successful native transactions at or above minValueEth, each with hash, ts, direction, valueEth, counterparty
tokenTransfersRecent ERC-20 transfers (not size-filtered)
movementCountNumber of large native movements found; null (not 0) when the underlying check failed, so "no movements" and "couldn't check" never look the same
sourceCoverage / sourceErrorsWhich underlying checks (balance, nativeTx, tokenTx) succeeded, and why the ones that didn't failed
summaryHuman-readable one-liner

Need the rest of the picture?

These run on the same account, take the same shape of input and bill the same way, so they slot into an existing pipeline without new plumbing.

ActorWhat it does
Rug Pull Risk ScorerScore ERC-20/BEP-20 token rug-pull risk from honeypot.is simulation + DexScreener liquidity/age
Token Launch RadarLook up any token contract address or ticker across DEXes and get liquidity, 24h volume, pair age, a 0-100…
AI Crawler Access CheckerCheck which AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended & more) can access your website
B2B Lead EnricherTurn a list of company websites into sales-qualified lead cards: detected tech stack, a rough revenue…
Clinical Trials MonitorWatch conditions, drugs or sponsors for new and updated clinical trials

FAQ / Limitations

Does it need an API key or login? No — it works out of the box on Ethereum, Optimism, Gnosis, Polygon, Base and Arbitrum via a free, keyless Blockscout explorer. A free Etherscan API key (https://etherscan.io/myapikey) is optional: add one for other chains (e.g. BSC) or for higher throughput than the shared keyless endpoint. If supplied, it's never logged, stored, or included in any output row, even on error.

How fresh is the data? Live — every run queries the explorer directly for the latest balance and transaction history.

Which chains are supported? Keyless: Ethereum, Optimism, Gnosis, Polygon, Base, Arbitrum. With your own Etherscan API key: any EVM chain on Etherscan's multichain v2 API, including BSC (chainId: 56) — that chain is not keyless, a key is required.

Why does the balance sometimes show a symbol other than ETH? Because it should — a Polygon wallet holds POL, a BSC wallet holds BNB, not ETH. nativeSymbol always names the chain's real gas token; the older ethBalance field is kept for backward compatibility but only populated on mainnet.

Can I call it from an AI agent? Yes — it's a standard Apify Actor, callable via the Apify API or the Apify MCP server.

What this is NOT. A price feed or a trading signal — it reports movements, not a recommendation. Nothing here is financial advice; verify independently before acting on it.

Found a wrong result, or need a chain we don't cover? Open an issue on this Actor's page.


Built by zinin. Questions? Telegram @timzinin.