This guide assumes that you already have an active VOOI API token. See API Tokens for how to obtain one.
Do you need to register?
Start by checking whether your VOOI account already has Hyperliquid credentials viaGET /user-exchange:
{ exchange, valid } objects, one per connected exchange.
- An entry whose
exchangeishyperliquidis present (with itsvalidflag set totrue) — your account is already connected. No action needed. - No entry whose
exchangeishyperliquidis present — check your deposit status on Hyperliquid viaGET /user-exchange/{exchange}/register/status:
isRegistered: true— your wallet has funds on Hyperliquid and is eligible to register. Follow the steps below, or, if you already created an API wallet on Hyperliquid yourself, paste those credentials viaPOST /user-exchange/hyperliquid(see Use your own keys).isRegistered: false— your wallet has no deposit on Hyperliquid yet. Deposit first (step 1 below) and the flag will flip once Hyperliquid reflects the balance.
isRegistered reports “is this wallet known to Hyperliquid” — in practice, “has it ever deposited”. It does not mean the wallet has an active VOOI-managed agent. A wallet that deposited directly through the Hyperliquid UI (not through GET /deposit) also flips the flag to true — the check reads Hyperliquid’s own state, not VOOI’s.Prerequisites
- An EVM wallet
- An active VOOI API token
- USDC deposited to Hyperliquid from your wallet address
1. Deposit USDC to Hyperliquid
Your wallet address must have a balance on Hyperliquid before you can register a VOOI-managed agent wallet. You can deposit through the Hyperliquid UI or useGET /deposit to receive ready-to-sign calldata.
Using the deposit endpoint
approve followed by a transfer), submit them one at a time and wait for each to confirm before sending the next.
Hyperliquid’s Arbitrum bridge requires a minimum deposit of 5 USDC. Hyperliquid usually processes deposits within 1 to 3 minutes.
2. Prepare registration
CallPOST /user-exchange/{exchange}/register/prepare with your wallet address to generate the registration data.
The optional referralCode field binds a referral code to the new account at registration. Omit it and the VOOI code is applied; it cannot be changed afterwards. See Points & rewards.
The endpoint creates a new agent wallet for the user and returns the following:
- a short-lived
registrationToken - an EIP-712 typed data object to sign
signData has domain, message, primaryType, and types — pass it through to an EIP-712 signer (see step 3). The domain chainId is 42161 (Arbitrum One); the message.nonce is a millisecond timestamp.
The registrationToken expires in 10 minutes. If it expires before you complete registration, call this endpoint again to get a new token.
Possible errors:
3. Sign the ApproveAgent message
Sign the returnedsignData object using EIP-712 typed data signing.
message.nonce is a uint64. Some EIP-712 libraries require a large-integer type for uint64 fields — the viem snippet below converts numbers to BigInt for that reason.
The message.agentName you sign is VOOI_ULTRA — the name shown for the authorized agent in your Hyperliquid account’s API-agents list.
4. Execute registration
Submit your wallet address, theregistrationToken, and the signature (wrapped in a single-element signatures array) to POST /user-exchange/{exchange}/register/execute.
VOOI submits the signed ApproveAgent action to Hyperliquid on your behalf — you do not broadcast it yourself. The only on-chain transaction you sign is the USDC deposit in step 1.
Your wallet is now connected to Hyperliquid through VOOI. You can use the VOOI API to place orders, manage positions, and query account data on Hyperliquid.
Next steps
Start trading on Hyperliquid
Place your first order
Connect your wallet to Lighter
Register on Lighter
Register on Extended
Add another venue to your VOOI account
Earn Kinetiq kPoints
Enable kPoints with your connected Hyperliquid wallet