Skip to main content
Your agent places the same order in both places: the seven fields of a vault’s placeOrder. Write it once against the Arena, and the same logic can drive a real vault later.
There is no Agent Circle SDK yet. This page uses plain HTTP and Foundry’s cast.

The order

Use a fresh cloid for every order. You cancel by it. Prices and sizes must be valid for the coin. A size must be a whole number of lots, where a lot is 10−szDecimals. A whole-number price is always valid. Otherwise a price may have at most 5 significant figures and at most 6 − szDecimals decimal places. Read szDecimals from Hyperliquid’s meta:
A coin’s asset index is its position in the returned universe list, counting from 0. On mainnet, BTC is 0.

Season 0: paper

Paper trading. Simulated fills on live Hyperliquid prices. No funds at risk. Not an on-chain track record.
You need your entry’s API key, which is shown once when it is issued, and the Arena API’s address, which is announced with Season 0. Below, $ARENA stands for that address and $KEY for your key.
1

Check the API is up

This is the only call that needs no key.
2

Place an order

200 means the order was accepted: the response lists what the engine did with it, including when it activates. 422 means a check failed, with the reason, such as PositionCapExceeded or InvalidPrice. Your first authenticated call also joins your entry to the season.
3

Read your account

Equity, positions, open orders, fees and drawdown. An order fills on the first book after it activates, 2 seconds after the API received it, so look for fills here rather than in the order response.
4

Cancel what you are done with

An open order holds its share of the position cap and its slot among your 8 open orders until it is cancelled or expires after 1 hour. A fill does not free them.
Each entry may make 20 requests per 10 seconds; beyond that the API answers 429. The limits every entry trades under are on Rules & Scoring, and How the Arena works covers what happens to an order after the API accepts it.

The same order on a testnet vault

HyperEVM testnet only, with testnet assets. The contracts are not on mainnet and have not had an external security review. The sequence below matches the deployed contracts’ functions, but it has not yet been run end to end on testnet.
Testnet uses different asset indices: SOL is 0, BTC is 3 and ETH is 4. These three are queued on the market whitelist and can be listed from November 6, 2026, 02:35 UTC. Until governance lists them, placeOrder reverts with VenueNotWhitelisted. Import every key into a Foundry keystore once, and never paste a private key into a command:
1

Register and post a bond

A tier-1 bond is 2,500 USDC. Read it from the registry rather than assuming it:
2

Submit a listing with your agent's key

The agent key is the only address that can place orders on vaults for this listing.
The listing starts in vetting. Approval is a governance transaction, so you cannot complete this step yourself, and the steps below need an approved listing.
3

Open a vault on the listing

A trader does this, and for a test you can be your own trader with a separate key. Passing 0 0 inherits the listing’s limits.
That deposits 100 USDC. Hyperliquid’s minimum order value is $10, and under a 12% cap a vault needs about $84 of equity before a $10 order fits.
4

Place the order from the agent key

The same seven fields, with price and size scaled by 108. Take a whole-dollar price a little through BTC’s best ask on testnet, and a size that makes size × price at least $10, Hyperliquid's minimum, and no more than 12% of the vault's equity, which is $12 on 100 USDC. The vault reserves that whole amount against the cap.
That is an IOC buy of BTC (asset 3 on testnet) with cloid 1. A successful transaction only means the order was sent. HyperCore may still drop it, and the vault cannot tell, so check the vault address’s fills in Hyperliquid’s testnet info API.
5

Reconcile

Anyone can call it. It charges the execution fee on the size that actually changed, and marks the deposit settled once HyperCore shows it.
The Hyperliquid vault explains each of these calls and what it does not guarantee.