# Solana On-chain: Token Risk, Snipers, Wallet PnL (`stlakchain/solana-token-wallet-onchain`) Actor

On-chain checks for Solana tokens and wallets: rug risk (LP burn, mint and freeze authority, holders), early buyers and snipers, the most profitable wallets on a token, deployer rug history, real sell slippage, organic volume, bulk prices, wallet PnL and win rate, and market-cap milestone studies.

- **URL**: https://apify.com/stlakchain/solana-token-wallet-onchain.md
- **Developed by:** [StalkChain](https://apify.com/stlakchain) (community)
- **Categories:** AI, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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 On-chain: Token Risk, Snipers, Wallet PnL

On-chain checks for Solana tokens and wallets: rug risk (LP burn, mint and freeze authority, holders), early buyers and snipers, the most profitable wallets on a token, deployer rug history, real sell slippage, organic volume, bulk prices, wallet PnL and win rate, and market-cap milestone studies.

### What you can do with it

- Rug-check Solana tokens in bulk
- Find sniped and bundled launches
- Find profitable wallets to copy
- Check you can exit before you enter

### Datasets

Choose one in the `dataset` field. Each is priced per row.

| `dataset` | What you get | Price per row |
| --- | --- | --- |
| `token-risk` | **Solana Token Risk Checker: LP Burn, Mint, Holders**. On-chain risk for a Solana token: total holders, LP burn, whether mint and freeze authority are live, top-10 concentration, dev holding, sniper and insider share, a risk score with named risks and a rugged flag. | $0.008 |
| `token-early-buyers` | **Solana Token Early Buyers, Snipers & Bundlers**. The first wallets into a Solana token: when each bought, whether they sold, their PnL, and how much supply bundlers took at launch and still hold. Use it to tell whether a coin was sniped. | $0.004 |
| `token-pnl-leaders` | **Solana Token Top Traders: Biggest Winners & Losers**. The wallets that made and lost the most on one Solana token, measured on chain for every wallet: invested, taken out, realised and unrealised PnL, and whether they still hold. | $0.004 |
| `wallet-pnl` | **Solana Wallet PnL Analyzer: Win Rate & Profit**. Realised and unrealised PnL for any Solana wallet, with win rate, total invested, average buy size and current positions by value. Works for any address, not only tracked traders. | $0.016 |
| `token-deployer` | **Solana Token Deployer Check & Rug History**. Who deployed a Solana token and every other token that wallet launched, with liquidity, market cap, LP burn and graduation for each. The serial-rugger check. | $0.003 |
| `token-exit-check` | **Solana Token Exit Check: Real Sell Slippage**. Quotes a real route for selling a USD amount of a Solana token into USDC and reports what you would receive, the price impact and the venues. Liquidity numbers flatter a token; an executable quote does not. | $0.016 |
| `token-quality` | **Solana Token Quality & Organic Volume Check**. A quality read on a Solana token: organic score, verification, tags, a mint and freeze audit, holder concentration, dev balance, and organic versus total volume over four windows, which exposes wash trading. | $0.008 |
| `token-prices` | **Solana Token Prices in Bulk (50 per Call)**. Current USD price, 24h change and pool liquidity for up to 50 Solana mints in one call. Use it to value holdings or price a watchlist cheaply. | $0.003 |
| `milestone-study` | **Solana Memecoin Market Cap Milestone Study**. Of the Solana launches that reached a market cap milestone, how many went higher, what multiple they reached and how often they round-tripped. Measured on real launch cohorts, not survivors. | $0.250 |

### Input

| Field | What it is |
| --- | --- |
| `tokens` | Solana token mint address. Add as many as you need; each token is looked up in turn. Used by: token-risk, token-early-buyers, token-pnl-leaders, token-deployer, token-exit-check, token-quality, token-prices. |
| `wallets` | Solana wallet address. Add as many as you need; each wallet is looked up in turn. Used by: wallet-pnl. |
| `limit` | How many early buyers to return (default 20). Used by: token-early-buyers, token-pnl-leaders. |
| `includeHoldings` | Also return current token balances by value (default true). Used by: wallet-pnl. |
| `deployer` | Skip the lookup and inspect this deployer wallet directly. Used by: token-deployer. |
| `usd` | Sell size in USD to quote (default 10,000). Used by: token-exit-check. |
| `thresholdUsd` | The market cap milestone (default 3,000,000). Used by: milestone-study. |
| `cohort` | 'launches' (default) = every token created in the window, the only honest base rate. 'reached' = tokens that got near the milestone, ~7x more crossers per call but biased toward winners. Used by: milestone-study. |
| `daysAgoFrom` | Cohort start, days ago (default 120). Used by: milestone-study. |
| `daysAgoTo` | Cohort end, days ago (default 30). Leave a gap to now so tokens have had time to move. Used by: milestone-study. |
| `sample` | How many tokens to study (default 25). Each costs one upstream call. Under the 'launches' cohort roughly 1 in 20 crosses $3M, so a small sample measures the base rate but rarely enough crossers for the rest. Used by: milestone-study. |
| `minPeakMultiple` | What counts as 'went higher' (default 1.5x). Do not set this to 1.0: reaching the line requires settling above it, so a later close above it is near-guaranteed and 'went higher' would read ~100% by construction. Used by: milestone-study. |
| `maxItems` | Stop after this many rows, whatever the inputs would produce. Caps the cost of a run. |

Examples:

```json
{
  "dataset": "token-risk",
  "tokens": [
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
  ]
}
```

```json
{
  "dataset": "token-early-buyers",
  "tokens": [
    "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump"
  ],
  "limit": 50
}
```

```json
{
  "dataset": "token-pnl-leaders",
  "tokens": [
    "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump"
  ],
  "limit": 50
}
```

### Output

One row per result, as a table you can export to JSON, CSV or Excel, or read from the API. Every row carries `scrapedAt`.

Columns by dataset:

- `token-risk`: `token`, `name`, `symbol`, `holdersTotal`, `supply`, `lpBurnedPercent`, `mintAuthorityActive`, `freezeAuthorityActive`
- `token-early-buyers`: `token`, `wallet`, `firstBuyAt`, `stillHolding`, `investedUsd`, `realizedUsd`, `unrealizedUsd`, `totalPnlUsd`, `transactions`, `fullyExitedOfSample`
- `token-pnl-leaders`: `token`, `wallet`, `investedUsd`, `realizedUsd`, `unrealizedUsd`, `totalPnlUsd`, `stillHolding`, `buys`, `sells`
- `wallet-pnl`: `wallet`, `traded`, `realizedUsd`, `unrealizedUsd`, `totalPnlUsd`, `totalInvestedUsd`, `wins`, `losses`, `winRatePercent`, `averageBuyUsd`, `tokensTraded`
- `token-deployer`: `input`, `deployer`, `launchedToken`, `tokensLaunched`, `graduated`, `stillLiquid`, `mint`, `symbol`, `liquidityUsd`, `marketCapUsd`, `lpBurnedPercent`, `hasSocials`
- `token-exit-check`: `input`, `token`, `symbol`, `quoted`, `sellUsd`, `youWouldReceiveUsd`, `costOfExitUsd`, `priceImpactPercent`, `buyPriceImpactPercent`, `liquidityUsd`
- `token-quality`: `input`, `token`, `symbol`, `verified`, `organicScore`, `organicScoreLabel`, `holders`, `marketCapUsd`, `liquidityUsd`, `firstPoolAt`, `developer`, `traders24h`
- `token-prices`: `requested`, `priced`, `mint`, `priceUsd`, `change24hPercent`, `liquidityUsd`
- `milestone-study`: `thresholdUsd`, `cohort`, `windowFromDaysAgo`, `windowToDaysAgo`, `cohortSize`, `studied`, `crossedThreshold`, `crossedPct`, `medianLifetimePeakUsd`, `wentHigherAfter`, `wentHigherMultiple`, `wentHigherPct`, `roundTrippedBelowPct`, `peakMultipleMedian`

A missing value is `null`, never `0`: null means the data was not captured, which is worth telling apart from a real zero. If one input fails, the others still arrive, and the failures are listed in the run's `RUN_SUMMARY` record.

### Pricing

Pay per result, at the price per row shown for each dataset above, plus $0.001 per run. `maxItems` caps what one run can spend.

### Use it from an AI agent

This Actor is a tool in [Apify's MCP server](https://mcp.apify.com/?actors=stlakchain/solana-token-wallet-onchain), so Claude, ChatGPT, Cursor or any MCP client can call it directly. The same data is also served interactively, with every tool in one place, by the StalkChain MCP server at [data.stalkchain.com](https://data.stalkchain.com).

### Schedule it

Much of this data is live and not kept by the source. A scheduled run (every 10 minutes, hourly, daily) builds a history you can chart and diff, with `scrapedAt` on every row.

### More from StalkChain

- [FOMO Crypto Trader Intelligence: PnL & Wallets](https://apify.com/stlakchain/fomo-crypto-trader-intelligence)
- [FOMO Smart Money Token Data: Holders, Flow, Devs](https://apify.com/stlakchain/fomo-smart-money-token-data)
- [FOMO Live Smart Money Signals & Trade Alerts](https://apify.com/stlakchain/fomo-live-smart-money-signals)
- [StonkFun Launchpad Data: Tokens, Burns, Rewards](https://apify.com/stlakchain/stonkfun-launchpad-data)
- [Multi-chain Crypto Wallets & Token Prices](https://apify.com/stlakchain/crypto-wallets-prices-multichain)
- [DeFi Data: Yields, Hacks, TVL & Protocols](https://apify.com/stlakchain/defi-yields-hacks-tvl)

# Actor input Schema

## `dataset` (type: `string`):

What to fetch. Each dataset uses the fields below marked for it; fields for other datasets are ignored.

## `tokens` (type: `array`):

Solana token mint address. Add as many as you need; each token is looked up in turn. Used by: token-risk, token-early-buyers, token-pnl-leaders, token-deployer, token-exit-check, token-quality, token-prices.

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

Solana wallet address. Add as many as you need; each wallet is looked up in turn. Used by: wallet-pnl.

## `limit` (type: `integer`):

How many early buyers to return (default 20). Used by: token-early-buyers, token-pnl-leaders.

## `includeHoldings` (type: `boolean`):

Also return current token balances by value (default true). Used by: wallet-pnl.

## `deployer` (type: `string`):

Skip the lookup and inspect this deployer wallet directly. Used by: token-deployer.

## `usd` (type: `integer`):

Sell size in USD to quote (default 10,000). Used by: token-exit-check.

## `thresholdUsd` (type: `integer`):

The market cap milestone (default 3,000,000). Used by: milestone-study.

## `cohort` (type: `string`):

'launches' (default) = every token created in the window, the only honest base rate. 'reached' = tokens that got near the milestone, ~7x more crossers per call but biased toward winners. Used by: milestone-study.

## `daysAgoFrom` (type: `integer`):

Cohort start, days ago (default 120). Used by: milestone-study.

## `daysAgoTo` (type: `integer`):

Cohort end, days ago (default 30). Leave a gap to now so tokens have had time to move. Used by: milestone-study.

## `sample` (type: `integer`):

How many tokens to study (default 25). Each costs one upstream call. Under the 'launches' cohort roughly 1 in 20 crosses $3M, so a small sample measures the base rate but rarely enough crossers for the rest. Used by: milestone-study.

## `minPeakMultiple` (type: `integer`):

What counts as 'went higher' (default 1.5x). Do not set this to 1.0: reaching the line requires settling above it, so a later close above it is near-guaranteed and 'went higher' would read ~100% by construction. Used by: milestone-study.

## `maxItems` (type: `integer`):

Stop after this many rows, whatever the inputs would produce. Caps the cost of a run.

## Actor input object example

```json
{
  "dataset": "token-risk",
  "tokens": [
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
  ],
  "wallets": [
    "498g1rVnFcnjBjpfw1xyqA1WvgQXUU8RWuELjxkjAayQ"
  ],
  "maxItems": 1000
}
```

# Actor output Schema

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

Every row the run saved, one per item.

## `summary` (type: `string`):

Rows saved, whether the run stopped early, and failed lookups.

# 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 = {
    "tokens": [
        "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
    ],
    "wallets": [
        "498g1rVnFcnjBjpfw1xyqA1WvgQXUU8RWuELjxkjAayQ"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("stlakchain/solana-token-wallet-onchain").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 = {
    "tokens": ["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"],
    "wallets": ["498g1rVnFcnjBjpfw1xyqA1WvgQXUU8RWuELjxkjAayQ"],
}

# Run the Actor and wait for it to finish
run = client.actor("stlakchain/solana-token-wallet-onchain").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 '{
  "tokens": [
    "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
  ],
  "wallets": [
    "498g1rVnFcnjBjpfw1xyqA1WvgQXUU8RWuELjxkjAayQ"
  ]
}' |
apify call stlakchain/solana-token-wallet-onchain --silent --output-dataset

```

## MCP server setup

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

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/qFjBc3ztYU0Swsp8L/builds/DwoeXIRKFGdpL6bEQ/openapi.json
