Authentication
All endpoints require the following headers unless otherwise noted:string
required
Bearer token (JWT) for end-user authentication. Format:
Bearer YOUR_JWT_TOKENstring
required
Your Magic secret key for application-level authentication.
Estimate Transfer Cost
Estimate the cost of a transfer route before executing it.cURL
Request Parameters
string
required
Where to transfer from. Values:
self, extended, hyperliquid, paradex, nado, polymarketstring
required
Where to transfer to. Values:
self, extended, hyperliquid, paradex, nado, polymarketstring
required
The amount to transfer as a decimal string (e.g.,
"100").string
default:"ARB"
The chain context for the transfer (API values match the
Chain enum). If source or destination is self, this must be one of ETH, ARB, POL, INK, or SOL (UOA self-wallet policy). Pure venue→venue routes may use other chain contexts where the planner supports them.string
default:"USDC"
The token to transfer. Values:
ETH, USDC, USDC.E, POL, SOLstring
Destination chain for transfers to
self. Required with destination_token for self-to-self transfers. Must be one of ETH, ARB, POL, INK, or SOL when used (same self-wallet policy as chain).string
Destination token for transfers to
self. Required with destination_chain for self-to-self transfers. Values: ETH, USDC, USDC.E, POL, SOLboolean
default:"false"
Whether to use gas-sponsored execution when supported (EVM only; Solana is never gas-sponsored in this stack).
Response Fields
boolean
Whether the estimate was computed successfully.
string
Echo of the request
source (self or a venue id).string
Echo of the request
destination.string
Echo of the request
amount.array
List of planned transfer steps with individual cost breakdowns.
string
Total estimated cost across all steps in ETH.
string
Total estimated cost across all steps in USDC.
boolean
Whether the estimate used gas-sponsored execution.
string | null
Optional human-readable note from the estimator (e.g. errors or caveats).
object | null
When present, a route summary (
route_id, reason, hops, steps, gas_policy, chain estimates, optional bridge_estimation_error, effective_minimum_deposit, etc.). Omitted or null when the planner does not attach one.Create Transfer
Create and execute a transfer task. The transfer is executed asynchronously. Use the returnedtask_id to monitor progress.
cURL
X-Task-ID header for convenience.
Request Parameters
The JSON body matches Estimate Transfer Cost (source, destination, amount, optional chain, token, destination_chain, destination_token, gas_sponsored).
Response Fields
boolean
Whether the task was created successfully.
string
The UUID of the created transfer task. Use this to poll for status.
string
Human-readable status message.
List Tasks
Get the authenticated user’s transfer tasks, ordered by most recent.cURL
Query Parameters
integer
default:"5"
Maximum number of tasks to return.
Response Fields
string
The UOA-internal user UUID.
array
List of task objects.
Get Task
Get a specific transfer task by ID.cURL
Path Parameters
string
required
The UUID of the task to retrieve.
Response Fields
The response fields are the same as those in the List Tasks task object. For a task still inpending status, the server may enqueue background execution when you fetch it (internal retry using stored credentials).
Resume Task
Resume a failed or cancelled transfer task. Returns the same payload shape as Create Transfer (success, task_id, message). Not allowed for pending, in_progress, or completed tasks.
cURL