> 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/j-map.md).

# J Map: Solana Token Holder Cluster Map

[J Map](https://j.tools/en/tools/j-map) draws a token's top holders as circles sized by share of supply, then colors the ones that are connected. Wallets that funded each other, or moved tokens between them, share a color and sit close together. The creator wallet is marked in red. It is free, needs no wallet connection, and the token address rides in the URL so any view can be sent as a link.

## What it is

J Map is a token cluster map. You give it a mint address and it draws the top holders, grouping the wallets that turn out to be connected.

A holder list tells you who holds the token. The map tells you which of those holders are the same person. Ten unrelated wallets holding 2% each is a distribution. Ten linked wallets holding 2% each is one holder with 20%, and a ranked table will never show you the difference.

## Why use this tool

Splitting a bag across twenty wallets is cheap, takes minutes, and makes any top-holders table look healthy. The map makes that visible in seconds:

* Wallets linked by real transfers or funding are grouped and colored together, so a split bag reads as one block instead of twenty rows.
* The creator wallet is marked in red and its outgoing flow is traced, which answers where the dev supply went.
* Wallets quietly accumulating from many sources get flagged as collectors.
* You choose the depth, up to the top 500 holders.

## How it works (under the hood)

Two on-chain reads, no transaction anywhere in the flow.

The first pass loads the token's holder accounts over RPC and ranks them by balance, keeping the depth you selected. Circle size follows share of supply, so the picture is weighted rather than a flat list of equals.

The second pass looks for links between those wallets: one funded the other, tokens moved between them, or the same outside address fed both. Wallets that share that history are grouped into a cluster and drawn as one colored group, and a shared funder becomes its own hub node with the wallets it fed hanging off it. The link scan covers the first 300 holders, so on a Top 500 map the circles below rank 300 are drawn but never checked, and they always read as independent. The scan does not infer from timing, balance shape, or naming. Only actual transfers count, which keeps the map boring and factual rather than speculative.

The creator wallet is identified from the mint and marked in red, and its outgoing transfers are traced so you can follow the dev supply. The trending rail on the side comes from Jupiter and is cached for about a minute.

Because the token address sits in the URL, copying the address bar reproduces the same view for anyone. They get a fresh scan of the same token, so numbers can move slightly if holders traded in between.

## When to use it

* You are about to buy and want to know whether the top of the holder table is really one wallet.
* You want to see where the creator's supply went after launch.
* A token looks well distributed on paper and you want a second opinion.
* You are checking your own launch to see how the bundle wallets read to an outsider.
* You want to send someone a picture of a token's holder structure instead of a paragraph.

For the full holder table with balances, ages, labels and an Excel export, use [Holder Snapshot](/tools/utilities/token-snapshot.md). To dig into individual wallets, paste them from the map into [Wallet Scope](/tools/utilities/wallet-scope.md), which starts from a wallet list rather than a token and adds optional PnL. The map finds what deserves a look; the table does the looking.

## Before you start

* A token mint address (CA). The [Glossary](/getting-started/glossary.md) covers the term if it is new.
* Nothing else. No wallet, no signature, no account.

{% hint style="info" %}
Every reading here is a starting question, not a verdict. Exchanges, market makers and team vesting can all look like large connected groups.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Pick a token

Paste a mint address, or open the trending rail and click one of the movers. The scan starts on its own.
{% endstep %}

{% step %}

### Choose the depth

Set how many top holders the scan covers, up to 500. All of them are drawn, while the link scan behind the colors reaches the first 300. Holders below the cutoff exist but are not drawn, so read the map as the top of the book.
{% endstep %}

{% step %}

### Read the clusters

Same color means linked wallets: they funded each other, moved tokens between them, or were fed by the same outside address. Circle size is share of supply. One large single-color block near the top is the signal to look closer.
{% endstep %}

{% step %}

### Follow the dev

The red DEV marker sits on the creator wallet and its outgoing flow is traced from there.
{% endstep %}

{% step %}

### Share or rescan

Copy the address bar to send the exact view to someone else. Rescan pulls fresh on-chain data whenever you need the current state.
{% endstep %}
{% endstepper %}

[**Open J Map in the app →**](https://j.tools/en/tools/j-map)

## The options, explained

* **Token mint (CA):** The token to map. Paste an address or pick one from the trending rail.
* **Depth:** How many top holders the scan covers, up to 500. Deeper scans take longer and draw more nodes. The link scan that produces the colors stops at the first 300 holders.
* **Trending rail:** A list of movers sourced from Jupiter, cached for about a minute. A shortcut, not a recommendation.
* **Rescan:** Re-reads the chain for the same token. Useful after a period of activity.
* **Share:** The token address is already in the URL, so copying the address bar is the share action.

## 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 %}

**This tool is free.** There is no platform fee and no wallet connection, so there is no Solana network fee either.

| Cost                 | Amount                              |
| -------------------- | ----------------------------------- |
| J Tools platform fee | Free (0 SOL)                        |
| On-chain cost        | None, the scan only reads the chain |

The only limit is a fair-use rate cap, since the scan runs against on-chain RPC on our side.

## Common mistakes and troubleshooting

* **Assuming the map covers every holder.** It covers the depth you chose, up to 500. A long tail of small holders exists below that line and is not drawn, and the link scan itself stops at the first 300 holders.
* **Expecting clusters on a brand-new token.** With almost no transfer history there is nothing to link yet, so most wallets come back independent.
* **Comparing two scans taken minutes apart.** Holders move. Small differences between scans are normal, not a bug.
* **A scan that returns very few nodes.** Usually a mint with few holders or one that is mostly held inside a pool. Check it in [Holder Snapshot](/tools/utilities/token-snapshot.md) to confirm.

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

## Advanced tips

* Start shallow. A top-100 scan renders fast, gets every wallet in it link-scanned, and usually shows the structure. Go deeper when the top looks clean and you want the next layer, keeping in mind that past rank 300 the circles arrive without links.
* Look at combined cluster supply, not individual circle size. Three medium circles in one color beat one large independent circle.
* Save the URL. It is the cheapest way to keep a dated record of how a token's holder base looked at a point in time.

## Related tools

{% content-ref url="/pages/tvk3KydrniyizApPkWZi" %}
[Wallet Scope: Bulk Wallet Analyzer](/tools/utilities/wallet-scope.md)
{% endcontent-ref %}

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

{% content-ref url="/pages/9r2rW9r83CsCoJpYE8gL" %}
[Solana Token Creator](/tools/launch/token-creator.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/j-map.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.
