Skip to main content

Authentication

All endpoints require the following headers unless otherwise noted:
string
required
Bearer token (JWT) for end-user authentication. Format: Bearer YOUR_JWT_TOKEN
string
required
Your Magic secret key for application-level authentication.

Create or Fetch Account

Create a new account or return the existing one for the authenticated user. Wallet addresses are provisioned for supported EVM and Solana chains.
cURL
Response: New accounts include a default perp_dex_status entry for every supported venue (lowercase keys: extended, hyperliquid, paradex, nado, polymarket). Each value is a JSON object; at minimum venues expose initialized (boolean) and may add venue-specific fields (addresses, keys, trade_initialized, etc.) as onboarding progresses.

Response Fields

boolean
Whether the account was created or fetched successfully.
string
The user identifier from your application (JWT sub claim).
string
The UOA-internal user UUID.
object
Map of chain code to wallet address. Provisioning creates ETH (EVM) and SOL entries; the same EVM address is used for Arbitrum, Polygon, Ink, and Ethereum when resolving balances or transfers server-side.
object
Map of perp venue to stored status (keys match venue ids: extended, hyperliquid, paradex, nado, polymarket). Shape is venue-specific; see the default example above for fields present on create.

Get Account Info

Return the authenticated user’s stored account state.
cURL
Response: Same top-level fields as create, except there is no success field. perp_dex_status always includes all venue keys; initialized venues gain non-null fields (e.g. Hyperliquid account_address, trade_initialized when applicable).

Response Fields

string
The user identifier from your application.
string
The UOA-internal user UUID.
object
Map of chain code to wallet address (typically ETH and SOL as stored keys).
object
Map of venue id to JSON status for that venue (extended, hyperliquid, paradex, nado, polymarket). Exact keys per venue evolve with the product; treat as opaque except for documented init flows.

Demo: Get Wallet Balance

Get on-chain wallet balances for one chain. This endpoint is for demo usage only.
cURL
Do not use this endpoint as a production asset API. For production apps, use the EVM and Solana wallet addresses from public_address and fetch balances with your own RPC provider.
Response:

Query Parameters

string
required
The chain to fetch balances for. Values: ETH, ARB, POL, INK, SOL

Response Fields

string
The requested chain.
string | null
The wallet address used for the balance query (EVM chains use the stored ETH address; Solana uses the SOL address). May be null if no address exists for the requested chain.
object
Map of token codes to decimal string balances for the requested chain.
object
Map of chain code to wallet address.