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

# Introduction

> How to interact with the Derive Exchange.

The Derive Exchange is a fully-featured, low-latency exchange that settles trades and manages risk on-chain via Zero Knowledge proofs.

<Frame>
  <img className="block dark:hidden bg-white" src="https://mintcdn.com/derive-a0490cef/BhszcT-bQHpTuFnc/getting-started/interaction-methods-light.png?fit=max&auto=format&n=BhszcT-bQHpTuFnc&q=85&s=b62a9d49610d6ca3161e57ee0c4486be" alt="Diagram of the two ways users can interact with the exchange." width="1376" height="942" data-path="getting-started/interaction-methods-light.png" />

  <img className="hidden dark:block bg-black" src="https://mintcdn.com/derive-a0490cef/BhszcT-bQHpTuFnc/getting-started/interaction-methods.png?fit=max&auto=format&n=BhszcT-bQHpTuFnc&q=85&s=633dadc2bb41931b81fd75505b7cfd3c" alt="Diagram of the two ways users can interact with the exchange." width="1376" height="942" data-path="getting-started/interaction-methods.png" />
</Frame>

There are two ways users and builders can interact with the exchange:

* HTTP & WebSocket JSON-RPC API: send state-changing requests with self-custodial signed actions or non-sensitive market-data requests.
* L1 Transactions: deposit to the exchange via on-chain contract calls or interact with the exchange with a multi-sig. This method also allows users to withdraw funds using the "escape hatch".

## SDKs

<CardGroup cols={3}>
  <Card title="TypeScript" icon="square-js" href="https://github.com/derivexyz/derive-ts">
    <br />

    `@derivexyz/derive-ts`
  </Card>

  <Card title="Rust" icon="rust">
    Coming soon.
  </Card>

  <Card title="Python" icon="python">
    Coming soon.
  </Card>
</CardGroup>

## OpenAPI / AsyncAPI

Detailed API specifications can be downloaded by adding the below to the docs base url:

* OpenAPI: `DOCS_BASE_URL/openapi.json` (applies to both WS and HTTP)
* AsyncAPI for WS-only routes: `DOCS_BASE_URL/websocket.asyncapi.json`
* AsyncAPI for WS subscriptions: `DOCS_BASE_URL/subscriptions.asyncapi.json`

## Endpoints

| Environment           | UI                               | WebSocket                            | HTTP POST base                      |
| --------------------- | -------------------------------- | ------------------------------------ | ----------------------------------- |
| Mainnet (coming soon) | `https://app.derive.xyz`         | `wss://api.derive.xyz/v3/ws`         | `https://api.derive.xyz/v3`         |
| Testnet               | `https://testnet.app.derive.xyz` | `wss://testnet.api.derive.xyz/v3/ws` | `https://testnet.api.derive.xyz/v3` |

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/getting-started/quickstart">
    Connect, log in, and place your first order end-to-end.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication/session-login">
    Session login and per-action EIP-712 signing, step by step.
  </Card>

  <Card title="Subscriptions" icon="satellite-dish" href="/subscriptions">
    WebSocket channels for order books, tickers, trades, and account updates.
  </Card>

  <Card title="Action signing" icon="signature" href="/authentication/action-signing">
    Typehashes, modules, and per-deployment signing parameters.
  </Card>
</CardGroup>
