> 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/liquidity/my-pools.md).

# My Liquidity Positions: Track Every Pool

[My Pools](https://j.tools/en/tools/my-pools) is a read-only portfolio viewer for your Solana liquidity. Connect your wallet and it scans the chain for every LP position it can attribute to you across Raydium (V4, CPMM, and CLMM), Meteora, Orca (Whirlpool), and PumpSwap, then lists each one with its live USD value, claimable fees, and price range. Nothing is signed here, and the only thing you can type is an optional pool address under Track by ID. If you are new to how these positions work, the [DEXes and liquidity](/concepts/dexes-and-liquidity.md) concept page is a good primer, and the [Glossary](/getting-started/glossary.md) covers terms like LP mint.

## What it is

My Pools is a dashboard, not an action tool. It answers one question: where is my liquidity right now, and what is it worth? When you connect a wallet, the page fans out across the supported DEX scanners, gathers every position that belongs to that wallet, and renders each as a card. Each card carries the pair, the DEX it lives on, an estimated USD value, claimable fees where the chain exposes them, your share of the pool, an APR estimate, and an in-range or out-of-range badge.

When you want to act on a position, the card deep-links you into the tool that actually does the work: add or remove liquidity, burn LP, or create a fresh pool. Those tools handle their own signing and their own fees.

## How it works (under the hood)

A liquidity pool is a pair of token reserves held by a DEX program. When you provide liquidity, you deposit both sides and the program records your share. On a classic constant-product DEX (Raydium V4 and CPMM, PumpSwap), that share is an LP token: a fungible token whose balance in your wallet represents a slice of the whole pool. On a concentrated-liquidity DEX (Raydium CLMM, Orca Whirlpool, Meteora), your position is usually an NFT that pins your liquidity to a specific price range, or to a set of discrete bins in Meteora's DLMM model.

My Pools finds these two shapes in different ways. For LP-token pools it looks for the LP mint balances your wallet holds and matches them to known pools. For NFT positions it reads the position accounts owned by your wallet. Either way the source of truth is the chain itself, read through the platform's RPC layer.

Value comes from the deposit ratio. A pool's price is set by the ratio of its two reserves, so the program accounts tell the tool how many of each token your share is worth right now. Multiply by current token prices and you get the USD estimate on each card. Because prices move with every trade, these figures are live estimates, not settlement numbers.

Fees behave differently by pool type, which is why the cards do not all show the same thing:

* Constant-product pools (Raydium V4 and CPMM, PumpSwap) fold trading fees back into the reserves, so there is no separate fee balance to claim. Raydium V4 and CPMM positions show a pool APR estimate instead; PumpSwap positions show neither a fee balance nor an APR.
* Concentrated pools that expose a separate fee balance on-chain (Raydium CLMM, Meteora DLMM and DAMM v2, Orca) report real claimable fees read straight from your position account. On Raydium CLMM that figure comes from the fee counter cached on the position, so treat it as a floor rather than the live total.

Concentrated positions also carry a price range. If the market price sits inside your range, the position is in-range and earning fees; if price has moved past your bounds, it is out-of-range and idle until price comes back or you adjust. The badge on each card reflects that state.

## When to use it

* You provide liquidity across several Solana DEXes and want one place that shows total value and uncollected fees.
* You created pools through J Tools and want their pool IDs, LP mints, and history together.
* You are deciding when to [add, remove, claim](/tools/liquidity/liquidity-add-remove.md), or burn, based on live value and whether a position is in range.
* You want to track a pool that another wallet created, using its pool address.

## Before you start

* A connected wallet, the one that actually holds the LP tokens or position NFTs ([how to connect](/getting-started/quick-start.md)). Without it the page just asks you to connect first.
* Nothing else for the automatic scan. It is read-only, so there is no fee to view a position. The only thing you can fill in is the optional **Track by ID** box further down.

{% hint style="info" %}
Only positions held by the connected wallet show up. A position in a different wallet, or one already closed on-chain, will not appear. For a pool created by another wallet, use **Track by ID** further down.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect your wallet

Connect the wallet that holds your LP tokens or position NFTs. The page reads the chain for you; you sign nothing.
{% endstep %}

{% step %}

### Let it scan

On connect, J Tools fans out across the DEX scanners and brings back every position it can attribute to your wallet, along with a note for any DEX it could not reach. Positions render as cards on their own.
{% endstep %}

{% step %}

### Read each position

Every card shows the pair, the DEX, USD value, claimable fees where the chain exposes them, your share of the pool, an APR estimate, and an in-range or out-of-range badge.
{% endstep %}

{% step %}

### Expand for detail

Open a card to see the price-range bar, the per-token amounts, and copyable Pool ID, Position, and LP Mint values, plus a Solscan link.
{% endstep %}

{% step %}

### Act on it

Add and Remove deep-link into the liquidity tool with the pool pre-filled. Burn LP opens a confirm dialog, then routes to the [Burn Tokens](/tools/token/burn-tokens.md) tool; burning permanently destroys the LP tokens on-chain and cannot be undone, which is how teams prove locked liquidity. New LP sends you to create a fresh pool.
{% endstep %}
{% endstepper %}

[**Open My Pools in the app →**](https://j.tools/en/tools/my-pools)

## The options, explained

* **Wallet:** the connected wallet whose positions are scanned. It is the source of truth for the automatic scan, and you never type an address for it.
* **Provider filter:** narrows the list to one provider (All, Raydium, Pump.fun, Meteora, or Orca). It filters what is already loaded; it does not re-scan.
* **Refresh:** re-runs the on-chain scan. It also runs on its own when you switch wallets and when you return to the tab. The server caches each wallet's result briefly, so two refreshes moments apart may return the same snapshot.
* **Track by ID: DEX:** the DEX for a pool you want to track by hand: Raydium CPMM, CLMM, or AMM v4, PumpSwap, Meteora DAMM v2 or DLMM, or Orca Whirlpool or Splash.
* **Track by ID: Pool ID:** a pool address (32 to 44 characters) saved to your browser's local history. Use it for a pool the scan cannot attribute, for example one created by another wallet. Tracked entries carry no value or fee numbers.

{% hint style="info" %}
Live scan results are merged with a small history kept in your browser. That is how PumpSwap pools and pools you created through J Tools from another context still show up, labeled **From history**. From-history and Tracked-by-ID entries live in that browser, not on a server, so they do not follow you to another machine.
{% endhint %}

## 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. My Pools only reads on-chain data to show your positions, so you pay nothing to view them.

| Cost                 | Amount                                                |
| -------------------- | ----------------------------------------------------- |
| J Tools platform fee | Free (0 SOL)                                          |
| On-chain cost        | None, it runs in your browser or only reads the chain |

There is no network fee either, because the page broadcasts no transactions. Scanning is pure reading, so no SOL leaves your wallet and no rent is paid. Network fees and rent only come into play later, when you act on a position through a linked tool such as add, remove, burn, or create, and each of those tools discloses its own costs on its page.

## Common mistakes and troubleshooting

* **No positions show up.** The connected wallet may not hold the LP tokens, or the position was closed on-chain. Confirm you connected the right wallet. For a pool made by another wallet, add it with Track by ID.
* **Some DEXes are missing.** A single DEX scan can fail for a moment and return a partial result. The page tells you which DEXes it could not reach. Hit Refresh.
* **Values look stale.** Each wallet's scan is cached briefly on the server, so two refreshes close together can return the same snapshot. Wait a little, then refresh again.
* **A position shows out-of-range.** On a concentrated pool, price has moved past your bounds, so the position is idle and earning nothing for now. It is not lost. You can wait for price to return, or use the liquidity tool to remove and re-add around the current price.
* **A pair's value looks lower than what you put in.** This is usually impermanent loss, the normal divergence that happens when one token in the pair moves more than the other. It becomes real only when you withdraw, and accrued fees offset part of it. Out-of-range concentrated positions also stop collecting fees, which widens the gap until you adjust.

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

## Related tools

{% content-ref url="/pages/uGgmNhYYrXAD9JCyTmE9" %}
[Add or Remove Liquidity](/tools/liquidity/liquidity-add-remove.md)
{% endcontent-ref %}

{% content-ref url="/pages/QT0nYfDbGpJo4Cm5Tbs6" %}
[Create a Solana Liquidity Pool](/tools/liquidity/create-lp.md)
{% endcontent-ref %}

{% content-ref url="/pages/El6oae0bfwSTjeoxgA0u" %}
[Burn Solana Tokens](/tools/token/burn-tokens.md)
{% endcontent-ref %}

{% content-ref url="/pages/wzTSdddfnEFKadxZXdPR" %}
[Solana Token Swap](/tools/trade/swap.md)
{% endcontent-ref %}

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