> ## Documentation Index
> Fetch the complete documentation index at: https://dev-docs.multihopper.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hop Library

> The vetted wallets a custom route can use as hops

Lists the wallets a [custom route](https://dev-docs.multihopper.com/guides/custom-routes.md) can draw its hops from. They are exchanges,
DEX accounts, KOL wallets, smart contracts and active traders. This is the same library Easy Routes
use. Use a wallet by its address (`{ "wallet": "<address>" }`), or let the route draw one at random
from a bundle when the transfer is created (`{ "bundle": "cex" }`).

A hop wallet never signs anything. It receives the route's wrapped token for its wait, then the
program moves it on.

> [!NOTE]
>
> The library is not served on devnet: this endpoint and `bundle` hops return `MH_019` there. Build
> devnet routes from your own wallets.

## Query parameters

**category** `string`

Only wallets of this category: `cex`, `dex`, `famous`, `kol`, `contracts` or `other`.

**bundle** `string`

Only the wallets a `{ "bundle": ... }` hop draws from: `cex`, `dex`, `exchanges` (cex + dex), `kol`,
`contracts` or `mix` (every category).

**canEndRoute** `string`

`true`: only wallets that can be the **last** hop of a route paying several destinations (regular,
on-curve wallets). `false`: only those that cannot (program-derived addresses and programs, which
work as middle hops).

## Response

**wallets** `object[]`

Each wallet's `address`, `label`, `category` and `canEndRoute`.

**bundles** `object[]`

Each bundle's `id`, the `categories` it draws from, and how many wallets are `available` in it.

**categories** `string[]`

Every category.

```bash cURL theme={null}
curl "https://multihopper.com/api/v1/hop-library?bundle=cex&canEndRoute=true" \
  -H "x-api-key: mh_live_abc123..."
```

```json 200 theme={null}
{
  "wallets": [
    {
      "address": "64CuV85HHCydAwxQMoXwZ9HXoyw5qE65NkiJxCtuFErF",
      "label": "OKX Hot Wallet 10",
      "category": "cex",
      "canEndRoute": true
    }
  ],
  "bundles": [
    { "id": "cex", "categories": ["cex"], "available": 74 },
    { "id": "dex", "categories": ["dex"], "available": 61 },
    { "id": "exchanges", "categories": ["cex", "dex"], "available": 135 },
    { "id": "kol", "categories": ["kol"], "available": 100 },
    { "id": "contracts", "categories": ["contracts"], "available": 98 },
    { "id": "mix", "categories": ["cex", "dex", "famous", "kol", "contracts", "other"], "available": 598 }
  ],
  "categories": ["cex", "dex", "famous", "kol", "contracts", "other"]
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.