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

# Overview

> Trade perpetuals across multiple venues through one TypeScript interface, with venue-specific signing handled by the SDK.

LI.FI Perps is a TypeScript SDK for trading perpetual futures across several venues through one interface. You call the same methods to place an order on any supported venue, and the SDK handles that venue's signing scheme, credential lifecycle, and market data shape.

The problem it solves is not routing. Each perpetuals venue has its own authorization model, its own order semantics, and its own streaming protocol, so supporting a second venue normally means writing a second integration. Here the venue is an argument.

## What you get

<CardGroup cols={2}>
  <Card title="One interface, several venues" icon="layer-group">
    Place, modify, and cancel orders with the same calls regardless of which venue executes them.
  </Card>

  <Card title="No per-order wallet popup" icon="pen-nib">
    The user signs once during setup. Trades after that are authorized by a credential the SDK manages.
  </Card>

  <Card title="Streaming built in" icon="signal-stream">
    Prices, orderbook, fills, and order status over WebSocket, with connections shared per channel.
  </Card>

  <Card title="Typed end to end" icon="code">
    Wire types come from a zero-dependency package shared by the core SDK and every provider plugin.
  </Card>
</CardGroup>

## Supported venues

| Venue       | Shape                                                                         | How trades are authorized                                        |
| ----------- | ----------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| Hyperliquid | Order-book perpetuals on its own L1                                           | An SDK-managed agent wallet, approved once by the user           |
| Lighter     | Mainnet, plus a deployment on Robinhood Chain, behind one normalized contract | A Lighter-native key registered on-chain                         |
| Ondo        | Session-backed venue                                                          | Requests signed client-side with the user's registered venue key |

Each venue keeps its own setup state and its own trading signer, so a user set up on one is not set up on another. Venue-specific behaviour is covered in [Venues](/perps/venues).

## How the packages fit together

The core SDK is one package and each venue is another. You install the core plus only the venues you target.

```bash theme={"system"}
npm install @lifi/perps-sdk @lifi/perps-sdk-provider-hyperliquid
```

| Package                                | Install it for |
| -------------------------------------- | -------------- |
| `@lifi/perps-sdk`                      | Every project  |
| `@lifi/perps-sdk-provider-hyperliquid` | Hyperliquid    |
| `@lifi/perps-sdk-provider-lighter`     | Lighter        |
| `@lifi/perps-sdk-provider-ondo`        | Ondo           |

Underneath both sits a zero-dependency wire-type package. Provider plugins depend on it directly and take the core SDK as a peer dependency, so a project ends up with exactly one copy of the SDK no matter how many venues it registers.

The SDK exposes two layers. Service functions are the low-level surface, taking a client and returning venue data. `PerpsClient` sits above them and owns the full action pipeline, which is what most integrations use.

## Access

<Warning>
  Perps is not served from the public API host. The SDK targets a gated endpoint, and requests without granted access are refused. Getting an API key from the Partner Portal is not sufficient on its own; access to the Perps API is granted separately.
</Warning>

<Card title="Talk to LI.FI sales" icon="handshake" href="https://li.fi/contact-us/">
  Get in touch to have your integrator granted access to the Perps API, so the environment your integration targets is one you can actually reach.
</Card>

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/perps/quickstart" horizontal>
    Install, create a client, read markets, place an order.
  </Card>

  <Card title="Concepts" icon="diagram-project" href="/perps/concepts" horizontal>
    The create, authorize, execute pattern and where credentials live.
  </Card>

  <Card title="Venues" icon="building-columns" href="/perps/venues" horizontal>
    Signing models, setup, deposits, and withdrawals per venue.
  </Card>

  <Card title="Full SDK reference" icon="book" href="https://public-perps-docs.mintlify.app/" horizontal>
    Method-level reference, API reference, and error codes.
  </Card>
</CardGroup>
