Skip to main content
This page is the complete reference for the parameters accepted by the OstiumClient factory methods. Every factory returns a Promise<OstiumClient> and is async, so always await it.

Shared options (all write modes)

These optional fields are accepted by createSelfAndSelf, createSelfAndGasless, createDelegatedAndSelf, and createDelegatedAndGasless. These three are only needed for streamAccountUpdates(). Set them at client creation or per stream call, where the per-call value wins. When rpcHttpUrl is not set, the sweep and block reads go to the first of these that exists: the Alchemy URL (when alchemyApiKey is set), then rpcUrl, then the public Arbitrum RPC. Prefer rpcWsUrl: the stream makes only standard JSON-RPC calls, so any Arbitrum node works, and no vendor key needs to reach a browser bundle. With neither rpcWsUrl nor alchemyApiKey, the stream throws INVALID_CONFIG. Factories do not pre-fetch the pair list during construction. Pair metadata is loaded lazily by read methods and streams when they need it. Submit-capable gasless factories still derive the Safe address with one eth_call unless you pass a known safeAddress.

Submit-capable vs build-only

Every write mode can be created two ways:
  • Submit-capable — pass a private key; the SDK signs and submits.
  • Build-only — pass addresses only; use get*Tx() to return unsigned transaction data for your own wallet or Safe flow. No key ever touches the SDK.
The fields below differ between the two variants of each mode.

createSelfAndSelf

The trader EOA owns funds, signs, and pays gas. See Self + Self. Submit-capable Build-only

createSelfAndGasless

The trader EOA owns funds and signs; a Safe derived from the key submits gaslessly. See Self + Gasless. Submit-capable Build-only

createDelegatedAndSelf

A delegate EOA signs and pays gas on behalf of a separate trader. See Delegated + Self. Submit-capable Build-only

createDelegatedAndGasless

A Safe derived from the delegate key submits sponsored user operations on behalf of the trader. See Delegated + Gasless. Submit-capable Build-only

createReadOnly

No signer, no submitter, no private key. All read methods work; write methods throw INVALID_CONFIG. See Read-only. Read-only clients do not accept slippageBps or builder — those only apply to write modes that submit or build trades.

Notes

  • All factories are async — await them.
  • Client creation does not fetch pair metadata from the subgraph. Reads and streams populate that cache lazily.
  • Mode is inferred from the fields you pass; you don’t set mode directly.
  • Builder fee defaults (builder at client creation) can be overridden per openTrade() call via builder.address / builder.feeBps.
  • On testnet: true, omitted pimlicoUrl, subgraphUrl, and builderApiUrl resolve to their Sepolia defaults — you can still override any of them.