From 580fed9b0d1fe4d74ccd367b822779575f5bfb86 Mon Sep 17 00:00:00 2001
From: Ake <10195782+akegaviar@users.noreply.github.com>
Date: Wed, 24 Jun 2026 16:37:42 +0800
Subject: [PATCH] docs(hyperliquid): sync methods table + tooling to current
API and SDKs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
hyperliquid-methods.mdx (availability table):
- add the 25 methods documented this session — 5 Chainstack-served
(gossipPriorityAuctionStatus, subAccounts2, approvedBuilders,
perpConciseAnnotations, settledOutcome) and 20 public-only (7 info +
13 exchange), each verified against both endpoints.
- remove alignedQuoteTokenInfo (removed upstream by Hyperliquid; errors
everywhere) and batchClearinghouseStates (returns null for everyone)
from the supported-methods table. Their deprecated reference pages remain.
hyperliquid-tooling.mdx + hyperliquid-debugging-signature-errors.mdx:
- replace the nktkas PrivateKeySigner (removed from @nktkas/hyperliquid in
Feb 2026) with the current viem privateKeyToAccount pattern.
- reframe the "no viem dependency" example as an ethers account (Wallet).
- drop the stale "PrivateKeySigner" feature-table mention; use placeholder
keys instead of the well-known anvil key.
---
...hyperliquid-debugging-signature-errors.mdx | 22 +++++++--------
docs/hyperliquid-methods.mdx | 27 +++++++++++++++++--
docs/hyperliquid-tooling.mdx | 6 ++---
3 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/docs/hyperliquid-debugging-signature-errors.mdx b/docs/hyperliquid-debugging-signature-errors.mdx
index 3794447b..82cb907e 100644
--- a/docs/hyperliquid-debugging-signature-errors.mdx
+++ b/docs/hyperliquid-debugging-signature-errors.mdx
@@ -154,13 +154,13 @@ Hyperliquid L1 actions require signing with **chainId 1337**, but your wallet is
```typescript
import { ExchangeClient, HttpTransport } from "@nktkas/hyperliquid";
- import { PrivateKeySigner } from "@nktkas/hyperliquid/signing";
+ import { privateKeyToAccount } from "viem/accounts";
// Agent wallet signs with chainId 1337 automatically
- const agentSigner = new PrivateKeySigner({ privateKey: AGENT_PRIVATE_KEY });
+ const agentAccount = privateKeyToAccount(AGENT_PRIVATE_KEY);
const client = new ExchangeClient({
transport: new HttpTransport(),
- wallet: agentSigner
+ wallet: agentAccount
});
// User's browser wallet only signs approveAgent (chainId 0x66eee)
@@ -220,7 +220,7 @@ For production applications, use this two-wallet pattern:
```typescript
import { ExchangeClient, HttpTransport } from "@nktkas/hyperliquid";
-import { PrivateKeySigner } from "@nktkas/hyperliquid/signing";
+import { privateKeyToAccount } from "viem/accounts";
// First: user approves agent via browser wallet (one-time)
const agentAddress = await approveAgentWithBrowserWallet();
@@ -228,7 +228,7 @@ const agentAddress = await approveAgentWithBrowserWallet();
// Then: agent handles all trading
const agentClient = new ExchangeClient({
transport: new HttpTransport(),
- wallet: new PrivateKeySigner({ privateKey: agentPrivateKey })
+ wallet: privateKeyToAccount(agentPrivateKey)
});
// No chainId conflicts because browser wallet never signs L1 actions
@@ -240,7 +240,7 @@ Hyperliquid has two community TypeScript SDKs:
| SDK | Maintainer | Features |
|-----|------------|----------|
-| [@nktkas/hyperliquid](https://github.com/nktkas/hyperliquid) | nktkas | Full API coverage, PrivateKeySigner, viem/ethers support |
+| [@nktkas/hyperliquid](https://github.com/nktkas/hyperliquid) | nktkas | Full API coverage, viem/ethers wallet support |
| [nomeida/hyperliquid](https://github.com/nomeida/hyperliquid) | nomeida | Simpler API, good for quick integrations |
### @nktkas/hyperliquid examples
@@ -256,7 +256,7 @@ npm install @nktkas/hyperliquid viem
import { ExchangeClient, HttpTransport } from "@nktkas/hyperliquid";
import { privateKeyToAccount } from "viem/accounts";
-const account = privateKeyToAccount("0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80");
+const account = privateKeyToAccount("0x..."); // your private key
const client = new ExchangeClient({
transport: new HttpTransport(),
wallet: account
@@ -275,14 +275,14 @@ const result = await client.order({
});
```
-```typescript With PrivateKeySigner (no viem dependency)
+```typescript With an ethers account
import { ExchangeClient, HttpTransport } from "@nktkas/hyperliquid";
-import { PrivateKeySigner } from "@nktkas/hyperliquid/signing";
+import { Wallet } from "ethers";
-const signer = new PrivateKeySigner({ privateKey: "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" });
+const wallet = new Wallet("0x..."); // your private key
const client = new ExchangeClient({
transport: new HttpTransport(),
- wallet: signer
+ wallet
});
// Same API as with viem
diff --git a/docs/hyperliquid-methods.mdx b/docs/hyperliquid-methods.mdx
index 453d28e0..e17c9226 100644
--- a/docs/hyperliquid-methods.mdx
+++ b/docs/hyperliquid-methods.mdx
@@ -56,13 +56,16 @@ HyperEVM methods listed as `/evm` are also reachable on `/nanoreth`. See [Hyperl
| perpDexStatus | /info | HyperCore | |
| spotPairDeployAuctionStatus | /info | HyperCore | |
| marginTable | /info | HyperCore | |
-| alignedQuoteTokenInfo | /info | HyperCore | |
+| gossipPriorityAuctionStatus | /info | HyperCore | |
+| subAccounts2 | /info | HyperCore | |
+| approvedBuilders | /info | HyperCore | |
+| perpConciseAnnotations | /info | HyperCore | |
+| settledOutcome | /info | HyperCore | |
| allMids | /info | HyperCore | Hyperliquid public RPC |
| userFills | /info | HyperCore | Hyperliquid public RPC |
| userFillsByTime | /info | HyperCore | Hyperliquid public RPC |
| orderStatus | /info | HyperCore | Hyperliquid public RPC |
| l2Book | /info | HyperCore | Hyperliquid public RPC |
-| batchClearinghouseStates | /info | HyperCore | Hyperliquid public RPC |
| candleSnapshot | /info | HyperCore | Hyperliquid public RPC |
| historicalOrders | /info | HyperCore | Hyperliquid public RPC |
| userTwapSliceFills | /info | HyperCore | Hyperliquid public RPC |
@@ -81,6 +84,13 @@ HyperEVM methods listed as `/evm` are also reachable on `/nanoreth`. See [Hyperl
| spotMetaAndAssetCtxs | /info | HyperCore | Hyperliquid public RPC |
| outcomeMeta | /info | HyperCore | Hyperliquid public RPC |
| tokenDetails | /info | HyperCore | Hyperliquid public RPC |
+| isVip | /info | HyperCore | Hyperliquid public RPC |
+| legalCheck | /info | HyperCore | Hyperliquid public RPC |
+| preTransferCheck | /info | HyperCore | Hyperliquid public RPC |
+| twapHistory | /info | HyperCore | Hyperliquid public RPC |
+| userBorrowLendInterest | /info | HyperCore | Hyperliquid public RPC |
+| userTwapSliceFillsByTime | /info | HyperCore | Hyperliquid public RPC |
+| validatorSummaries | /info | HyperCore | Hyperliquid public RPC |
| order | /exchange | HyperCore | Hyperliquid public RPC |
| cancel | /exchange | HyperCore | Hyperliquid public RPC |
| cancelByCloid | /exchange | HyperCore | Hyperliquid public RPC |
@@ -121,6 +131,19 @@ HyperEVM methods listed as `/evm` are also reachable on `/nanoreth`. See [Hyperl
| validatorL1Stream | /exchange | HyperCore | Hyperliquid public RPC |
| noop | /exchange | HyperCore | Hyperliquid public RPC |
| reserveRequestWeight | /exchange | HyperCore | Hyperliquid public RPC |
+| userOutcome | /exchange | HyperCore | Hyperliquid public RPC |
+| borrowLend | /exchange | HyperCore | Hyperliquid public RPC |
+| createVault | /exchange | HyperCore | Hyperliquid public RPC |
+| vaultModify | /exchange | HyperCore | Hyperliquid public RPC |
+| vaultDistribute | /exchange | HyperCore | Hyperliquid public RPC |
+| subAccountModify | /exchange | HyperCore | Hyperliquid public RPC |
+| setDisplayName | /exchange | HyperCore | Hyperliquid public RPC |
+| registerReferrer | /exchange | HyperCore | Hyperliquid public RPC |
+| finalizeEvmContract | /exchange | HyperCore | Hyperliquid public RPC |
+| gossipPriorityBid | /exchange | HyperCore | Hyperliquid public RPC |
+| linkStakingUser | /exchange | HyperCore | Hyperliquid public RPC |
+| stakingLinkDisableTradingUser | /exchange | HyperCore | Hyperliquid public RPC |
+| userPortfolioMargin | /exchange | HyperCore | Hyperliquid public RPC |
| net_version | /evm | HyperEVM | |
| web3_clientVersion | /evm | HyperEVM | |
| eth_blockNumber | /evm | HyperEVM | |
diff --git a/docs/hyperliquid-tooling.mdx b/docs/hyperliquid-tooling.mdx
index bf75dc78..80c3ffea 100644
--- a/docs/hyperliquid-tooling.mdx
+++ b/docs/hyperliquid-tooling.mdx
@@ -44,7 +44,7 @@ Use the SDK:
```typescript TypeScript
import { InfoClient, ExchangeClient, HttpTransport } from "@nktkas/hyperliquid";
-import { PrivateKeySigner } from "@nktkas/hyperliquid/signing";
+import { privateKeyToAccount } from "viem/accounts";
// Query market data (no authentication required)
const info = new InfoClient({ transport: new HttpTransport() });
@@ -52,10 +52,10 @@ const meta = await info.meta();
console.log(meta);
// Trading operations (requires authentication)
-const signer = new PrivateKeySigner({ privateKey: "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" });
+const wallet = privateKeyToAccount("0x..."); // viem or ethers account
const exchange = new ExchangeClient({
transport: new HttpTransport(),
- wallet: signer
+ wallet
});
const result = await exchange.order({