Deposit USDC to global markets perps account
Prepare a USDC deposit from Arbitrum via EIP-2612 Permit.
Returns EIP-712 typed data for the user to sign off-chain (no gas needed). Compass does NOT broadcast the bridge tx — the integrator’s own sponsor wallet calls batchedDepositWithPermit on the HL Bridge2 contract on Arbitrum after the user signs. See api_docs/v2/Products/Global-Markets.mdx “Deposit USDC” section for the bridge-broadcast code.
Body
Request to deposit USDC from Arbitrum into the user's global markets perps account.
Response
Successful Response
EIP-2612 permit data the user signs to authorize a USDC bridge deposit.
After signing, submit the signature to /v2/global_markets_perps/deposit/sponsor_prepare to get a ready-to-broadcast Arbitrum tx that calls Bridge2.batchedDepositWithPermit. The integrator's sponsor wallet broadcasts that tx — Compass does not broadcast.
EIP-712 typed data for the USDC permit — user signs this off-chain.
{
"domain": {
"chainId": 8453,
"name": "USD Coin",
"verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"version": "2"
},
"message": {
"deadline": "1735689600",
"nonce": "0",
"owner": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"spender": "0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1",
"value": "100000000"
},
"primaryType": "Permit",
"types": {
"EIP712Domain": [
{ "name": "name", "type": "string" },
{ "name": "version", "type": "string" },
{ "name": "chainId", "type": "uint256" },
{
"name": "verifyingContract",
"type": "address"
}
],
"Permit": [
{ "name": "owner", "type": "address" },
{ "name": "spender", "type": "address" },
{ "name": "value", "type": "uint256" },
{ "name": "nonce", "type": "uint256" },
{ "name": "deadline", "type": "uint256" }
]
}
}USDC amount in raw 6-decimal units. Pass this and the signature to /deposit/sponsor_prepare.
Address that will be credited on Hyperliquid (equals the deposit owner EOA — HL keys accounts by EVM address).