> For the complete documentation index, see [llms.txt](https://uliquid-1.gitbook.io/uliquid-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uliquid-1.gitbook.io/uliquid-docs/connect-an-exchange.md).

# Connect an Exchange

Connect a centralised-exchange account with the minimum permissions needed.

uLiquid Desk connects to centralised exchanges through exchange APIs. An exchange API connection is separate from a Web3 wallet connection.

## Add an Account

1. Open **Settings** → **Exchange Accounts**.
2. Choose an option offered in the exchange selector and give the account a clear label.
3. Enter the requested API key and secret. Enter a passphrase only when the selected exchange asks for one.
4. Complete re-authentication when prompted.
5. Confirm the connection status, balances, and read-only data before using a trading or automation flow.

## Offered Exchanges and Capabilities

The selector is the source of truth for the exchanges available to your workspace. It is returned by the current server configuration and can vary by plan, environment, and rollout. The repository includes adapters for Bitget, Hyperliquid, MEXC, Binance, and BingX, as well as a Paper account for eligible simulated flows; an adapter in the codebase is not a promise that every live capability is enabled for every user.

Before you trade, confirm the selected account supports the needed market and action. Spot/perpetual availability, order types, leverage controls, grid use, and vault use are capability-specific.

## Minimum API Permissions

* Enable only the read and trading permissions needed for your intended workflow.
* Do **not** enable withdrawal permission for an API key used by uLiquid Desk.
* Use an IP allowlist at the exchange when it is available and works with your setup.
* Keep live, test, and personal accounts clearly labelled.
* Revoke and rotate a key at the exchange if you suspect exposure.

## Common Problems

| Problem             | Check first                                                                       |
| ------------------- | --------------------------------------------------------------------------------- |
| Invalid credentials | API key, secret, passphrase, and the correct exchange account type.               |
| Missing permission  | Read/trading permission, re-authentication, workspace role, and plan access.      |
| No account data     | Connection status, exchange status, IP restriction, and last synchronisation.     |
| Rate limit          | Wait for the exchange response window; do not repeatedly submit the same request. |

{% hint style="info" %}
TODO: Add a verified current screenshot of **Settings → Exchange Accounts** when a sanitised capture of the current UI is available.
{% endhint %}

For the complete operating guidance, see [Exchange Accounts and Venue Support](https://github.com/eds-labs/uLiquid-Desk/tree/main/docs/user-guide/exchange-accounts-and-venue-support.md).


---

# 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://uliquid-1.gitbook.io/uliquid-docs/connect-an-exchange.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.
