> 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/create-lp.md).

# Create a Solana Liquidity Pool for Your Token

[Create LP](https://j.tools/en/tools/create-lp) opens a new liquidity pool for your Solana token straight from your browser wallet on mainnet. You pick the DEX and pool type, pair your token with SOL or USDC, set the deposit amounts and opening price, and the platform fee for that route shows up before you sign. Raydium Standard AMM and PumpSwap finish in a single approval; the concentrated routes and Orca Splash need three. No code and no separate dashboard.

## What it is

Create LP is a pool launcher. A liquidity pool is the on-chain account pair that lets people trade your token against a quote asset. When the pool exists, anyone can swap into and out of your token, a price chart appears, and aggregators and DEX screeners can index it. Until a pool exists, a freshly minted token has no market.

The tool builds the pool-creation transaction for the DEX you choose, attaches the J Tools platform fee to the same flow, and hands it to your wallet to sign. You provide both sides of the pair (your token plus SOL or USDC), and those deposits become the pool's first liquidity.

## How it works (under the hood)

A standard liquidity pool is a constant-product market maker. You deposit two assets, your token and a quote (SOL or USDC), and the pool holds both. You do not type the starting price directly; it comes from the ratio of the two amounts you deposit. Put in 1,000,000 of your token against 10 SOL and the opening price is 10 SOL per 1,000,000 tokens, or 0.00001 SOL each. Change either side and the opening price moves with it. After launch, every trade shifts the balance of the two reserves, and the price follows that balance automatically. This is why a thin pool moves a lot on a small buy and a deep pool barely flinches.

When the pool is created, the DEX program also issues **LP tokens** to your wallet. These represent your share of the pool. Hold them and you can later withdraw your proportional slice of both reserves plus accrued trading fees. Burn them and the liquidity is locked forever, which is the standard "I cannot rug this" signal traders look for, usually alongside revoked mint and freeze [authorities](/concepts/authorities.md). Send them to someone and they own that share instead.

Concentrated routes work differently. Instead of spreading your liquidity across every possible price (from zero up, like a standard AMM), you choose a **price range** and the pool concentrates your deposit inside it. Raydium CLMM and Orca Whirlpool slice the range with ticks; Meteora DLMM uses discrete **bins**. Liquidity packed into a tight band earns more fees while the price stays in range, and earns nothing once the price leaves it. That trade-off is the whole point of concentrated pools, and it is also where most launch mistakes happen.

The platform fee rides along in the same transaction flow as the pool creation, so it cannot slip out of sync with the action. The amount is fixed per route in the app, and the cost breakdown shows it before you sign. Everything is non-custodial: you approve the transaction in your wallet, the wallet signs locally, and the signed transaction goes on-chain. Multi-step routes (concentrated pools, Orca Splash, or AMM V4 with auto-create-market) open your wallet more than once because they sign the pool, then the position, then the fee.

<figure><img src="/files/sbqqv6bt3A6mPManzngS" alt="How Create LP works"><figcaption></figcaption></figure>

{% hint style="warning" %}
**Live status.** Seven routes are live today: **Raydium Standard AMM (CPMM)**, which carries the recommended badge in the picker, plus Raydium CLMM, Raydium Legacy AMM V4, PumpSwap, Meteora DLMM, Orca Whirlpool, and Orca Splash. Meteora DAMM V1 and DAMM V2 are marked coming soon and are blocked before any wallet signature, so you will never pay a fee for a route that cannot complete.
{% endhint %}

## When to use it

* You just minted a token (often with [Token Creator](/tools/launch/token-creator.md)) and need a pool before anyone can trade it.
* You are a token team or operator launching a fresh market for your project.
* You want to compare pool structures (Raydium's Standard AMM and CLMM, Meteora's DLMM, Orca's Whirlpool) from one place instead of three DEX sites.

To top up or pull liquidity from a pool that already exists, use [Add or Remove Liquidity](/tools/liquidity/liquidity-add-remove.md). If the DEX terms here are new, the [DEXes and liquidity](/concepts/dexes-and-liquidity.md) concept page and the [Glossary](/getting-started/glossary.md) explain pools, fee tiers, and concentrated ranges.

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)) holding both the base token and the quote you plan to pair it with.
* Enough SOL for the platform fee, the DEX pool-creation cost, account rent, and the network fee. The app runs a preflight against your fresh balances before it signs.
* An existing token to use as the base mint. If you do not have one yet, mint it with [Token Creator](/tools/launch/token-creator.md) first.
* A clear idea of your opening price, since the deposit ratio sets it. Decide how much of each side you want to commit before you start.
* For Raydium Legacy AMM V4 without auto-create-market: an existing OpenBook Market ID.

