> 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/orca-whirlpool.md).

# Create Orca Whirlpool LP

[Create Orca Whirlpool LP](https://j.tools/en/tools/orca-whirlpool) opens a concentrated liquidity position on Orca. You pick the token pair, set the price band you want your liquidity to work in, choose a tick spacing, set the opening price and your deposits, then sign in your wallet. Orca hands you back a position NFT that represents your share of the pool. If you are new to how DEX pools work, the [DEXes and liquidity](/concepts/dexes-and-liquidity.md) primer is a good starting point.

```mermaid
flowchart TD
    A[Pick token A and token B] --> B[Set initial price and tick spacing]
    B --> C[Set lower and upper price range]
    C --> D[Enter token A and token B amounts]
    D --> E[Sign and create the Whirlpool]
    E --> F[Position NFT is live in your wallet]
    classDef brand fill:#EF2A2A,stroke:#EF2A2A,color:#ffffff,font-weight:bold;
    classDef soft fill:#1f2937,stroke:#374151,color:#e5e7eb;
    class A,B,C,D,E soft;
    class F brand;
```

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

## What concentrated liquidity means

A normal AMM spreads your liquidity across every possible price, from zero to infinity. Most of that capital sits in price zones that almost never trade, so it earns nothing.

A concentrated pool lets you pack your liquidity into a narrow band, say 0.9 to 1.1 instead of the whole curve. Inside that band your capital is far denser, so it earns more fees per dollar. The catch is that fees only flow while the market price sits **in range**. When the price drifts outside your lower or upper bound, your position goes **out of range**: it stops earning, and it ends up fully on one side of the pair. You either widen the range, or move it to follow the price. For a deeper look at how AMMs and concentrated pools differ, see [DEXes and liquidity](/concepts/dexes-and-liquidity.md), and check the [Glossary](/getting-started/glossary.md) for any term you are unsure about.

## When to use this

* You want capital-efficient liquidity on Orca and you have a view on where the price will trade.
* You are providing liquidity for a pair that trades inside a fairly stable band and you want to focus your deposit there.
* You want an Orca position you can later manage from one place, as an NFT in your own wallet.

To launch a standard full-range pool instead, or to compare DEX pool structures side by side, use [Create LP](/tools/liquidity/create-lp.md). For concentrated liquidity on Raydium rather than Orca, see [Create Raydium CLMM LP](/tools/liquidity/raydium-clmm.md). To top up or pull an existing position, use [Add or Remove Liquidity](/tools/liquidity/liquidity-add-remove.md).

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)). The page blocks creation until a wallet is connected.
* Enough SOL for the platform fee, the on-chain account rent for the new pool and position, and the network fee.
* The two token mints for the pair (token A and token B), plus a balance of each to deposit.
* A clear idea of your opening price and the lower and upper bounds you want liquidity to sit between.

## Step by step

{% stepper %}
{% step %}

### Connect your wallet

Connect a wallet at the top of the page. Until you do, the page shows a prompt and the Create button stays disabled.
{% endstep %}

{% step %}

### Set the token pair

Enter the **Token A** and **Token B** mint addresses. Both use the shared mint picker, so you can paste a mint or pick one you already hold. The two sides cannot be the same token.
{% endstep %}

{% step %}

### Choose the tick spacing

Pick a tick spacing: **1** (most concentrated), **8**, **64** (recommended), or **128**. A smaller spacing packs liquidity tighter and earns more per dollar in range, but goes out of range faster. 64 is a balanced default.
{% endstep %}

{% step %}

### Set the prices

Type the **Initial Price** (where the market sits now, in token B per token A), then the **Lower Price** and **Upper Price** that bound your range. Lower has to be below the initial price and upper above it, or the tool rejects the range.
{% endstep %}

{% step %}

### Enter your deposit amounts

Set the **Token A Amount** and **Token B Amount** you want to deposit. The Liquidity Depth bar shows your range with the current price marked in the middle.
{% endstep %}

{% step %}

### Create the position and save the IDs

Check the platform fee, then click **Create Whirlpool Position**. Orca's concentrated flow signs more than once, so your wallet may prompt a few times. When it confirms, save the **Whirlpool Address** and the **Position Mint** from the result dialog, then open it on the explorer. There is no recovery screen.
{% endstep %}
{% endstepper %}

