# Solana Smart Money Wallet Finder - Pump.fun Wallet Scanner (`intenal_builds/solana-smart-wallet-scanner`) Actor

Find Solana smart money wallets: 29k+ public wallets with pump.fun graduated tokens created (ATH, time-to-graduate), KOL callout hit rates, signal tags, and optional live SOL balance/activity via your own RPC.

- **URL**: https://apify.com/intenal_builds/solana-smart-wallet-scanner.md
- **Developed by:** [Jaydan Eaton](https://apify.com/intenal_builds) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 wallets

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Solana Smart Money Wallet Finder: Pump.fun Wallet Scanner

Find the Solana wallets behind pump.fun's winners: **serial token creators whose launches graduated**, and **KOL caller wallets with measured callout hit rates**. One search covers **29,764 public wallets**. You can add **live SOL balance and recent activity** through your own RPC.

### What you get (one record per wallet)

- **Graduated-token creator stats**: how many of the wallet's pump.fun launches graduated, their mints, best ATH market cap, median time-to-graduate, and first/last graduation.
- **Caller stats**: pump.fun callouts by this wallet in our caller archive, share that hit 2x within 4h, median 4h peak multiple, and the mints called.
- **Callout-wallet sightings**: whether the wallet was seen posting pump.fun callouts, how many times, and when last seen.
- **Signal tags** to filter on: `serial_graduator`, `graduate_creator`, `pumpfun_caller`, `callout_2x_hitter`.
- **Optional live enrichment** (your RPC URL, e.g. Helius/QuickNode): SOL balance, recent transaction count (last 100), last activity time.

### Example output (actual first rows from a default run, sorted by signal strength)

| rank | wallet | signals | graduated tokens created | best graduate ATH mcap (USD) | callouts logged | callout hit rate 4h |
|---|---|---|---|---|---|---|
| 1 | `C8rXn3…oXeW` | serial_graduator, graduate_creator, pumpfun_caller, callout_2x_hitter | 25 | 29607.13 | 1 | 1.0 |
| 2 | `CScBTn…srjY` | serial_graduator, graduate_creator, pumpfun_caller, callout_2x_hitter | 6 | 199905.91 | 1 | 1.0 |
| 3 | `H9TMtT…U1Th` | serial_graduator, graduate_creator, pumpfun_caller, callout_2x_hitter | 4 | 146760.97 | 2 | 0.5 |
| 4 | `AzhoK4…e73k` | serial_graduator, graduate_creator, pumpfun_caller, callout_2x_hitter | 3 | 20290.13 | 1 | 1.0 |
| 5 | `D6rjoJ…bXLU` | serial_graduator, graduate_creator, pumpfun_caller, callout_2x_hitter | 2 | 1144915.89 | 1 | 1.0 |

### New in v0.2: real trading performance (merge hook)

Each wallet now carries `perfWinRate`, `perfRealizedPnlSol`, `perfTokensClosed`, `perfTokensWon`, `perfAvgHoldSec`, `perfEarlyEntryRate` (bought graduated pump.fun tokens before graduation), `perfHistoryTruncated` and more. These come from **real parsed swap transactions** (90-day window, FIFO realized PnL in SOL, net of fees). They're filled in only for wallets in the bundled performance snapshot and are `null` for every other wallet (`perfAvailable: false`). Nothing is estimated. You can filter with `perfWalletsOnly`, `minPerfWinRate` and `minPerfTokensClosed`, and sort by `perfWinRate` or `perfRealizedPnlSol`. Win rates based on only a few closed tokens are noisy, so use `minPerfTokensClosed`.

Also new: the **signal strength** default sort, an input form split into sections, and cross-links from the Memecoin Alpha Caller Leaderboard (caller rows list their wallets so you can look them up here).

### Filters

Wallet list lookup, required signals, minimum graduated tokens created, minimum callouts, minimum callout hit rate, callout-wallets only, and sort by graduated tokens, best ATH, callout hit rate, median peak, callouts or sightings.

### Data and coverage (please read)

- Compressed snapshot dated 2026-10-14. It is built from public on-chain and pump.fun data: wallet addresses, token mints, and performance derived from them. No keys, bot configuration or private notes are included.
- Win rate / realized PnL per trade is **not** included. The upstream scorer's trade-result fields weren't populated, so we left them out instead of shipping misleading numbers. Hold time and early-entry metrics are not included either.
- Graduation stats only cover tokens in our pump.fun graduated-token corpus (11,092 tokens). Caller stats only cover our callout archive (882 calls, 2026-09-25 to 10-03).
- Every number is computed from the source records. Nothing is estimated.

### Example input

```json
{ "requiredSignals": ["serial_graduator"], "sortBy": "bestGraduateAthMcapUsd", "maxResults": 50 }
```

### Pricing

Pay per event: you're charged for each `wallet` record output. Runs stop at your spend limit.

### Disclaimer

**Not financial advice.** This is historical, descriptive data with no promise of returns. Copy-trading memecoins is extremely risky. **Not affiliated with pump.fun, Solana Foundation, Helius or any wallet owner.**

Keywords: Solana smart money, smart wallet finder, pump.fun wallets, memecoin, KOL callers, copy trading research, wallet scanner, on-chain analytics.

# Actor input Schema

## `wallets` (type: `array`):

Look up specific Solana wallet addresses. Empty = search the whole snapshot.

## `requiredSignals` (type: `array`):

Only wallets that carry all of these signal tags.

## `minGraduatedTokensCreated` (type: `integer`):

Minimum pump.fun graduated tokens created by the wallet.

## `minCalloutsLogged` (type: `integer`):

Minimum pump.fun callouts by the wallet in the caller archive.

## `minCalloutHitRate` (type: `number`):

Minimum share of the wallet's callouts that hit 2x within 4h (0-1).

## `calloutWalletsOnly` (type: `boolean`):

Only wallets seen posting pump.fun callouts.

## `perfWalletsOnly` (type: `boolean`):

Keep only wallets that have real Helius-derived win rate / PnL fields (bundled performance snapshot). Other wallets have these fields null.

## `minPerfWinRate` (type: `number`):

0-1. Applies only to wallets with performance data.

## `minPerfTokensClosed` (type: `integer`):

Minimum tokens with a matched sell, so win rate is not based on 1-2 trades.

## `sortBy` (type: `string`):

Sort key (descending).

## `maxResults` (type: `integer`):

Maximum wallets to output (each wallet is one billable event).

## `liveEnrich` (type: `boolean`):

Add live SOL balance and recent activity per wallet using your RPC URL below.

## `solanaRpcUrl` (type: `string`):

Your Solana RPC endpoint (e.g. your Helius/QuickNode/Triton URL) used for live enrichment. Public RPCs are rate limited.

## Actor input object example

```json
{
  "wallets": [],
  "minGraduatedTokensCreated": 0,
  "minCalloutsLogged": 0,
  "minCalloutHitRate": 0,
  "calloutWalletsOnly": false,
  "perfWalletsOnly": false,
  "minPerfWinRate": 0,
  "minPerfTokensClosed": 0,
  "sortBy": "signalStrength",
  "maxResults": 100,
  "liveEnrich": false
}
```

# Actor output Schema

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

One item per wallet.

# 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 = {
    "wallets": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("intenal_builds/solana-smart-wallet-scanner").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 = { "wallets": [] }

# Run the Actor and wait for it to finish
run = client.actor("intenal_builds/solana-smart-wallet-scanner").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 '{
  "wallets": []
}' |
apify call intenal_builds/solana-smart-wallet-scanner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intenal_builds/solana-smart-wallet-scanner"
        }
    }
}
```

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/gVGeEuJ4wi6lOS5Mj/builds/nGvRYqXQ0rfW5X85x/openapi.json
