Skip to main content

getProviders

Returns all available perpetual DEX platforms, including their prepareAccountActions, trading actions, and markets.
import { createPerpsClient, getProviders } from '@lifi/perps-sdk';

const client = createPerpsClient({ integrator: 'my-app' });
const { providers } = await getProviders(client);

for (const provider of providers) {
  console.log(provider.key, provider.name);
  console.log('  markets:', provider.markets.map((m) => m.id));
  console.log('  actions:', provider.actions.map((a) => a.type));
}
// hyperliquid Hyperliquid
//   markets: ['hyperliquid', 'xyz', 'flx', 'spot', ...]
//   actions: ['placeOrder', 'cancelOrder', 'modifyOrder', ...]

Parameters

ParameterTypeRequiredDescription
clientPerpsSDKClientYesSDK client from createPerpsClient()
optionsSDKRequestOptionsNoRequest options (e.g., signal for cancellation)

Returns

ProvidersResponse{ providers: Provider[] }: Each Provider:
FieldTypeDescription
keystringUnique provider identifier (used in query params)
namestringDisplay name
logoURIstringURL to provider logo image
prepareAccountActionsActionDescriptor[]Account setup actions (prerequisites) with their allowed signers
actionsActionDescriptor[]Trading/operational actions with their allowed signers
marketsProviderMarketInfo[]Sub-markets within the provider (e.g., perps, spot, xyz)
wsUrlstring?WebSocket endpoint for streaming (see Streaming)
Each ProviderMarketInfo:
FieldTypeDescription
idstringMarket identifier (used as market in AssetIdentity)
quoteAssetstring | nullQuote asset for this market (e.g., "USDC")
Each ActionDescriptor:
FieldTypeDescription
typeActionTypeAction type string
signersPerpsSigner[]Allowed signers: "USER" or "AGENT"
Use provider.prepareAccountActions to dynamically build the prerequisites UI. See Hyperliquid / Prerequisites for the full flow.
API Reference: GET /providers