Skip to main content
Before you can place orders or manage collateral on UpsideMAX , you must register your wallet address using the registerAccount action. A successful registration returns a unique accountId — a decimal integer that identifies your account across every subsequent API call. You only need to register once per wallet address.
In gated environments — including Devnet — registration requires a valid alpha test invitation code. Pass inviteCode at the envelope top level — alongside action, signature, and nonce — not inside the action object. The alpha test invitation code is not included in the signed payload.

Request

Action Fields

string
required
Must be the fixed string "registerAccount".
string
required
The wallet address you are registering. Must be 0x-prefixed and contain exactly 40 lowercase hexadecimal characters (EIP-55 checksummed addresses are also accepted).

Envelope-Level Fields

string
A 6-character alphanumeric alpha test invitation code. Required in gated environments; silently ignored in open environments. Do not include this field inside action — it must sit at the top level of the request body alongside action, signature, and nonce. It is not part of the signature.

Response

string
Your new account’s unique identifier, encoded as a decimal string representing an int64. Store this value — you will need it for collateral operations, order placement, and any action that references your account.
Even though accountId is returned as a string, it is a 64-bit integer. Use a big-integer or string type in your client to avoid precision loss in JavaScript environments.
Test funds are airdropped automatically. On Devnet, a successful registration triggers an automatic airdrop of 10,000 USDC of test collateral to your new account. It is credited asynchronously — poll rather than assuming a delay. USDC is the only asset airdropped. These are Devnet-only tokens with no real value — no deposit or manual step is needed. Poll userAccount until the balance appears, then lock collateral and start trading.

Error Reference

If you attempt to register the same wallet address twice, the server returns ACCOUNT_ALREADY_EXISTS. To retrieve an existing account’s accountId, query the Info API instead of re-registering.

Next Steps

1

Save your accountId

Store the returned accountId securely in your application config or database. All collateral and position operations reference it.
2

Enroll in a market deployer

You are automatically enrolled in the default market deployer on registration. To trade contracts in additional environments, call enrollUserToMarketDeployer.
3

Lock collateral

Deposit collateral into your chosen market deployer with lockCollateral before placing any orders.
4

Place your first order

Once collateral is in place, use the order action to open a perpetual position.