HyperliquidHyperliquid REST APIAccount management
Transfer USDC
Transfer USDC between accounts or to external addresses.
Rate Limit: 1 weight
Authentication: Required
Authorization
HyperliquidSignature Authorization<token>
Hyperliquid uses a custom signing scheme for authentication.
Required for: All /exchange endpoints
Format: Signature generated using private key + nonce + action data
Headers:
- Authorization: Signature
- Content-Type: application/json
Important Notes:
- Use official SDKs to avoid signing errors
- Nonce must be current timestamp in milliseconds
- Address fields must be lowercase
- Order of fields in msgpack serialization matters
Common Pitfalls:
- Not understanding the two signing schemes
- Trailing zeros on numbers
- Case sensitivity on addresses
- Incorrect field ordering
In: header
Request Body
application/json
action*objectrequired
type*enum<string>required
Available options:
usdTransferhyperliquidChain*stringrequired
Target chain identifier
Example:
MainnetsignatureChainId*stringrequired
Chain ID for signature
Example:
0xa4b1destination*stringrequired
Destination address
amount*stringrequired
Transfer amount in USDC
time*integerrequired
Transfer timestamp
nonce*integerrequired
signature*objectrequired
Response Body
application/json
application/json
application/json
curl -X POST "https://api.hypereth.io/v1/exchange/transfer" \ -H "Content-Type: application/json" \ -d '{ "action": { "type": "usdTransfer", "hyperliquidChain": "Mainnet", "signatureChainId": "0xa4b1", "destination": "string", "amount": "string", "time": 0 }, "nonce": 0, "signature": {} }'{
"status": "ok",
"response": {
"type": "usdTransfer",
"data": {
"hash": "string",
"amount": "string",
"destination": "string"
}
}
}{
"error": "Insufficient margin for order placement",
"code": 1001,
"details": {}
}{
"error": "Insufficient margin for order placement",
"code": 1001,
"details": {}
}