Skip to content
Join the waitlistWaitlist

TypeScript SDK

Put Guard in front of the @nktkas/hyperliquid TypeScript SDK with the transport's apiUrl. The exact options.

Hyperliquid has no official TypeScript SDK. Its API docs list two community SDKs, nktkas/hyperliquid and nomeida/hyperliquid. This guide covers the first (npm: @nktkas/hyperliquid). A guide for the second follows once it is tested.

HttpTransport takes apiUrl: “Custom API URL for info and exchange requests”.

const transport = new HttpTransport();
const transport = new HttpTransport({ apiUrl: "http://127.0.0.1:8547" });
const wallet = privateKeyToAccount(API_WALLET_KEY);
const wallet = privateKeyToAccount(GUARD_CLIENT_KEY);
import { ExchangeClient, HttpTransport, InfoClient } from "@nktkas/hyperliquid";
import { privateKeyToAccount } from "viem/accounts";
const transport = new HttpTransport({ apiUrl: "http://127.0.0.1:8547" });
const wallet = privateKeyToAccount("0x..."); // the client key Guard printed
const info = new InfoClient({ transport });
const exchange = new ExchangeClient({ transport, wallet });
OptionValueDefault without Guard
apiUrlGuard’s URLhttps://api.hyperliquid.xyz (mainnet), https://api.hyperliquid-testnet.xyz (testnet)
isTestnetmatch Guard’s network if you like; see belowfalse
timeoutleave at the default, or raise it a little10_000 ms
walleta viem account from the Guard client key

Network in the signature. The SDK signs for testnet when isTestnet is true, otherwise for mainnet. Guard is planned to accept either and to sign the real order for its own network (why it is safe).

WebSocket. The SDK’s WebSocket transport is separate. Use it against Hyperliquid directly for market data, or wait for Guard’s WebSocket pass-through.

This page as plain Markdown, for people and LLMs: /docs/integrations/typescript-sdk.md