Getting Started

1. Create an API or DataAPI instance

Use the SDK factory (exported as SDK from zo-sdk) to create LP-specific instances. You need a Sui client, network, API endpoint, and connection URL.

import { SDK, LPToken, Network } from 'zo-sdk'
import { SuiClient } from '@mysten/sui/client'

const provider = new SuiClient({ url: 'https://fullnode.mainnet.sui.io' })
const network = Network.MAINNET
const apiEndpoint = 'https://api.zo.xyz'
const connectionURL = 'wss://api.zo.xyz/ws'

// Create API instances (transactions + data)
const zlpAPI = SDK.createZLPAPI(network, provider, apiEndpoint, connectionURL)
const slpAPI = SDK.createSLPAPI(network, provider, apiEndpoint, connectionURL)
const usdzAPI = SDK.createUSDZAPI(network, provider, apiEndpoint, connectionURL)

// Or create by LP token enum
const api = SDK.createAPI(LPToken.ZLP, network, provider, apiEndpoint, connectionURL)

// Create DataAPI instances (read-only; no transaction methods)
const zlpDataAPI = SDK.createZLPDataAPI(network, provider, apiEndpoint, connectionURL)
const slpDataAPI = SDK.createSLPDataAPI(network, provider, apiEndpoint, connectionURL)
const usdzDataAPI = SDK.createUSDZDataAPI(network, provider, apiEndpoint, connectionURL)

// Or create DataAPI by LP token
const dataAPI = SDK.createDataAPI(LPToken.SLP, network, provider, apiEndpoint, connectionURL)

2. API vs DataAPI

Use case
Class
Use

Build transactions + read data

API (ZLPAPI, SLPAPI, etc.)

Deposit, withdraw, open/close positions, stake, and also call data methods (market info, vaults, positions, etc.).

Read-only

DataAPI (ZLPDataAPI, SLPDataAPI, etc.)

Only query chain/API state (market valuation, vault info, positions, orders, history). No transaction building.

API instances expose both transaction methods and data methods. Data methods (e.g. getMarketInfo, valuateMarket, getVaultInfo) are implemented by delegating to the internal dataAPI, so you can call them directly on the API or via api.dataAPI:

DataAPI instances are for read-only usage when you don't need to build transactions:

Last updated