Registration
Registration
Registration endpoints check existing account and wallet status, retrieve a one-time nonce, and register a wallet under the PangoPerps broker identity. The lookup endpoints are public. Registering an account requires a wallet signature over the message object.
Check if Account Exists
GET /v1/public/account
Mainnet: GET https://api.orderly.org/v1/public/account\\
Testnet: GET https://testnet-api.orderly.org/v1/public/account\\
Rate limit: 10 requests per second per IP address.
Query parameter: account_id (string). Returns whether the supplied account is registered and its associated builder identity.
HTTP 200 response: success (boolean); required data.address (string) and data.broker_id (string); and timestamp (integer, server time in milliseconds). Use pangoperps for this broker's identity.
{"success":true,"data":{"address":"0xfcc17f2b240380d56f0615e8f654e4ae3cee8957","broker_id":"pangoperps"},"timestamp":1702989203989}Check if Wallet Is Registered
GET /v1/get_account
Mainnet: GET https://api.orderly.org/v1/get\\_account\\
Testnet: GET https://testnet-api.orderly.org/v1/get\\_account\\
Rate limit: 10 requests per second per IP address.
Required query parameters: address (string, wallet address) and broker_id (string, set to pangoperps). Optional chain_type (string): EVM or SOL.
HTTP 200 response: success (boolean); required data.user_id (integer) and data.account_id (string); and server timestamp (integer, milliseconds).
{"success":true,"data":{"user_id":24,"account_id":"0xb129e074a17dfba8d652ae1eca21c7d6bb6904f1aa693f4886d50db170933a46"},"timestamp":1702989203989}Check if Address Is Registered
GET /v1/get_broker
Mainnet: GET https://api.orderly.org/v1/get\\_broker\\
Testnet: GET https://testnet-api.orderly.org/v1/get\\_broker\\
Rate limit: 10 requests per second per IP address.
Required query parameter: address (string, wallet address). Optional chain_type (string): EVM or SOL.
HTTP 200 response: success (boolean); required data.broker_id (string array) containing broker identities associated with the address; and server timestamp (integer, milliseconds).
Get Registration Nonce
GET /v1/registration_nonce
Mainnet: GET https://api.orderly.org/v1/registration\\_nonce\\
Testnet: GET https://testnet-api.orderly.org/v1/registration\\_nonce\\
Rate limit: 10 requests per second per IP address.
No path or query parameters. The returned nonce is valid for two minutes and can be used once for one account registration.
HTTP 200 response: success (boolean); required data.registration_nonce (string) to include in the signed registration message; and server timestamp (integer, milliseconds).
{"success":true,"data":{"registration_nonce":"194528949540"},"timestamp":1702989203989}Register Account
POST /v1/register_account
Mainnet: POST https://api.orderly.org/v1/register\\_account\\
Testnet: POST https://testnet-api.orderly.org/v1/register\\_account\\
Rate limit: 10 requests per second per IP address.
Submit an application/json body. Required message object contains brokerId (string, use pangoperps), chainId (integer, supported registration chain), timestamp (string, UNIX milliseconds), and registrationNonce (string returned by Get Registration Nonce). Optional chainType (string): EVM or SOL. Include signature (string, wallet signature of the message object) and userAddress (string, address that signed the message).
HTTP 200 response: success (boolean); required data.account_id (string); and server timestamp (integer, milliseconds).