Skip to main content
POST
/
v2
/
global_markets_perps
/
withdraw
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_withdraw(owner="0x06A9aF046187895AcFc7258450B15397CAc67400", amount="100.0")

    # Handle response
    print(res)
{
  "action": {
    "grouping": "na",
    "orders": [
      {
        "a": 12,
        "b": true,
        "p": "213.50",
        "r": false,
        "s": "5.00",
        "t": {
          "limit": {
            "tif": "Gtc"
          }
        }
      }
    ],
    "type": "order"
  },
  "nonce": 1747010983250,
  "typed_data": {
    "domain": {
      "chainId": 1337,
      "name": "Exchange",
      "verifyingContract": "0x0000000000000000000000000000000000000000",
      "version": "1"
    },
    "message": {
      "connectionId": "0xc4e1f04d6b1bf2f2f7a6c0e8a5f3b1d2c9e0a4b7d1c3e5f7a9b1d3e5f7a9e9a2",
      "source": "a"
    },
    "primaryType": "Agent",
    "types": {
      "Agent": [
        {
          "name": "source",
          "type": "string"
        },
        {
          "name": "connectionId",
          "type": "bytes32"
        }
      ],
      "EIP712Domain": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "version",
          "type": "string"
        },
        {
          "name": "chainId",
          "type": "uint256"
        },
        {
          "name": "verifyingContract",
          "type": "address"
        }
      ]
    }
  }
}

Authorizations

x-api-key
string
header
required

Your Compass API Key. Get your key here.

Body

application/json

Request to withdraw USDC from HyperEVM global markets perps account to Arbitrum.

owner
string
default:0x06A9aF046187895AcFc7258450B15397CAc67400
required

The user's EOA address (owner of the global markets perps account)

Example:

"0x06A9aF046187895AcFc7258450B15397CAc67400"

amount
string
default:100.0
required

USDC amount to withdraw (human-readable, e.g. '500.0')

Example:

"100.0"

destination
string | null

Arbitrum destination address (defaults to owner if not specified)

Response

Successful Response

Returned by prepare endpoints — contains EIP-712 typed data for the user to sign.

typed_data
Typed Data · object
required

EIP-712 typed data for wallet signing (domain, types, primaryType, message)

action
Action · object
required

Raw Hyperliquid action (passed back to the execute endpoint)

nonce
integer
required

Timestamp-based nonce used during signing