[**Open Create Orca Whirlpool LP in the app →**](https://j.tools/en/tools/orca-whirlpool)

{% hint style="info" %}
**About wallet warnings.** Some tools sign more than one thing in a single step, for example creating a token and its metadata together. Phantom can show a caution banner for these multi-step transactions. The banner is expected here and does not mean something is wrong. Read what you are signing, then approve.
{% endhint %}

## The options, explained

| Field          | What it does                                                                                                                                                 |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Token A mint   | The first token of the pair. Entered through the shared mint picker.                                                                                         |
| Token B mint   | The second token of the pair. Cannot match token A.                                                                                                          |
| Tick spacing   | How finely the pool slices the price axis: 1 (most concentrated), 8, 64 (recommended), or 128. Smaller packs liquidity tighter and goes out of range sooner. |
| Initial price  | The opening price of the pool, in token B per token A. Must be greater than zero.                                                                            |
| Lower price    | The bottom of your range. Has to be below the initial price.                                                                                                 |
| Upper price    | The top of your range. Has to be above the initial price.                                                                                                    |
| Token A amount | How much token A you deposit into the position.                                                                                                              |
| Token B amount | How much token B you deposit into the position.                                                                                                              |
| Position NFT   | Orca mints your position as an NFT (the Position Mint). It lives in your wallet and represents your claim on the deposited liquidity and fees.               |

{% hint style="info" %}
**Fee tier.** Orca Whirlpools default to a 0.01% swap-fee tier, the lowest one. Concentrated liquidity is what gives the position its capital efficiency, not the headline fee number.
{% endhint %}

## If something goes wrong

* **Required fields missing.** The tool needs both mints, a positive initial price, a positive lower and upper price, and both deposit amounts above zero. It will not sign with any of these empty.
* **Price range is invalid.** Lower has to be below the initial price and upper above it. If lower is at or above the initial price, or upper is at or below it, the range is rejected before signing.
* **Same token on both sides.** Token A and token B have to be different mints. The picker excludes the side you already chose.
* **Not enough SOL.** A new Whirlpool plus a position needs account rent on top of the platform and network fees. Top up and retry.
* **Phantom shows a caution banner.** Concentrated Whirlpools sign the pool and then the position, so expect more than one prompt. The banner is normal for multi-step flows.

For the full list and what each code means, see the [Error codes reference](/reference/error-codes.md).

## FAQ

<details>

<summary>What does "in range" and "out of range" mean?</summary>

Your position only earns swap fees while the market price sits between your lower and upper bounds. That is "in range." When the price moves past either bound, the position goes "out of range": it stops earning and ends up entirely on one side of the pair until the price comes back or you reset the range.

</details>

<details>

<summary>What is the position NFT?</summary>

Orca represents each concentrated position as an NFT, shown as the Position Mint in the result dialog. It sits in your own wallet and is your proof of the deposited liquidity and the fees it accrues. Keep it; it is how you manage or close the position later.

</details>

<details>

<summary>Which tick spacing should I pick?</summary>

64 is the recommended balanced default. Pick 1 or 8 for a very tight band around a stable price to squeeze out more fees per dollar, knowing it will leave range sooner. Pick 128 for a wider, lower-maintenance range that earns less densely but holds range through bigger moves.

</details>

<details>

<summary>How is the initial price quoted?</summary>

In token B per one token A. So if you set 1.0, the pool opens with one token A equal to one token B. Your lower and upper prices are in the same unit, which is why lower must sit below it and upper above it.

</details>

<details>

<summary>I lost the Whirlpool Address after creation. Can I get it back?</summary>

The result dialog is where you save the Whirlpool Address and Position Mint, and there is no recovery screen, so copy them when they appear. If you missed it, you can look the position up later in [My Pools](/tools/liquidity/my-pools.md).

</details>

<details>

<summary>Why does Phantom prompt my wallet more than once?</summary>

A concentrated Whirlpool signs the pool first and then the position. That is more than one transaction, so your wallet asks a few times and Phantom may show its multi-step caution banner. It is expected and safe: you sign in your own wallet each time.

</details>

## Related tools

{% content-ref url="/pages/1jxa4guKH1qGBgc5E3XQ" %}
[Raydium CLMM](/tools/liquidity/raydium-clmm.md)
{% endcontent-ref %}

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

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

{% content-ref url="/pages/EySFBE8ku57pLjq1HfJQ" %}
[My Pools](/tools/liquidity/my-pools.md)
{% endcontent-ref %}

{% hint style="success" %}
**J Tools is non-custodial.** We never hold your private keys and never ask for them. Every transaction is built in your browser and signed by your own wallet. If any page ever asks you to paste a private key, stop, close it, and let us know.
{% 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/orca-whirlpool.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.
