# Whale Wallet Tracker: Solana & Ethereum Smart Money Signals (`mrdoe/whale-wallet-tracker`) Actor

Track whale wallets on Solana and Ethereum. Get 24h net flow in USD, exchange-tagged transfers and an accumulating / distributing / neutral signal per wallet. Bots flagged. No API key needed.

- **URL**: https://apify.com/mrdoe/whale-wallet-tracker.md
- **Developed by:** [MrDoe](https://apify.com/mrdoe) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Whale Wallet Tracker: Solana & Ethereum Smart Money Signals - Whale wallet tracker for Solana and Ethereum showing net flow and accumulating or distributing signals](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/whale-wallet-tracker--hero.png)

### What does Whale Wallet Tracker: Solana & Ethereum Smart Money Signals do?

Whale Wallet Tracker reads recent on-chain activity for Solana and Ethereum wallets and returns one row per wallet with the net flow in US dollars over your lookback window, the list of recent transfers above your size limit, and a signal of accumulating, distributing or neutral. Transfers with known exchange wallets are tagged, and wallets that trade like bots or market makers are flagged with likely\_automated instead of getting a misleading signal. Enter your own wallet addresses, or leave the field empty to analyze wallets from public whale lists. Every wallet row also includes a plain-language summary and links to the block explorer, so results can be read without decoding addresses or transaction hashes.

### Why use Whale Wallet Tracker: Solana & Ethereum Smart Money Signals?

- The signal is the product: a clear accumulating, distributing or neutral label, not a raw transaction dump.
- Thresholds are configurable, so you decide how large a net flow must be before it counts.
- Exchange wallets are tagged, so a deposit to a known exchange is not confused with a move to an unknown wallet.
- Bots and market makers are flagged automatically, which keeps noisy wallets out of your alerts.
- Works without an account or API key. An optional free Helius key raises the Solana rate limit.

### What makes this different

Most wallet trackers return raw transactions or need a paid dashboard subscription. This Actor classifies each wallet's flow into a signal, tags exchange counterparties, and flags bot-like wallets, using free public chain data with the provider rate limits built in as the default pace.

### Who can use the Whale Wallet Tracker and how?

- **Copy traders:** see what a wallet you follow just bought or sold, and whether it is accumulating or distributing, before you decide to copy it.
- **Crypto traders and swing traders:** watch whale flow into or out of exchanges as an early sentiment read; exchange-tagged transfers show sell pressure (to an exchange) versus accumulation (from an exchange).
- **Alert and bot builders:** schedule the Actor, compare the signal with the last run and send a Telegram, Discord or Slack message when it flips. The summary field is written for that.
- **Research and quant teams:** build datasets of wallet flow by hour or day for backtests, and use likely\_automated to keep market makers and bots out of the sample.
- **Journalists and analysts:** check what a treasury, foundation or exchange wallet did in the last day and link to the transactions on the block explorer.
- **Fund managers and DAO treasuries:** monitor your own wallets or counterparties and export the result to Google Sheets or a data warehouse.
- **Developers:** call it from the Apify API, MCP or a webhook as a free wallet-flow endpoint instead of running your own indexer.
- **Compliance and risk teams:** flag large exchange deposits or withdrawals of a watched wallet with a clear timestamp and explorer link.
- **Scheduled monitors:** run hourly with delta mode on and get billed only when a wallet you watch actually moves.

### How it works

![Whale Wallet Tracker: Solana & Ethereum Smart Money Signals workflow: your input, collection, output](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/whale-wallet-tracker--how-it-works.png)

1. **Your input** — choose a chain and enter wallet addresses or turn on discover mode.
2. **The Actor collects it** — the Actor reads each wallet's recent transfers, prices them in US dollars and tags known exchanges.
3. **Your output** — you get one row per wallet with net flow, transfers and the signal.

### What data can you extract?

The dataset has 19 fields per row:

| Field                                | Type    | Description                                                                                                                    |
| ------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `chain`                              | string  | solana or ethereum.                                                                                                            |
| `wallet_address`                     | string  | The analyzed wallet address.                                                                                                   |
| `label`                              | string  | Name from public address lists or the explorer, for example an exchange or ENS name.                                           |
| `explorer_url`                       | string  | Link to the wallet on Solscan (Solana) or Etherscan (Ethereum).                                                                |
| `summary`                            | string  | One plain-language sentence describing what the wallet did, ready for alerts and reports.                                      |
| `recent_transactions`                | array   | Transfers above the size limit: tx\_hash, tx\_url, timestamp, direction, token, amount\_usd, counterparty and counterparty\_label. |
| `net_flow_usd_24h`                   | number  | USD received minus USD sent over the lookback window.                                                                          |
| `net_flow_excluding_stablecoins_usd` | number  | Same net flow with stablecoin transfers left out.                                                                              |
| `signal`                             | string  | accumulating, distributing or neutral.                                                                                         |
| `likely_automated`                   | boolean | True for bot-like or market-maker wallets.                                                                                     |
| `transaction_count`                  | number  | Successful transactions seen in the window.                                                                                    |
| `lookback_hours`                     | number  | Length of the lookback window in hours.                                                                                        |
| `exchange_sent_usd`                  | number  | USD sent to known exchange wallets.                                                                                            |
| `exchange_received_usd`              | number  | USD received from known exchange wallets.                                                                                      |
| `data_notes`                         | array   | Plain-language notes about skipped or partial data.                                                                            |
| `source`                             | string  | Data source used.                                                                                                              |
| `scraped_at`                         | string  | Collection time (ISO 8601).                                                                                                    |
| `actor_version`                      | string  | Output schema version.                                                                                                         |
| `fetch_path`                         | string  | Which route served the row: explorer\_api, public\_rpc or helius\_rpc.                                                            |

### How to use Whale Wallet Tracker: Solana & Ethereum Smart Money Signals

![Whale Wallet Tracker: Solana & Ethereum Smart Money Signals input form](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/whale-wallet-tracker--input.png)

1. Open the Actor and go to the **Input** tab.
2. Choose a **Chain**, paste **Wallet addresses** (or leave them empty for discover mode), and set the **Lookback** window and **Minimum transfer size**.
3. Optionally set filters and a **Max results** limit.
4. Click **Start**. A default run finishes in under a minute.
5. Open the **Output** tab, then download the dataset or connect it to your tools.

### Input Parameters

| Parameter                  | Type    | Required | Default                   | Description                                                                                                                                                            |
| -------------------------- | ------- | -------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `chain`                    | string  | No       | `"ethereum"`              | Which blockchain to read.                                                                                                                                              |
| `walletAddresses`          | array   | No       | `[]`                      | Wallets to analyze, one address per line. Leave empty to use discover mode.                                                                                            |
| `discoverMode`             | boolean | No       | `true`                    | When no wallet addresses are given, analyze wallets from public whale lists instead. Solana also adds the largest holders of big tokens when a Helius key is provided. |
| `maxWallets`               | integer | No       | `3`                       | Maximum number of wallets to analyze in one run. Default is 3 for a quick test.                                                                                        |
| `lookbackHours`            | integer | No       | `24`                      | How far back to read transfers. The net flow field covers this window.                                                                                                 |
| `minTransactionUsd`        | number  | No       | `250`                     | Ignore transfers worth less than this many US dollars.                                                                                                                 |
| `accumulateThresholdUsd`   | number  | No       | `100000`                  | Net inflow at or above this value gives the signal "accumulating".                                                                                                     |
| `distributeThresholdUsd`   | number  | No       | `100000`                  | Net outflow at or above this value gives the signal "distributing".                                                                                                    |
| `signalBasis`              | string  | No       | `"all_assets"`            | Which net flow the signal is derived from. Excluding stablecoins treats a swap from USDC into another token as buying.                                                 |
| `excludeExchangeTransfers` | boolean | No       | `false`                   | Leave transfers with known exchange wallets out of the net flow. They are still listed and tagged.                                                                     |
| `automatedTxThreshold`     | integer | No       | `50`                      | A wallet with at least this many transactions in the window is flagged likely\_automated and gets a neutral signal.                                                     |
| `maxTransactionsPerWallet` | integer | No       | `60`                      | Most recent transactions read per wallet. Higher values are slower because data providers are rate limited.                                                            |
| `deltaMode`                | boolean | No       | `false`                   | Return and bill only wallets whose newest transfer or signal changed since the last run with the same delta key. Ideal for scheduled monitoring.                       |
| `deltaStateKey`            | string  | No       | `"default"`               | Name of the tracked stream. Use a different key per watchlist so their history stays separate.                                                                         |
| `heliusApiKey`             | string  | No       | —                         | Optional free Helius key. It raises the Solana rate limit and enables top-holder discovery.                                                                            |
| `proxyConfiguration`       | object  | No       | `{"useApifyProxy":false}` | Optional proxy. Public chain data normally works without one.                                                                                                          |

### Output Data

![Whale Wallet Tracker: Solana & Ethereum Smart Money Signals dataset table](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/whale-wallet-tracker--output.png)

`net_flow_usd_24h` is USD received minus USD sent over the lookback window (the field name is fixed; the window is in `lookback_hours`). `signal` is `accumulating` when net flow reaches the accumulating threshold, `distributing` when it reaches the distributing threshold in the other direction, otherwise `neutral`. `likely_automated` is true for wallets with many transactions in the window. Fields that are unknown are `null`.

![Whale Wallet Tracker: Solana & Ethereum Smart Money Signals field map of one record](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/whale-wallet-tracker--fields.png)

A real dataset item:

```json
{
    "chain": "ethereum",
    "wallet_address": "0xf584F8728B874a6a5c7A8d4d387C9aae9172D621",
    "label": "Jump Trading",
    "explorer_url": "https://etherscan.io/address/0xf584F8728B874a6a5c7A8d4d387C9aae9172D621",
    "summary": "Jump Trading made 100 transactions in the last 24h, which looks like a bot or market maker, so no accumulation signal is given.",
    "recent_transactions": [
        {
            "tx_hash": "0xe19e1be157b5a2b2fa177dd5b282b9eac6640e2d3d82e72ba6ba368563648448",
            "tx_url": "https://etherscan.io/tx/0xe19e1be157b5a2b2fa177dd5b282b9eac6640e2d3d82e72ba6ba368563648448",
            "timestamp": "2026-09-25T20:45:35.000Z",
            "direction": "in",
            "token": "USDC",
            "amount_usd": 144269.6,
            "counterparty": "0x46340b20830761efd32832A74d7169B29FEB9758",
            "counterparty_label": "Crypto.com Exchange: Hot Wallet"
        },
        {
            "tx_hash": "0xc5b0d51acfa8455dbe5c6df83dd86063b9b09fea9c5a5878f3e523f24bd1d0f9",
            "tx_url": "https://etherscan.io/tx/0xc5b0d51acfa8455dbe5c6df83dd86063b9b09fea9c5a5878f3e523f24bd1d0f9",
            "timestamp": "2026-09-25T20:45:11.000Z",
            "direction": "in",
            "token": "ETH",
            "amount_usd": 20543.29,
            "counterparty": "0x0003B5Aa5E30E97FcC596BB5D0F3A75255E08D4e",
            "counterparty_label": "OKX 207"
        },
        {
            "tx_hash": "0xf32d8fec75fe439aa53a59626da06f9702d0104ffa63f48a1f52df420a4b1b41",
            "tx_url": "https://etherscan.io/tx/0xf32d8fec75fe439aa53a59626da06f9702d0104ffa63f48a1f52df420a4b1b41",
            "timestamp": "2026-09-25T20:44:59.000Z",
            "direction": "in",
            "token": "USDT",
            "amount_usd": 36111.69,
            "counterparty": "0x46340b20830761efd32832A74d7169B29FEB9758",
            "counterparty_label": "Crypto.com Exchange: Hot Wallet"
        },
        {
            "tx_hash": "0xc289d7182efb6fdc004bc0b2a18ec598a67596424b8d5648088492e2f7f3c226",
            "tx_url": "https://etherscan.io/tx/0xc289d7182efb6fdc004bc0b2a18ec598a67596424b8d5648088492e2f7f3c226",
            "timestamp": "2026-09-25T20:44:47.000Z",
            "direction": "in",
            "token": "ETH",
            "amount_usd": 14194.65,
            "counterparty": "0x0D0707963952f2fBA59dD06f2b425ace40b492Fe",
            "counterparty_label": "Gate.io: Hot Wallet"
        }
    ],
    "net_flow_usd_24h": -11782867.34,
    "net_flow_excluding_stablecoins_usd": -691330.11,
    "signal": "neutral",
    "likely_automated": true,
    "transaction_count": 100,
    "lookback_hours": 24,
    "exchange_sent_usd": 13167034.01,
    "exchange_received_usd": 3098969.38,
    "data_notes": [
        "100 transactions in the window: looks like a bot or market maker, so the signal is not meaningful.",
        "More transactions exist in the window than were read; flows cover the most recent ones only."
    ],
    "fetch_path": "explorer_api",
    "source": "blockscout",
    "scraped_at": "2026-09-25T21:28:31.952Z",
    "actor_version": "1.0.0"
}
```

### How to read and use the results

Each row is one wallet. Start with the plain-language **summary** and the **signal**, then open the **explorer\_url** to verify.

1. **Read the summary.** It says in one sentence what the wallet did in the lookback window, for example net received or net sent and how many transfers.
2. **Check the signal.** \`accumulating\` means net inflow reached your threshold, \`distributing\` means net outflow reached it, \`neutral\` means neither (or the wallet is a bot).
3. **Look at exchange flow.** \`exchange\_sent\_usd\` (to known exchanges) suggests selling pressure; \`exchange\_received\_usd\` (from exchanges) suggests buying or withdrawing to self-custody.
4. **Ignore bots.** \`likely\_automated: true\` means the wallet is too active to say anything about intent.
5. **Verify.** Every transfer in \`recent\_transactions\` has a \`tx\_url\` and the wallet has an \`explorer\_url\`, so nothing has to be taken on trust.
6. **Empty transfer list?** That is not an error. \`data\_notes\` says why, usually that all transfers were below the minimum size or the wallet was quiet. Lower **Minimum transfer size** or extend the **Lookback**.

Automate it: schedule the Actor, send the dataset to a webhook, and alert when \`signal\` changes between runs.

### Usage Examples

#### Analyze specific Ethereum wallets

```json
{
    "chain": "ethereum",
    "walletAddresses": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],
    "lookbackHours": 72,
    "minTransactionUsd": 100
}
```

#### Discover mode on Ethereum

```json
{
    "chain": "ethereum",
    "discoverMode": true,
    "maxWallets": 3
}
```

#### Solana exchange flows with a stricter signal

```json
{
    "chain": "solana",
    "discoverMode": true,
    "maxWallets": 3,
    "accumulateThresholdUsd": 250000,
    "distributeThresholdUsd": 250000
}
```

#### Only new activity on a watchlist

```json
{
    "chain": "ethereum",
    "walletAddresses": ["0x3DdfA8eC3052539b6C9549F12cEA2C295cfF5296"],
    "deltaMode": true,
    "deltaStateKey": "my-watchlist"
}
```

### Tips for Best Results

- Set the minimum transfer size to filter out dust and spam tokens.
- Use 'Excluding stablecoins' as the signal basis to treat swaps out of USDC or USDT as buying.
- Schedule the Actor hourly or daily and alert on signal changes.
- Add a free Helius key for faster Solana runs.
- Default is 5 results for a fast test. Set the max to 0 to return everything available.

### Reliability by mode

| Mode                                   | Status | Needs login or key?        | Notes                                                                        |
| -------------------------------------- | ------ | -------------------------- | ---------------------------------------------------------------------------- |
| Ethereum, your own wallets             | ✅     | No                         | Free public explorer; fast.                                                  |
| Ethereum, discover mode                | ✅     | No                         | Uses public whale and exchange lists.                                        |
| Solana, your own wallets               | 🟡     | No (Helius key optional)   | Public RPC is rate limited, so it is slower; a free Helius key speeds it up. |
| Solana, discover mode                  | 🟡     | Helius key for top holders | Without a key it returns exchange wallets from public lists.                 |
| Wallets with thousands of transactions | 🟡     | No                         | Flagged likely\_automated; signal is neutral.                                 |

✅ works as described, 🟡 works with caveats, ❌ not supported.

### Only new records (delta mode)

Turn on **Only new activity (delta mode)** and give the stream a **Delta key**. On each scheduled run the Actor returns, and bills, only wallets whose newest transfer or signal changed since the last delivery of that key. Use one key per watchlist.

### Known Limitations

- Transfers are priced at the current market price, not the price at the time of the transfer.
- Tokens without a market price are skipped and reported in data\_notes.
- Public data providers are rate limited, so Solana runs are slow: a wallet with 60 transactions takes about a minute without a Helius key.
- Discover mode uses public whale and exchange lists. It ranks nothing by profit and does not prove a wallet is profitable.
- Without a Helius key, Solana discover mode returns exchange wallets because public endpoints block top-holder lookups.
- This is data, not financial advice.

### Integrations

Run it from the Apify API, on a schedule, or from a webhook. Send results straight to Google Sheets, Make, Zapier, Slack or your own database with Apify's built-in integrations.

### Export Formats

Download the dataset as JSON, CSV, Excel, XML, HTML table or RSS from the **Output** tab or the API.

### Frequently Asked Questions

#### Does it need an API key?

No. It reads public chain data. An optional free Helius key makes Solana runs faster and enables top-holder discovery.

#### What does likely\_automated mean?

The wallet made at least the configured number of transactions in the window (50 by default), which points to a bot or market maker. Its signal is set to neutral because net flow is not meaningful for it.

#### Which data sources does it use?

Ethereum: the public Blockscout explorer. Solana: the public Solana RPC or Helius, with prices from Jupiter. All are free public sources with published rate limits.

#### Are the thresholds configurable?

Yes. Accumulating and distributing thresholds default to 100,000 USD each and can be changed in the input.

#### Am I charged for failed results?

No. You are only charged for wallets that are written to the dataset.

#### How do I copy trade a whale wallet with this?

Add the wallet address, schedule the Actor (for example hourly), and read the summary and signal of each run. Use the transfer list with its explorer links to see what was bought or sold, and set a webhook to alert you when the signal changes. It is data for your own decisions, not financial advice.

#### Why is recent\_transactions sometimes empty?

The wallet had no transfers above your minimum size in the window, or its tokens have no market price. data\_notes and summary say which. Lower the minimum transfer size or use a longer lookback.

#### What is a whale wallet tracker?

A tool that watches the on-chain activity of very large wallets and reports what they move. This one returns net USD flow, exchange-tagged transfers and an accumulating, distributing or neutral signal per wallet for Solana and Ethereum.

#### Do I need an account or login?

No. The Actor reads public chain data and needs no account or API key.

#### Am I charged for failed runs or empty results?

You are only charged for results that are actually written to the dataset.

#### Can I run it on a schedule?

Yes. Create a Task with your input and add a schedule in Apify Console. With monitor mode on, each scheduled run returns only what changed since the previous one.

### Changelog

- **2026-09-26:** Added delta mode, per-chain event pricing, readable summary and explorer links, and the fetch\_path provenance field.
- **2026-09-25:** First release: Solana and Ethereum wallet signals with exchange tagging and bot detection.

### Enterprise and custom work

Need higher volumes, a custom output schema, dedicated scheduling or a no-breaking-changes commitment for a production pipeline? Open an issue on the Actor page and describe your use case. Bulk terms and custom builds are available.

### Support

Questions or a missing field? Open an issue from the **Issues** tab on this Actor's page and it will be looked at.

### Legal / Responsible Use

This Actor reads public blockchain data. You are responsible for how you use the output. It is not financial advice and not affiliated with any exchange or data provider.

# Actor input Schema

## `chain` (type: `string`):

Which blockchain to read.

## `walletAddresses` (type: `array`):

Wallets to analyze, one address per line. Leave empty to use discover mode.

## `discoverMode` (type: `boolean`):

When no wallet addresses are given, analyze wallets from public whale lists instead. Solana also adds the largest holders of big tokens when a Helius key is provided.

## `maxWallets` (type: `integer`):

Maximum number of wallets to analyze in one run. Default is 3 for a quick test.

## `lookbackHours` (type: `integer`):

How far back to read transfers. The net flow field covers this window.

## `minTransactionUsd` (type: `number`):

Ignore transfers worth less than this many US dollars.

## `accumulateThresholdUsd` (type: `number`):

Net inflow at or above this value gives the signal "accumulating".

## `distributeThresholdUsd` (type: `number`):

Net outflow at or above this value gives the signal "distributing".

## `signalBasis` (type: `string`):

Which net flow the signal is derived from. Excluding stablecoins treats a swap from USDC into another token as buying.

## `excludeExchangeTransfers` (type: `boolean`):

Leave transfers with known exchange wallets out of the net flow. They are still listed and tagged.

## `automatedTxThreshold` (type: `integer`):

A wallet with at least this many transactions in the window is flagged likely\_automated and gets a neutral signal.

## `maxTransactionsPerWallet` (type: `integer`):

Most recent transactions read per wallet. Higher values are slower because data providers are rate limited.

## `deltaMode` (type: `boolean`):

Return and bill only wallets whose newest transfer or signal changed since the last run with the same delta key. Ideal for scheduled monitoring.

## `deltaStateKey` (type: `string`):

Name of the tracked stream. Use a different key per watchlist so their history stays separate.

## `heliusApiKey` (type: `string`):

Optional free Helius key. It raises the Solana rate limit and enables top-holder discovery.

## `proxyConfiguration` (type: `object`):

Optional proxy. Public chain data normally works without one.

## Actor input object example

```json
{
  "chain": "ethereum",
  "walletAddresses": [],
  "discoverMode": true,
  "maxWallets": 3,
  "lookbackHours": 24,
  "minTransactionUsd": 250,
  "accumulateThresholdUsd": 100000,
  "distributeThresholdUsd": 100000,
  "signalBasis": "all_assets",
  "excludeExchangeTransfers": false,
  "automatedTxThreshold": 50,
  "maxTransactionsPerWallet": 60,
  "deltaMode": false,
  "deltaStateKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "chain": "ethereum",
    "maxWallets": 3,
    "lookbackHours": 24,
    "minTransactionUsd": 250,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/whale-wallet-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "chain": "ethereum",
    "maxWallets": 3,
    "lookbackHours": 24,
    "minTransactionUsd": 250,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/whale-wallet-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "chain": "ethereum",
  "maxWallets": 3,
  "lookbackHours": 24,
  "minTransactionUsd": 250,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call mrdoe/whale-wallet-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrdoe/whale-wallet-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JSahGQTYwLyZQTkzD/builds/zzGiKfCV78RJJPtOe/openapi.json
