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

> ## Agent Instructions
> Spreader is a web service that tracks arbitrage spreads between crypto exchanges. This documentation covers only what a user of the service sees and does.
> Page paths starting with /en/ are English. Translations live under /ru/ and /uk/ with the same file names.
> Screenshots are illustrations. Every screenshot is accompanied by text that states the same facts, so you do not need to see the image.

# Exchange keys

> Add, verify and delete exchange API keys in Settings › Markets API. Keys need trading permissions and no withdrawal, are stored encrypted on the server and never shown again.

Open **Settings › Markets API** (`/settings/keys`). The left column lists exchanges with the key status, the right side is the form of the selected exchange at `/settings/keys/<code>`.

![Settings › Markets API: the exchange list and the key of one exchange.](https://mintcdn.com/develops-6bdfff15/Di84s-PRn3sH6ZwP/images/trading/keys-en-dark.png?fit=max\&auto=format\&n=Di84s-PRn3sH6ZwP\&q=85\&s=c7bf255e5a5ca9ed534b07179a742c4f)

Settings › Markets API: the exchange list and the key of one exchange.

## Adding a key

1. Pick the exchange on the left. **Create keys on ‹name› ↗** opens the exchange's API page.
2. Read the note under the form: it names the permissions to enable and the account mode the exchange requires. Never enable withdrawals.
3. Fill the fields and click **Save key**. Fields depend on the exchange: **API key** and **API secret**, plus a **Passphrase** for Bitget, OKX and KuCoin, a second pair **Futures API key** and **Futures API secret** for Kraken, **Account address** and **API wallet private key** for Hyperliquid and AsterDEX, **Account index**, **API private key** and **API key index** for Lighter and Robinhood Lighter.
4. The key is checked at once. The **Verification** block shows **Verified** with **Permissions** (**Spot trading**, **Futures trading**, `allowed (test order accepted)`), the IP state (`restricted to a whitelist` or `no whitelist`) and **Expires** when the exchange sets an expiry.

### Binance

Binance accepts only self-generated Ed25519 keys.

1. Click **Generate key pair**. The private key stays on the server and is never shown.
2. **Show public key**, then **Copy**.
3. On Binance: **API Management → Create API → Self-generated** and paste the public key. Enable Spot & Margin Trading and Futures, no withdrawals.
4. Paste the API key Binance shows you into the form and **Save key**.

**Generate a new pair** discards the current pair, the Binance API key created for it stops working.

## Statuses

| Status | Meaning |
| - | - |
| **No key** | Nothing saved. |
| **Verified** | The key works, trading is allowed. |
| **Not verified** | Saved but not checked yet. Click **Verify**. |
| **Check failed** | The exchange rejected the key or a permission is missing. `read-only key — trading is not allowed` is one of the reasons. |
| **waiting for API key** | A Binance pair is generated, the API key is not entered yet. |
| **expired** | The exchange expired the key, create a new one and replace it. |

## Expiry

Without an IP whitelist some exchanges expire a key after a fixed number of days (90 for Bybit, Gate, MEXC and HTX, 14 for OKX). The page shows **Expires ‹date›** and warns **The key expires in N days** 7 days before.

## Editing and deleting

**Edit** replaces the key, **Delete** removes it from the server after the dialog **Delete ‹name› key?**. You can add it again any time. Deleting a key does not close positions on the exchange.


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