Skip to main content
Fetch asset details, prices, OHLCV chart data, and orderbook snapshots.
The examples on this page use Hyperliquid (provider: 'hyperliquid'). Replace the provider value with any supported DEX from getProviders().

getAssets

Returns all tradeable assets for a specified DEX with funding rates, open interest, and volume.
import { getAssets } from '@lifi/perps-sdk';

const { assets } = await getAssets(client, { provider: 'hyperliquid' });

for (const asset of assets) {
  console.log(asset.displaySymbol, asset.markPrice, `${asset.maxLeverage}x`);
}
// BTC 95000.50 50x
// ETH 3200.25 50x

Parameters

ParameterTypeRequiredDescription
clientPerpsSDKClientYesSDK client
params.providerstringYesProvider identifier
optionsSDKRequestOptionsNoRequest options

Returns

AssetsResponse{ assets: Asset[] }: Each Asset:
FieldTypeDescription
assetIdstringProvider’s canonical identity (e.g., "BTC", "xyz:PURR", "@142")
marketstringMarket category (e.g., "hyperliquid", "xyz", "spot")
displaySymbolstringUI-friendly base symbol (e.g., "BTC", "PURR")
displayQuotestring | nullQuote asset (e.g., "USDC")
displayNamestring?Full asset name (e.g., "Bitcoin")
logoURIstringURL to asset logo
szDecimalsnumberSize decimal places
maxLeveragenumberMaximum allowed leverage
onlyIsolatedbooleanWhether only isolated margin is supported
isMarginCollateralboolean?Whether this asset can be used as margin collateral
fundingFundingInfoCurrent funding rate and next funding time
openIntereststring?Total open interest in USD
volume24hstring?24-hour trading volume in USD
prevDayPricestring?Previous day’s price
markPricestringCurrent mark price
API Reference: GET /assets

getAsset

Returns details for a single asset.
import { getAsset } from '@lifi/perps-sdk';

const btc = await getAsset(client, { provider: 'hyperliquid', symbol: 'BTC' });
console.log(btc.markPrice, btc.funding.rate);
// 95000.50 0.0001

Parameters

ParameterTypeRequiredDescription
clientPerpsSDKClientYesSDK client
params.providerstringYesProvider identifier
params.symbolstringYesAsset identifier (e.g., BTC)
optionsSDKRequestOptionsNoRequest options

Returns

Asset — Single asset object (same shape as above). API Reference: GET /assets/

getPrices

Returns current mid prices for all assets. Lightweight endpoint for frequent polling.
import { getPrices } from '@lifi/perps-sdk';

const { prices } = await getPrices(client, { provider: 'hyperliquid' });
for (const p of prices) {
  console.log(p.assetId, p.price);
}
// BTC 95000.50
// ETH 3200.25

Parameters

ParameterTypeRequiredDescription
clientPerpsSDKClientYesSDK client
params.providerstringYesProvider identifier
params.symbolsstring[]NoFilter to specific asset IDs
optionsSDKRequestOptionsNoRequest options

Returns

PricesResponse{ prices: AssetPrice[] }: Each AssetPrice:
FieldTypeDescription
assetIdstringAsset identifier
pricestringCurrent mid price
API Reference: GET /prices

getOhlcv

Returns OHLCV candle data for charts.
import { getOhlcv } from '@lifi/perps-sdk';

const { candles } = await getOhlcv(client, {
  provider: 'hyperliquid',
  symbol: 'BTC',
  interval: '1h',
  limit: 100,
});

for (const candle of candles) {
  console.log(candle.t, candle.o, candle.h, candle.l, candle.c, candle.v);
}

Parameters

ParameterTypeRequiredDescription
clientPerpsSDKClientYesSDK client
params.providerstringYesProvider identifier
params.symbolstringYesAsset identifier
params.intervalstringYesCandle interval: 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 8h, 12h, 1d, 3d, 1w, 1M
params.startTimenumberNoStart timestamp in milliseconds
params.endTimenumberNoEnd timestamp in milliseconds
params.limitnumberNoMax candles to return (default 100, max 1000)
optionsSDKRequestOptionsNoRequest options

Returns

OhlcvResponse:
FieldTypeDescription
providerstringProvider identifier
assetIdstringAsset identifier
intervalstringCandle interval
candlesCandle[]Array of candle data
Each Candle:
FieldTypeDescription
tnumberTimestamp in milliseconds
ostringOpen price
hstringHigh price
lstringLow price
cstringClose price
vstringVolume
API Reference: GET /ohlcv/

getOrderbook

Returns current orderbook snapshot with bids and asks.
import { getOrderbook } from '@lifi/perps-sdk';

const book = await getOrderbook(client, {
  provider: 'hyperliquid',
  symbol: 'BTC',
  depth: 20,
});

console.log('Best bid:', book.bids[0].price, book.bids[0].size);
console.log('Best ask:', book.asks[0].price, book.asks[0].size);

Parameters

ParameterTypeRequiredDescription
clientPerpsSDKClientYesSDK client
params.providerstringYesProvider identifier
params.symbolstringYesAsset identifier
params.depthnumberNoNumber of price levels (default 20, max 100)
optionsSDKRequestOptionsNoRequest options

Returns

OrderbookResponse:
FieldTypeDescription
providerstringProvider identifier
assetIdstringAsset identifier
bidsOrderbookLevel[]Bid price levels (descending)
asksOrderbookLevel[]Ask price levels (ascending)
timestampnumberSnapshot timestamp in milliseconds
Each OrderbookLevel:
FieldTypeDescription
pricestringPrice level
sizestringSize at this price level
API Reference: GET /orderbook/