Skip to main content
POST
/
v2
/
global_markets_perps
/
deposit
Python (SDK)
from compass_api_sdk import CompassAPI


with CompassAPI(
    api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:

    res = compass_api.global_markets_perps.global_markets_perps_deposit(owner="0x06A9aF046187895AcFc7258450B15397CAc67400", amount="100.0")

    # Handle response
    print(res)
{
  "amount_raw": 1000000000,
  "destination": "0x1F31bAad9e2adC1Dc8B0FF8B0c2cF7D0e7d1A8c9",
  "permit": {
    "domain": {
      "chainId": 42161,
      "name": "USD Coin",
      "verifyingContract": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "version": "2"
    },
    "message": {
      "deadline": "1747097383",
      "nonce": "5",
      "owner": "0x1F31bAad9e2adC1Dc8B0FF8B0c2cF7D0e7d1A8c9",
      "spender": "0x2Df1c51E09aECF9cacB7bc98cB1742757f163dF7",
      "value": "1000000000"
    },
    "primaryType": "Permit",
    "types": {
      "Permit": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "spender",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        },
        {
          "name": "nonce",
          "type": "uint256"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ]
    }
  }
}

Authorizations

x-api-key
string
header
required

Your Compass API Key. Get your key here.

Body

application/json

Request to deposit USDC from Arbitrum into the user's global markets perps account.

owner
string
default:0x06A9aF046187895AcFc7258450B15397CAc67400
required

The user's EOA address on Arbitrum

Example:

"0x06A9aF046187895AcFc7258450B15397CAc67400"

amount
string
default:100.0
required

USDC amount to deposit (human-readable, e.g. '1000.0')

Example:

"100.0"

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.

permit
PermitTypedDataResponse · object
required

EIP-712 typed data for the USDC permit — user signs this off-chain.

Example:
{
  "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" }
    ]
  }
}
amount_raw
integer
required

USDC amount in raw 6-decimal units. Pass this and the signature to /deposit/sponsor_prepare.

destination
string
required

Address that will be credited on Hyperliquid (equals the deposit owner EOA — HL keys accounts by EVM address).