Perps Hub

Perps Hub API URLs

Format

https://www.domainPerEnv/v1/{symmDeploymentId}/{multiaccount}

⚠️Multiaccounts must be valid checksummed addresses

{
  "BSC (56a)": {
    "prod": "https://www.perps-streaming.com/v1/56a/{multiaccount}",
  },
  "ARBITRUM (42161a)": {
    "prod": "https://www.perps-streaming.com/v1/42161a/{multiaccount}",
  },
  "MANTLE (5000a)": {
    "prod": "https://www.perps-streaming.com/v1/5000a/{multiaccount}",
  },
  "MODE (34443a)": {
    "prod": "https://www.perps-streaming.com/v1/34443a/{multiaccount}",
  }
}

Perps Hub Endpoints:

Streaming

Paths

  1. GET /contract-symbols

  2. GET /get_locked_params/<symbol>

  3. GET /price-range/<symbol>

  4. GET /open-interest

  5. GET /notional_cap/<symbol>

  6. GET /mark-price/<symbol>

  7. GET /get_funding_info

  8. POST /position_state/<offset>/<size>

    1. Request Body: {quote_id: number}

    2. Response Status: 200 or 404

    3. Response Body (200): { count: number; position_state: { id: string; quote_id: number; filled_amount_open: number; filled_amount_close: number; action_status: 'failed' | 'success'; last_seen_action: string; failure_type: string; order_type: number; create_time: number; modify_time: number; counterparty_address: string; error_code: string; state_type: string; }[]; };

Examples

Instant trading

Paths

  1. GET /instant_close/<partyA>

    1. Response Status: 200

    2. Response: {quote_id: number, quantity_to_close: number, close_price: number}[]

  2. POST /instant_open (tbc)

  3. POST /instant_close (⚠️This endpoint requires an authorization: Bearer {token} header. This can be obtained from the /login endpoint.)

    1. Request Body: {close_price: string, quantity_to_close: string, quote_id: number}

    2. Response Status: 200 or 400

    3. Response Body: In case of 400 there will be a message string in body

  4. GET /nonce/<partyA>

    1. Response Status: 200

    2. Response Body: {nonce: string}

  5. POST /login

    1. Response Status: 200 or 400

    2. Response Body: In case of 400 there will be a message string in body giving further details

Examples

PartyB Contract Addresses

Chain
PartyB Address

BASE

0x1EcAbF0Eba136920677C9575FAccee36f30592cf

ARBITRUM

0x00c069d68bc7420740460dbc3cc3fff9b3742421

MANTLE

0x12de0352dd4187af5797f5147c4179f9624346e2

BNB

0xd5a075c88a4188d666fa1e4051913be6782982da

MODE

0x87fc464fa528260f1eeab94fa20f73fed8536eb7

BERA

0x8141c1840F7D190Cd24239C22b1e560e08999B12

Last updated