{% hint style="info" %}
The base mint can be pre-filled from a `?token=` link, so opening Create LP from another tool carries your token across automatically.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect and pick your DEX

Connect a wallet (or wallet source) at the top of the page. Then choose a DEX and pool type. Standard AMM on Raydium is the recommended choice; coming-soon routes are blocked before you sign.
{% endstep %}

{% step %}

### Choose Simple or Advanced

Simple mode applies smart defaults: it auto-picks a fee tier for the pair it detects and sets a sensible start time, hiding the deeper inputs. Advanced mode exposes everything, including custom start time, manual price, fee mode, and the per-DEX fee controls.
{% endstep %}

{% step %}

### Set the token pair and amounts

Enter the base token mint and pick the quote token from the per-DEX allowlist (SOL by default, with stablecoins and a few others depending on the DEX) or choose a Custom Mint. Then set the base and quote amounts. Their ratio sets the pool's opening price. On a SOL quote, the Max button leaves enough SOL behind for the fee, the pool cost, and a buffer.
{% endstep %}

{% step %}

### Confirm the opening price

The initial price is derived from your quote-to-base ratio. In Advanced mode you can override it by hand, or pull an on-chain estimate with Use Market Price if the pair already trades somewhere.
{% endstep %}

{% step %}

### Pick a fee tier (and range, for concentrated pools)

Choose the swap-fee tier from the selected DEX's list. For concentrated routes (Raydium CLMM, Meteora DLMM, Orca Whirlpool) you also set the tick or bin step and a valid min and max price range. The Full, Balanced, and Tight presets can fill the range from the reference price for you.
{% endstep %}

{% step %}

### Set timing and any advanced options

Optionally schedule a future start time on DEXs that support it. On Raydium AMM V4 you can link an OpenBook Market ID or have the tool auto-create the market in the same flow. Meteora and Orca expose extra fee controls if you want them.
{% endstep %}

{% step %}

### Review the cost breakdown

Check the Live Preview and the full cost breakdown. Four lines are itemized before you commit: the platform fee, the DEX protocol fee, account rent, and the Solana network fee.
{% endstep %}

{% step %}

### Create the pool and save the IDs

Click Create LP. The app runs a preflight on your balances and parameters, then signs and submits. Multi-step routes open your wallet a few times (pool, then position, plus the fee). When it confirms, save the **Pool ID** and **LP Mint** from the result dialog. There is no recovery screen.
{% endstep %}
{% endstepper %}

