# Choosing a pool

> The two kinds of LithosDex pool, what the verified list means, and what the client checks and asks before you trade on any other pool.

Source: https://lithosprotocol.org/docs/lithosdex/pools

**Level:** Standard

*For anyone trading on a LithosDex pool other than ERG:LIT. Read the [LithosDex overview](https://lithosprotocol.org/docs/lithosdex/overview) first.*

Anyone can create a LithosDex pool, for any token, at any price. This page covers the two kinds of
pool, how the client marks the pools it trusts, and what it checks or asks before you trade on the rest.
Creating a pool of your own is in [Creating a pool](https://lithosprotocol.org/docs/lithosdex/creating-a-pool).

## Telling the two kinds apart

Every pool holds two assets and prices one against the other, as the ERG:LIT pool does. The following
kinds exist:

| Kind | Holds | ERG in the pool |
|---|---|---|
| ERG/token | ERG and one token | Part of the reserves, so it trades |
| Token/token | Two tokens | About 6.3 ERG that pays the pool box's storage rent. It never trades |

Each pool's creator chooses its fees, so two pools of the same pair can charge differently. The
**Pools** tab and each pool's **About this pool** card show the full split: the share the pool keeps,
and what providers earn on each side.

## Finding a pool

Open **LithosDex**, then the **Pools** tab. The list shows every pool the client knows: ERG:LIT first,
then verified pools, then the newest. Filter it by list or by kind, or search by ticker, name or id.
Select a pool to open it.

Every other tab acts on one pool at a time, chosen in the selector in the page header. ERG:LIT is the
default. The page address carries the pool's NFT id as `/dex?pool=POOL_NFT_ID`, so a link to a pool
opens that pool.

## Reading a pool's badge

The client checks every pool before it lists it, and each pool carries one of the following badges:

| Badge | What it means | What the client does |
|---|---|---|
| **Verified** | On the verified list that ships with the client | Trades with no extra step, and keeps the pool's graphs and history |
| **Unverified** | Its genesis passed the client's checks, but nobody vetted its creator or its tokens | Trades only with your consent on each trade. Keeps no graphs or history |
| **Not checked** | The client has not read its genesis yet | Checks the genesis before placing any trade there |
| **Can be drained** | Its genesis breaks a fact the pool contracts rely on | Refuses swaps and deposits. Redeeming, flushing and claiming still work |

A pool's **genesis** is the transaction that created it. The client reads it once per pool and checks
the following facts:

- The pool NFT and the vault NFT were each minted once.
- Every share of the pool was in the pool or in a provision the genesis created.
- Nothing was pending or accrued when the pool was created.
- The fees are within the bounds the contracts allow.

A pool that fails any of these is marked **Can be drained**, and the pool's page lists each failure. A
pool the client cannot trace back to its genesis is marked the same way.

A pool's page may also list **warnings**. A warning names a risk that nobody can exploit, such as a pool
box holding too little ERG to survive a storage rent collection.

## What the verified list covers

The verified list is a file inside the client, so it changes only with a client release. It names pools
and tokens that were checked by hand. ERG:LIT and LIT are always on it. Verified pools are the only ones
with **History** graphs, collected from the block each pool joined the list.

**A verified pool can hold an unverified token.** The pool's genesis was checked, but the token's name
and ticker were chosen by whoever minted it, and another token can carry the same name. Before you
trade, compare the token id on the pool's **About this pool** card with the id you expect.

## Trading on an unverified pool

The client asks for your consent on every swap and deposit on an unverified pool. Tick
**I understand this pool is not on the verified list** before you send the trade. When a token's name
comes from its minter, the same line names that token. Through the API, set
`"acknowledgeUnverified": true` on the request.

**Redeeming never needs consent.** A provision on any pool can always be redeemed, including on a pool
marked **Can be drained**, so your liquidity can always leave.

## Hiding a pool from the list

`lithosdex.pools.hidden` leaves pools out of the **Pools** tab and out of `GET /dex/pools`:

| Setting | Default | What it does |
|---|---|---|
| `lithosdex.pools.hidden` | `["eb123f49f083f5b68d10d7037a45eb11d3371210ab10bc66757e29432d661ee6"]`, a test LIT/RSN pool | Pool NFT ids left out of the pool list |

Setting the list replaces the default, so copy the default id into your own list to keep that pool
hidden:

```hocon title="lithos.conf"
lithosdex.pools.hidden = [
  "eb123f49f083f5b68d10d7037a45eb11d3371210ab10bc66757e29432d661ee6",
  "POOL_NFT_ID"
]
```

A hidden pool still opens by link, and your client still fills its orders. To stop filling them, also
add the id to `batching.lithosdex.deniedPools`, described in
[Batching and orders](https://lithosprotocol.org/docs/configuration/batching#lithosdex-only).

## Next steps

- [Trading with orders](https://lithosprotocol.org/docs/lithosdex/orders): placing, following and cancelling an order on any pool.
- [Providing liquidity](https://lithosprotocol.org/docs/lithosdex/liquidity): depositing into a pool and claiming its fees.
- [Creating a pool](https://lithosprotocol.org/docs/lithosdex/creating-a-pool): what a new pool costs and how to create one.
