For the complete documentation index, see llms.txt. This page is also available as Markdown.

Setup

One-time wallet setup (deposit, referral, builder fee)

Fund the account

post
/api/which-first/deposit

Returns an unsigned two-transaction HyperEVM plan that moves USDC into the wallet's Hyperliquid account. Sign and broadcast both transactions yourself via eth_sendRawTransaction on the plan's rpcUrl. Do not use signL1Action.

The approve is for the exact amount — send both transactions on every deposit. Broadcast approve first, deposit second, with consecutive nonces.

Authorizations
AuthorizationstringRequired

JWT access token from POST /auth/authenticate

Body
userAddressstringRequired

EVM wallet address that signs and owns the Hyperliquid position

amountstringRequired

USDC amount to deposit

Responses
200

Deposit plan returned

application/json
codestringOptionalExample: 1
messagestringOptionalExample: common.success
post/api/which-first/deposit
POST /api/which-first/deposit HTTP/1.1
Host: api.bound.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 74

{
  "userAddress": "0xc12b0a4a5fdd42d1f4aa2a08c2193d1ac49c8167",
  "amount": "10"
}
{
  "code": "1",
  "message": "common.success",
  "data": {
    "usdcToken": "0xb88339…",
    "depositContract": "0x6b9e77…",
    "rpcUrl": "https://…hyperevm-rpc",
    "from": "0xc12b…",
    "amount": "10",
    "txs": [
      {
        "chainId": 999,
        "to": "0xb88339…",
        "data": "0x095ea7b3…",
        "value": "0"
      },
      {
        "chainId": 999,
        "to": "0x6b9e77…",
        "data": "0x2b2dfd2c…",
        "value": "0"
      }
    ]
  }
}

Referral opt-in (one-time)

post
/api/which-first/referral

Returns an unsigned setReferrer action, or null when no referral code is configured or the wallet already has a referrer. Sign with signL1Action and POST directly to Hyperliquid /exchange.

Hyperliquid only lets a wallet set a referrer while cumulative volume is under $10k.

Authorizations
AuthorizationstringRequired

JWT access token from POST /auth/authenticate

Body
userAddressstringRequired

EVM wallet address

Responses
200

Referral action or null

application/json
codestringOptional
messagestringOptional
post/api/which-first/referral
POST /api/which-first/referral HTTP/1.1
Host: api.bound.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 60

{
  "userAddress": "0xc12b0a4a5fdd42d1f4aa2a08c2193d1ac49c8167"
}
{
  "code": "1",
  "message": "common.success",
  "data": {
    "kind": "set_referrer",
    "action": {
      "type": "setReferrer",
      "code": "BOUND"
    }
  }
}

Approve builder fee (one-time)

post
/api/which-first/builder-fee-approval

Returns an unsigned approveBuilderFee action. Sign with signUserSignedAction (EIP-712), then POST the signed envelope directly to Hyperliquid /exchange.

Sign once per wallet; afterwards the builderFeeNotApproved gate stops firing.

Authorizations
AuthorizationstringRequired

JWT access token from POST /auth/authenticate

Body
objectOptional
Responses
200

Builder fee approval action

application/json
codestringOptional
messagestringOptional
post/api/which-first/builder-fee-approval
POST /api/which-first/builder-fee-approval HTTP/1.1
Host: api.bound.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "code": "1",
  "message": "common.success",
  "data": {
    "kind": "approve_builder_fee",
    "action": {
      "type": "approveBuilderFee",
      "hyperliquidChain": "Mainnet",
      "signatureChainId": "0xa4b1",
      "maxFeeRate": "0.05%",
      "builder": "0x…"
    }
  }
}

Last updated