For the complete documentation index, see llms.txt. This page is also available as Markdown.

Prepare a Spot<->Perps transfer

Prepare a Spot<->Perps transfer

post

Build an unsigned USDC transfer between a wallet's spot and perpetuals balances.

Same prepare → sign → execute flow as /api/v1/perp/order: sign the returned eip712 payload and submit it to /api/v1/perp/execute. This call moves nothing on its own.

Only the perpetuals balance can be used as margin. USDC that arrives on Hyperliquid by a direct send lands in the spot balance, where perp trading cannot see it — which is what this endpoint is for. to_perp: true moves spot → perps, false moves perps → spot. /api/v1/perp/account reports both balances, so check there when a wallet looks funded but cannot open a position.

This is a wallet-signed action, so its EIP-712 domain and types differ from an order's. Sign whatever the eip712 field contains rather than hard-coding one payload shape.

Authorizations
apikeystringRequired

API key for authentication

Body

USDC transfer to prepare between a wallet's spot and perpetuals balances.

wallet_addressstringRequired

Wallet address on Hyperliquid

Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
amountnumberRequired

USDC amount as a decimal number of USDC (not base units)

Example: 100.5
to_perpbooleanRequired

True moves spot → perpetuals (making the funds usable as margin), false moves perpetuals → spot

Example: true
Responses
200

Successful Response

application/json
post/api/v1/perp/transfer

Last updated

Was this helpful?