Connect to Hyperliquid via Vezgo API
Accounts
Positions
Transactions
Support for Accounts, Positions and Transactions enabled.
- Spot token balances on HyperCore, valued in USD from Hyperliquid's spot mid prices.
- Staked HYPE support enabled: delegated, undelegated and pending-withdrawal HYPE is reported as a separate staked position.
- Connect the main wallet address (0x…) shown under your account in the Hyperliquid app.
Data mapping
A field-level guide to the Vezgo API data for Hyperliquid — what each attribute means and where to read it — so you can map it into your own system.
| Data | Where to read it | Source on Hyperliquid |
|---|---|---|
| Account & wallet | account.wallets[].address | The connected Hyperliquid wallet address (0x…, lowercased). One address is one account; wallet.address is the stable identity reused across syncs and reconnects. Connect the main wallet address shown under your account in the Hyperliquid app — API (agent) wallets hold no balances. |
| Balances / positions | account.balances[] | Spot token balances on HyperCore plus staked HYPE, from the live snapshot. Each balance has ticker, amount and fiat_value (USD), and carries ticker_address — the token's HyperEVM contract when it has one, otherwise its HyperCore token id. Staked HYPE uses asset_type "staked". |
| Transactions | GET /accounts/:id/transactions | Spot trades (both legs), transfers, staking moves, genesis distributions, lending and rewards — one Vezgo transaction per value movement. See "How to read a transaction" below. |
| Assets / securities | balance.ticker · balance.ticker_address | Tokens are reported by their HyperCore ticker (HYPE, USDC, PURR, UBTC…). Because those tickers are short and collide with unrelated coins elsewhere, the identity to match on is ticker_address: the HyperEVM ERC-20 contract for tokens deployed there, and the HyperCore token id (a 128-bit hex id) for tokens that have no EVM deployment. |
How to read a transaction
Each value movement touching the connected account's spot balance maps to a single Vezgo transaction with one part. Read the movement from parts[0] and any fee from fees[]:
- Spot trades — a fill produces two Vezgo transactions, one per leg: the token bought (parts[0].direction "received") and the token paid with ("sent"). Both share the on-chain hash, with a -1 / -2 suffix in misc.origin_id distinguishing the legs; misc.origin_type is the fill direction (Buy, Sell, Spot Dust Conversion). They are not merged into a single trade transaction, so transaction_type is "other" — pair them on the hash prefix and read the direction from the part.
- Trading fee — fees[] on the first leg only, in the token Hyperliquid actually charged (USDC on most pairs, but the base token on others, e.g. a PURR or USOL fee).
- Transfers — user-to-user spot transfers, transfers between the spot and perps balances, and cross-dex sends. transaction_type is deposit or withdrawal and misc.origin_type names the ledger event (spotTransfer, accountClassTransfer, send).
- Staking — moving HYPE into the staking balance appears as a withdrawal from spot (misc.origin_type "cStakingTransfer", description "Stake HYPE"), and a completed unstake as a deposit back into spot ("Unstake HYPE"). Delegating between validators moves nothing in spot and is not reported.
- Other spot credits — genesis token distributions (misc.origin_type "spotGenesis"), HyperCore lending supply/withdraw ("borrowLend") and rewards claims ("rewardsClaim").
// One Vezgo transaction = one spot movement
const id = tx.misc.origin_id; // on-chain hash (fills add a -1 / -2 leg suffix)
const kind = tx.misc.origin_type; // "Buy" | "Sell" | "spotTransfer" | "cStakingTransfer" | ...
const move = tx.parts?.[0]; // the movement: direction, ticker, amount
const fee = tx.fees?.[0]; // trading fee, in the token it was charged in
// A spot trade is two transactions sharing the hash prefix — join them to rebuild the trade:
const [hash, leg] = String(id).split(/-(?=[12]$)/);
// Hyperliquid has no tokenTransfers / nftTransfers / internalTransfers arrays.| Where to read it | Attributes | What it is |
|---|---|---|
tx.parts[0] | direction, ticker, amount, fiat_value, from_address, to_address | The value movement. from_address and to_address are set on transfers between wallets; trade legs have neither. direction is "received" for a bought token or an inbound transfer, "sent" otherwise. |
tx.fees[0] | ticker, amount, fiat_value | Trading fee, charged in USDC on most pairs but in the base token on others. Present on the first leg of a fill only, and on the sender's side of a transfer that charged one. |
misc.origin_type is the Hyperliquid event that produced the movement. Treat the set as open-ended — Hyperliquid adds ledger types without notice. Values in use:
- Buy
- Sell
- Spot Dust Conversion
- spotTransfer
- accountClassTransfer
- send
- cStakingTransfer
- spotGenesis
- borrowLend
- rewardsClaim
Supported
- Spot token balances on HyperCore
- Staked HYPE, reported as a separate staked position
- Spot trades, both legs, including dust conversions
- Transfers: wallet-to-wallet, spot ↔ perps, and cross-dex sends
- Staking and unstaking movements
- Genesis distributions, lending movements and rewards claims
- Full transaction history — no retention cap on the underlying feeds
- USD fiat valuation for balances and transactions
- Balance reconciliation (replaying transactions reproduces the spot balances)
Notes & limitations
- Spot trades are reported as two separate transactions (transaction_type "other"), not one trade transaction with two parts. Pair them on the misc.origin_id hash prefix.
- The staked HYPE balance covers delegated, undelegated and pending-withdrawal HYPE together, and grows with accrued staking rewards.
- decimals is populated only for tickers in Vezgo's known-decimals table (e.g. USDC); HyperCore-native tokens are null — read amount directly.
- fiat_value can be null for HyperCore-native tokens with no price source; the token's amount is still exact.
Try to connect to Hyperliquid in our Demo Sandbox
Open DemoLet's get you started
To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com