Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.magic.link/llms.txt

Use this file to discover all available pages before exploring further.

What is Unified Orchestration Accounts?

Unified Orchestration Accounts (UOA) is an orchestration layer built on top of Magic’s Server Wallets. It provides a single API to manage user accounts across multiple blockchains and perpetual DEX venues, and plan and execute multi-step fund transfers. UOA handles the complexity of routing funds between wallets and trading venues so you can focus on building your application.

Key Benefits

Multi-Chain Wallets

Automatically provision and manage wallets across Ethereum, Arbitrum, Polygon, Solana, and Ink from a single account.

Perp DEX Integration

Initialize and manage accounts on Extended, Hyperliquid, Paradex, Nado, and Polymarket with unified deposit, withdrawal, and balance APIs.

Transfer Orchestration

Plan and execute multi-step transfers between wallets and DEX venues with automatic route planning, cost estimation, and fallback strategies.

Supported Chains and Tokens

Chains

ChainCodeType
EthereumETHEVM
ArbitrumARBEVM
PolygonPOLEVM
InkINKEVM
SolanaSOLNon-EVM

Tokens

TokenCodeDescription
ETHETHNative Ether
USDCUSDCUSD Coin
USDC.eUSDC.EBridged USDC
POLPOLNative Polygon token
SOLSOLNative Solana token

Supported DEX Venues

VenueCodeChain
ExtendedextendedArbitrum
HyperliquidhyperliquidArbitrum
ParadexparadexArbitrum
NadonadoInk
PolymarketpolymarketPolygon

Architecture

UOA sits between your application and the blockchain, providing three layers of functionality:
  1. Account layer — Creates and manages user accounts with wallet addresses for supported EVM and Solana chains.
  2. DEX layer — Initializes and manages perp DEX venue accounts. Handles the venue-specific onboarding flows, credential management, and balance queries.
  3. Transfer layer — Plans and executes multi-step transfer routes. A single transfer request (e.g., move USDC from Hyperliquid to Polymarket) is broken down into steps like withdrawal, routing, and deposit, executed asynchronously with checkpoint tracking.

Authentication

All UOA endpoints require two authentication headers:
Authorization
string
required
Bearer token (JWT) issued by your application for end-user authentication. Format: Bearer YOUR_JWT_TOKEN
X-MAGIC-SECRET-KEY
string
required
Your Magic secret key for application-level authentication.
The authentication flow works as follows:
1

User authenticates with your app

Your application authenticates the user (e.g., via Magic Link, OAuth, or any identity provider) and issues a JWT.
2

Send authenticated requests

Include both the user’s JWT (Authorization: Bearer ...) and your Magic secret key (X-MAGIC-SECRET-KEY) on every request.
3

UOA resolves the user

UOA validates the JWT, resolves the user by the sub claim scoped to your application, and processes the request.

Transfer Execution Model

Transfers are modeled as asynchronous tasks. When you create a transfer, UOA:
  1. Plans the route — Determines the steps needed to move funds between wallets and venues
  2. Creates a task — Returns a task_id immediately so you can track progress
  3. Executes asynchronously — Runs each step in sequence, persisting progress at each checkpoint
  4. Tracks progress — Each task records step-level progress and failure details

Transfer Step Types

StepDescription
withdrawalWithdraw funds from a perp venue to the user’s wallet
depositDeposit funds into a perp venue

Task Statuses

StatusDescription
pendingTask created, awaiting execution
in_progressCurrently executing transfer steps
completedAll steps finished successfully
failedA step failed
cancelledTask was cancelled

Next Steps

Getting Started

Set up your first UOA integration with step-by-step instructions.

API Reference

Explore the complete API surface for accounts, transfers, wallets, and more.