Docs
Launch App

Pangolin Overview

Introduction to Pangolin
Audits
Tokens & Governance
Official Links & Communities
Become a Partner
Support
Roadmap
Privacy Policy & Legal Notices

Guides

Swapping Tokens
Providing Liquidity
Managing Liquidity Positions
Withdrawing Liquidity
Earning Rewards
Understanding SAR

Developers

Contracts & Integration Reference
APIs
Bug Bounty
Token Listing
Create A Multisig
Honeycomb↗

PangoPerps

API fundamentals
Public Info API
User API
Registration
Key Management
Account/User Info
Account Notifications
Account Config
Delegate Signer
Sub-account
Trading API
PangoPerpsUser API

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.

text
{"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).

text
{"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).

text
{"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).

PreviousUser APINext Key Management

On this page

  • Registration
  • Check if Account Exists
  • Check if Wallet Is Registered
  • Check if Address Is Registered
  • Get Registration Nonce
  • Register Account

Try it on Pangolin

Everything in these docs is live in the app.

SwapLiquidityStakePerps

Need help?

DiscordTelegramX