getProviders
Returns all available perpetual DEX platforms, including theirsetup and options descriptors, trading actions, and categories.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
client | PerpsSDKClient | Yes | SDK client from createPerpsClient() |
options | SDKRequestOptions | No | Request options (e.g., signal for cancellation) |
Returns
ProvidersResponse — { providers: Provider[] }:
Each Provider:
| Field | Type | Description |
|---|---|---|
key | string | Unique provider identifier (used in query params) |
name | string | Display name |
logoURI | string | URL to provider logo image |
signingMethod | SigningMethod | Default signing method for the provider — see SigningMethod below. |
active | boolean | When false, the provider is announced but not yet selectable in clients. Filter on this before rendering provider pickers. |
setup | ProviderAction[] | Mandatory account-setup descriptors with their allowed signers and UI metadata. The user MUST satisfy every entry before trading. An empty array means the provider has no setup gates. |
options | ProviderAction[] | Optional post-setup descriptors the user MAY tune (e.g. accountMode, accountType). Never gate trading. An empty array is valid. |
actions | ProviderAction[] | Trading/operational actions with their allowed signers |
categories | ProviderCategory[] | Trading categories within the provider (e.g., perps, spot, xyz) |
wsUrl | string? | WebSocket endpoint for streaming (see Streaming) |
minDepositUsd | number? | Minimum deposit amount in USD that the provider’s deposit path will accept. Absent means no minimum is advertised. |
minOrderValueUsd | number? | Minimum order notional value in USD. Absent means no minimum is advertised. |
minReduceOrderValueUsd | number? | Minimum order notional value in USD for reduce-only orders, when the provider applies a lower floor than minOrderValueUsd. Absent means reduce-only orders use the same floor. |
ProviderCategory:
| Field | Type | Description |
|---|---|---|
id | string | Category identifier (referenced as categoryId in MarketRef) |
logoURI | string? | URL to the category logo |
quoteAsset | Asset | null | Quote asset for this category (null for the spot category, which has no single fixed quote) |
tradeNotice | TradeNotice? | Optional advisory ({ level: 'info' | 'warn', message }) shown against the category’s markets |
ProviderAction:
| Field | Type | Description |
|---|---|---|
type | ActionType | Action type string |
signers | PerpsSigner[] | Allowed signers — see PerpsSigner below |
signingMethod | SigningMethod | How the SDK must sign this action — see SigningMethod below. Most actions match the provider’s dominant pattern (Hyperliquid: eip712, Lighter: wasmBlob), but on-chain bridge actions like deposit are evmTx regardless of provider. |
ProviderAction shape backs setup, options, and actions — which array it sits in carries the categorisation. Entries in setup and options additionally populate the presentation/ordering fields the widget renders in its setup and options modals:
| Field | Type | Description |
|---|---|---|
title | string? | Short user-facing label rendered in the modal |
description | string? | One-paragraph explanation rendered under the title |
params | Param[]? | Input descriptors the widget collects before dispatching. Each Param describes one input; its values array enumerates the legal value strings the action accepts (the source of truth for things like the mode values on accountMode). |
sequence | number? | Ascending order in which the user satisfies setup steps (lower runs first) |
PerpsSigner
Identifies which key signs a given action. Surfaced per-action inProviderAction.signers.
| Value | Description |
|---|---|
USER | The user’s L1 wallet. Used for one-time setup actions and protocol-required user-signed actions only — Hyperliquid: APPROVE_AGENT, APPROVE_BUILDER_FEE, ACCOUNT_MODE (when the user-side signature is required), WITHDRAWAL, SEND_ASSET. Lighter: DEPOSIT and the REGISTER_API_KEY EIP-191 countersignature. |
AGENT | An SDK-managed agent keypair approved by the user. Signs every Hyperliquid trading action so trades execute without wallet popups. |
API_KEY | A provider-native API key managed by the SDK (Lighter — all trading actions) |
SigningMethod
Identifies the structural shape of theActionStep returned by createAction. The SDK uses this to dispatch to the correct signer. The wire-level values are camelCase strings; the SDK exports them as the SigningMethod enum (keys: EIP712, WASM_BLOB, EVM_TX).
| Wire value | SigningMethod key | ActionStep variant | Description |
|---|---|---|---|
eip712 | EIP712 | Eip712ActionStep | EIP-712 typed data + ECDSA signature (Hyperliquid and other EVM dexes) |
wasmBlob | WASM_BLOB | WasmBlobActionStep | Opaque blob signed by a provider-supplied WASM signer (Lighter and zk-rollup dexes) |
evmTx | EVM_TX | EvmTxActionStep | Plain EVM transaction (used for on-chain bridge deposits) |
Use
provider.setup to dynamically build the setup UI and provider.options for post-setup tuning controls. See Hyperliquid / Setup for the full flow.