[**Open Create LP in the app →**](https://j.tools/en/tools/create-lp)

{% hint style="info" %}
**About wallet warnings.** Some tools bundle several instructions into one transaction, for example creating a token and its metadata together. Phantom can show a caution banner for these transactions. The banner is expected here and does not mean something is wrong. Read what you are signing, then approve.
{% endhint %}

## The options, explained

* **DEX and pool type:** Which DEX plus pool model you launch on. Defaults to Raydium Standard AMM, the recommended route.
* **Config mode:** Simple applies smart defaults and hides advanced inputs. Advanced exposes start time, manual price, fee mode, and the per-DEX controls.
* **Base mint:** Your token, the asset the pool is built around. Can be pre-filled from a `?token=` URL.
* **Quote mint:** The asset your token is priced against. Chosen from a per-DEX allowlist (SOL by default, plus stablecoins on some DEXs) or a Custom Mint.
* **Base and quote amounts:** The starting liquidity on each side. Their ratio sets the opening price, so this is where you actually decide the launch price.
* **Initial price:** The opening price. Auto from the ratio, a manual override in Advanced mode, or an on-chain estimate via Use Market Price.
* **Fee tier:** The swap fee traders pay on every trade in this pool. Allowed values come from the selected DEX. Higher tiers earn more per trade but can scare off volume.
* **Tick / bin step and price range:** Concentrated routes only. The step size plus a required min and max active price range. Presets (Full, Balanced, Tight) can fill it from the reference price.
* **Start time:** Start trading now or at a future time, on DEXs that support an open time.
* **Market ID / auto-create market:** Raydium AMM V4 only. Link an existing OpenBook Market ID and the run is a single approval. Have the tool create the market instead and it adds about 0.35 SOL of OpenBook account rent and takes the run to four approvals. Auto-created market runs cannot be resumed: if one fails part-way, the next attempt mints a brand-new market and the rent already spent is gone.
* **Per-DEX fee controls:** Meteora exposes a pool-type profile, fee mode, base fee in bps, dynamic fee, scheduler, and collection token. Orca exposes an adaptive-fee toggle.

## 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 platform fee depends on the route you pick, from 0.05 to 0.15 SOL.** Concentrated routes add 0.05 SOL on top of their base fee, since they open and sign more accounts. The amount is fixed per route in the app, and the cost breakdown shows the exact number for your route before you sign.

| Route                                  | Platform fee |
| -------------------------------------- | ------------ |
| PumpSwap                               | 0.05 SOL     |
| Raydium Standard AMM, Orca Splash Pool | 0.1 SOL      |
| Raydium Legacy AMM V4                  | 0.12 SOL     |
| Meteora DLMM                           | 0.13 SOL     |
| Raydium CLMM, Orca Whirlpool           | 0.15 SOL     |

On top of the platform fee you pay the costs that any pool launch carries on Solana. The DEX charges its own protocol fee to create the pool. Creating new on-chain accounts (the pool, the position, the LP mint, and associated token accounts) requires **rent**, a small refundable SOL deposit that keeps those accounts alive. And every transaction pays a tiny **network fee** to validators. Concentrated routes open more accounts and sign more than once, so they cost a little more in rent and fees than a simple full-range pool. All four lines are itemized in the cost breakdown before you sign.

## Common mistakes and troubleshooting

* **Route not live.** If you picked a coming-soon route, the tool stops before any signature. Switch to Raydium Standard AMM or another live route.
* **Price range missing or invalid.** Concentrated routes need a range with min above 0 and max above min. The Create button stays disabled until the range is set, so you do not pay for the pool and then fail the position step.
* **Liquidity goes out of range.** On a concentrated pool, once the price leaves your chosen band your liquidity stops earning fees and sits entirely on one side. Plan to widen the range or re-center the position if the market moves, or use a full-range route if you do not want to manage it.
* **Impermanent loss.** When the price moves after you deposit, arbitrage trades shift the balance of your two assets, and you can end up with less value than if you had simply held both tokens. The fees you earn are meant to offset this, but a sharp one-way move can outweigh them. This applies to every AMM pool and is sharper on concentrated ranges.
* **Wrong opening price.** The deposit ratio is the price. If the pool launches at a price you did not intend, double-check the base and quote amounts; the ratio, not a typed number, decides where trading starts.
* **DLMM range too wide.** A DLMM position covers at most 70 price bins. A wider range is rejected before anything is sent, with the code `LP_RANGE_TOO_WIDE`. Tighten the range, raise the bin step, or use a preset.
* **Token-2022 with a transfer fee or hook.** These trigger a non-blocking risk warning. Pool math does not net out transfer fees, and many pools reject hooked tokens, so creation can fail on-chain or behave oddly. See [SPL vs Token-2022](/concepts/spl-vs-token2022.md) for which extensions cause trouble in pools.
* **Lost the Pool ID.** The result dialog is the only place it appears, with no recovery screen. Save it when it shows, or look the pool up later in [My Pools](/tools/liquidity/my-pools.md).

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/EySFBE8ku57pLjq1HfJQ" %}
[My Liquidity Positions](/tools/liquidity/my-pools.md)
{% endcontent-ref %}

{% content-ref url="/pages/9r2rW9r83CsCoJpYE8gL" %}
[Solana Token Creator](/tools/launch/token-creator.md)
{% endcontent-ref %}

{% content-ref url="/pages/wzTSdddfnEFKadxZXdPR" %}
[Solana Token Swap](/tools/trade/swap.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/create-lp.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.
