> For the complete documentation index, see [llms.txt](https://docs.j.tools/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.j.tools/tools/utilities/wallet-scope.md).

# Wallet Scope: Bulk Solana Wallet Analyzer

[Wallet Scope](https://j.tools/en/tools/wallet-scope) takes a list of Solana addresses and turns it into one sortable table. Balances, USD value, the tokens you care about as their own columns, each wallet's age, and an on-chain label for anything that is a pool, a program, or an exchange. On top of that it answers the question a balance list never can: which of these wallets were funded by the same person. The whole scan is read-only: it signs nothing, moves nothing, and the balance layer needs no wallet connection at all.

## What it is

Wallet Scope is a bulk wallet analyzer. You paste up to 500 addresses, or drop a file, or pull a token's top 100 holders straight in, and every wallet lands on one row with the same columns. SOL is always tracked. USDC comes preloaded, and you get three token columns in total, each showing the per-wallet amount and its USD value.

The second thing it does is find the address that sent each wallet its first SOL. Wallets seeded by the same private address are grouped into a cluster. That grouping is on-chain fact, not a guess from timing or balance shape, and every address links to Solscan so you can check it yourself.

There are two tiers. All of the above sits in the free layer, along with the last 15 swaps, Excel export and share links. Deep analysis is the metered one: 30-day realized and unrealized PnL, win rate and trade count, priced per wallet. It runs on a third-party trade-data provider, so when that provider is not wired up the deep button reads **Coming soon** and only the free layer runs.

## Why use this tool

Opening 200 wallets one by one in an explorer is an afternoon of tabs, and at the end of it you still have twenty screenshots instead of a table you can sort. The obvious fix is a script, which then needs RPC keys, batching, rate-limit handling and a price feed before it prints anything useful.

Wallet Scope is that work already done:

* Infrastructure wallets are tagged. Program, token, burn, LP pool and exchange addresses stop looking like real holders.
* Anything first seen in the last 30 days shows as new, which is the fastest way to spot a freshly minted wallet set.
* The funding graph turns a flat list into a structure. Twenty wallets holding 1% each looks like healthy distribution, right up until one funder turns out to be behind eighteen of them.

## How it works (under the hood)

Nothing in the free layer signs a transaction. It is a read of on-chain state from start to finish.

When you start a scan, the addresses you pasted are parsed first: valid Base58 keys are extracted out of whatever mess you dropped in, duplicates are removed, and the list is capped at 500. If you paste more, the first 500 are scanned and the page tells you it was clamped.

Balances are then read over on-chain RPC in chunks, and rows stream into the table as each chunk lands rather than waiting for the whole set. The same pass collects the token accounts for your chosen token columns and the native SOL balance, and a price lookup converts those into USD. The last 15 swaps you see when you open a row come from Helius enhanced transactions.

A second pass walks each wallet's earliest transactions to find who sent it its first SOL. That funder address is the cluster key: two or more wallets that were first funded from the same private address are grouped together. Known exchange and bridge hot wallets are held in their own bucket and never called a cluster, because thousands of unrelated people withdraw from the same address. The cluster map covers the first 300 wallets of the set and says so when it truncates.

Deep analysis is the one part that leaves the free path. You connect a wallet and sign a message so the credits spent are provably yours; that signature is not a transaction and moves nothing. Buying a credit pack is a separate step and is a normal transfer: your wallet signs a SOL payment to the platform address, and the credits are derived from the amount that actually landed on-chain. The PnL figures themselves come from a paid on-chain trade-data provider and are passed through as-is.

## When to use it

* You pulled a holder list and want to know how many of those holders are actually the same person.
* You are checking an airdrop list before you send, so you are not funding dust wallets or your own bundle.
* You are reviewing a token you might buy and want the top wallets' age, labels and funding sources in one view.
* You run several wallets yourself and want their balances in one place instead of switching accounts.
* You need a point-in-time export for a report, and you want the addresses hyperlinked.
* You want to rescan a saved wallet set later and see exactly what changed.

Pull the wallet list with [Holder Snapshot](/tools/utilities/token-snapshot.md), scan it here, then act on it with [Multi Sender](/tools/wallets/multi-sender.md) or [Batch Collector](/tools/wallets/batch-collector.md).

## Before you start

* A list of Solana addresses. One per line is easiest, but messy text works: valid addresses get extracted and duplicates dropped. A `.txt`, `.csv` or `.json` file can be dropped on the Import tab instead.
* No wallet connection for the free layer. Nothing to connect, nothing to sign.
* A connected wallet only if you want deep analysis, because the signature is what ties the credits to you.

## Step by step

{% stepper %}
{% step %}

### Load the wallets

Paste addresses one per line, drop a `.txt`, `.csv` or `.json` file on Import, or open the Holders tab and pull a token's top 100 holders straight in. The list is deduplicated and capped at 500.
{% endstep %}

{% step %}

### Pick your token columns

SOL is always tracked and USDC arrives as the first token column. Add up to three token columns in total, each showing the per-wallet amount and its USD value.
{% endstep %}

{% step %}

### Run the free scan

Hit **Free analysis**. Rows stream in as each batch resolves. Sort by any column, or narrow the list with the Funded, Fresh and CEX chips.
{% endstep %}

{% step %}

### Open a row

Click any wallet for its top holdings and its last 15 swaps. This costs nothing and needs no wallet.
{% endstep %}

{% step %}

### Switch to Clusters

The Clusters view groups wallets by who funded them first. Same funder, same group. Exchange and bridge wallets sit apart. The map covers the first 300 wallets in the set.
{% endstep %}

{% step %}

### Run deep analysis where it is worth it

Select the wallets that matter and run **Deep analysis** for 30-day PnL, win rate and trade count. One credit per wallet, five free lookups a day per connected wallet.
{% endstep %}

{% step %}

### Export or share

Download a multi-sheet Excel workbook, or copy a share link. Save the set as a cohort and rescan it later for a what-changed diff.
{% endstep %}
{% endstepper %}

[**Open Wallet Scope in the app →**](https://j.tools/en/tools/wallet-scope)

## The options, explained

* **Wallet list:** Up to 500 addresses per run. Pasted text, an imported `.txt`/`.csv`/`.json` file, or a token's top 100 holders. Duplicates and invalid addresses are filtered before the 500 cap is applied.
* **Token columns:** Three at a time. SOL is always tracked and USDC is preloaded. Each column shows the amount held and the USD value.
* **Free analysis:** The balance layer. Balances, holdings, wallet age, on-chain labels, the last 15 swaps, clusters, Excel and share links. No wallet, no fee, no daily cap.
* **Deep analysis:** The metered layer. 30-day realized and unrealized PnL in USD, win rate and trade count. One credit per wallet.
* **Filter chips:** Funded, Fresh and CEX narrow the table to wallets that have a funder, wallets under 30 days old, or wallets tagged as exchange addresses.
* **Clusters view:** Groups the first 300 wallets by their first SOL funder. Exchange and bridge hot wallets stay in a separate bucket.
* **Cohorts:** Save a wallet set under a name, then rescan it later to get a diff of what changed.
* **Excel export:** Two workbooks. The plain one holds a summary sheet, the wallet table, a rescan sheet with the bare address list, a metadata sheet, and a what-changed sheet when a rescan diff exists, every address hyperlinked to Solscan. The detailed one adds a holdings sheet for the 100 funded wallets with the highest USD value and marks the workbook when your set was larger than that.
* **Share links:** The summary travels inside the URL itself, so no report ever sits on a server. Anyone with the link sees the addresses you scanned.

## Fees and costs

{% hint style="warning" %}
**About fees.** Every action has two costs: the Solana **network fee** paid to validators, and the **J Tools platform fee**. The platform fee always shows in the app before you confirm, and nothing is charged until you sign. Fees can change over time, so trust the in-app summary rather than a number you saw once.
{% endhint %}

**The base tool is free.** There is no platform fee to scan wallets, and no wallet connection is needed for it.

| Cost                                | Amount                                 |
| ----------------------------------- | -------------------------------------- |
| J Tools platform fee (free layer)   | Free (0 SOL)                           |
| Deep analysis, daily allowance      | 5 lookups per day per connected wallet |
| Deep analysis, beyond the allowance | 1 credit per wallet, bought in packs   |
| On-chain cost                       | None, the scan only reads the chain    |

Credit packs start at 100 lookups and get cheaper per query as they grow. Prices are set by the admin and the current ones are always on the buy screen, so treat any number here as indicative:

| Pack     | Credits | Price    |
| -------- | ------- | -------- |
| Starter  | 100     | 0.12 SOL |
| Standard | 500     | 0.5 SOL  |
| Pro      | 1,500   | 1.2 SOL  |
| Bulk     | 5,000   | 3.5 SOL  |

Credits are never spent on exchange, pool or program rows, or on wallets that fail to analyze. Because the free layer never signs anything, it costs no Solana network fee either. You do not need any SOL in your wallet to run it.

## Common mistakes and troubleshooting

* **Pasting more than 500 addresses.** The first 500 are scanned and a notice tells you the list was clamped. Split a bigger list into runs, or narrow it first.
* **Expecting the cluster map to cover everything.** It covers the first 300 wallets of the set and says so when it truncates. The table still covers all 500.
* **Reading an exchange withdrawal as a cluster.** Known exchange and bridge hot wallets are deliberately kept out of clusters. Thousands of unrelated people withdraw from the same address, so shared history there means nothing.
* **Treating deep PnL as a tax report.** Those figures are passed through from an analytics provider and cover the last 30 days. Read them as a fast signal.
* **Treating a scan as live.** Solana state changes block by block. Rescan before you act on anything.
* **USD showing a dash.** The USD column depends on an external price lookup. When it fails, balances and shares are still correct.

For the full list, see the [Error codes reference](/reference/error-codes.md).

## Advanced tips

* Scan an airdrop list here before you send. Wallets tagged as programs or pools will not receive the way you expect, and dust wallets cost you rent for nothing.
* Sort by wallet age. A block of addresses that all appeared in the same week is worth reading as one entity until proven otherwise.
* Save a set as a cohort right after a launch, then rescan it a week later. The diff sheet shows who added, who sold, and who went quiet.
* Spend deep credits on the top of the table, not the whole set. The wallets that move the price are the ones worth the PnL lookup.

## Related tools

{% content-ref url="/pages/biKUAmB4vuIiL2aReFe0" %}
[J Map: Token Cluster Map](/tools/utilities/j-map.md)
{% endcontent-ref %}

{% content-ref url="/pages/IkDuDGRTPYj2wcjtbIre" %}
[Token Holder Snapshot](/tools/utilities/token-snapshot.md)
{% endcontent-ref %}

{% content-ref url="/pages/7CPBHR61Y6akMdkeSBGW" %}
[Batch SOL and Token Collector](/tools/wallets/batch-collector.md)
{% endcontent-ref %}

{% content-ref url="/pages/ABVX2mBQDoCv7DEdVmKp" %}
[Multi Sender and Airdrop](/tools/wallets/multi-sender.md)
{% endcontent-ref %}

{% hint style="success" %}
**J Tools is non-custodial.** We never store or transmit your private keys and never ask for your seed phrase. Every transaction is signed in your own browser, and nothing about a key ever reaches our servers. A few multi-wallet tools do let you paste private keys for throwaway hot wallets, which stay in your browser tab and are used only to sign locally. Never paste a key tied to long-term holdings, and if a page ever asks for your seed phrase, stop and close it.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.j.tools/tools/utilities/wallet-scope.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
