Setup
One-time wallet setup (deposit, referral, builder fee)
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.
JWT access token from POST /auth/authenticate
EVM wallet address that signs and owns the Hyperliquid position
USDC amount to deposit
Deposit plan returned
1common.successError response
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"
}
]
}
}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.
JWT access token from POST /auth/authenticate
EVM wallet address
Referral action or null
Error response
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"
}
}
}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.
JWT access token from POST /auth/authenticate
Builder fee approval action
Error response
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