New here? The REST track is a gentler start. Requests target testnet (
https://api.testnet.arcus.xyz); new accounts start empty — fund yours with the Testnet Deposit button (~$1,000), or an on-chain deposit for more. See Authentication for signing.Step 1: Install
Only published libraries — no Arcus package required.Step 2: Register an API key
Your API key is an Ed25519 keypair generated locally; the server stores only the public half. Registration is a one-time REST call authenticated by an EIP-191 signature from the Ethereum wallet that owns the key (createApiKey is REST-only).
Step 3: Place an order
Open the socket, then send signed requests correlated to their responses byid. Trading methods sign the same typed canonical payload as REST: the compact JSON object is the signing message, and its ct field must equal the envelope timestamp (Unix nanoseconds). Price and size are signed as integer ticks/quantums — convert them with the market’s tickSize / stepSize. See Authentication for the field reference.
202 acknowledgement; the order’s lifecycle (fills, cancels) plays out on the orders and userFills channels. placeOrder, cancelOrder, and modifyOrder use the typed payload above; cancelAllOrders and setLeverage use the legacy timestamp + action + canonicalJSON(payload) message. A batch signs each order individually with its own typed payload under one shared timestamp, each embedding its own signature — see the REST batch example for the exact headers.
In the request body,
quantity and price stay decimal strings. The integer p/q in the signed payload are derived from them via tickSize / stepSize; the two must agree.