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.
Authentication
All endpoints require the following headers unless otherwise noted:Bearer token (JWT) for end-user authentication. Format:
Bearer YOUR_JWT_TOKENYour Magic secret key for application-level authentication.
Estimate Transfer Cost
Estimate the cost of a transfer route before executing it.cURL
Request Parameters
Where to transfer from. Values:
self, extended, hyperliquid, paradex, nado, polymarketWhere to transfer to. Values:
self, extended, hyperliquid, paradex, nado, polymarketThe amount to transfer as a decimal string (e.g.,
"100").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.The token to transfer. Values:
ETH, USDC, USDC.E, POL, SOLDestination 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).Destination token for transfers to
self. Required with destination_chain for self-to-self transfers. Values: ETH, USDC, USDC.E, POL, SOLWhether to use gas-sponsored execution when supported (EVM only; Solana is never gas-sponsored in this stack).
Response Fields
Whether the estimate was computed successfully.
Echo of the request
source (self or a venue id).Echo of the request
destination.Echo of the request
amount.List of planned transfer steps with individual cost breakdowns.
Total estimated cost across all steps in ETH.
Total estimated cost across all steps in USDC.
Whether the estimate used gas-sponsored execution.
Optional human-readable note from the estimator (e.g. errors or caveats).
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
Whether the task was created successfully.
The UUID of the created transfer task. Use this to poll for status.
Human-readable status message.
List Tasks
Get the authenticated user’s transfer tasks, ordered by most recent.cURL
Query Parameters
Maximum number of tasks to return.
Response Fields
The UOA-internal user UUID.
List of task objects.
Get Task
Get a specific transfer task by ID.cURL
Path Parameters
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