HyperliquidHyperliquid REST APIAccount management

Transfer USDC

Transfer USDC between accounts or to external addresses.

Rate Limit: 1 weight

Authentication: Required

POST
/v1/exchange/transfer

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: usdTransfer
hyperliquidChain*stringrequired

Target chain identifier

Example: Mainnet
signatureChainId*stringrequired

Chain ID for signature

Example: 0xa4b1
destination*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": {}
}