Binding a Hyperliquid account

Binding a Hyperliquid account A sequence diagram generated by Archify. GET /api/managed-accounts id, address, customerId GET /hyperliquid-binding/accounts null, or an existing binding reuse it if one comes back POST /api/playlists strategyTemplateId hyperliquid_deposit deposit playlist created GET /hyperliquid/positions poll until equity is above zero equity 0, poll again GET /hyperliquid/positions equity above zero hard gate cleared POST /hyperliquid-binding/approve set the client timeout to 180s or more sign the agent approval signature can exceed 60 seconds approve the agent 409 already in progress do not retry approve GET /hyperliquid-binding/approval-status poll here instead approved true, agent in agents[] POST /hyperliquid-binding/builder-fee optional, isRevoke supports clearing approved, maxFeeRate Find the account Fund it, then wait for equity Approve, confirm, optional fee Your Integration · server or app · Sequence participant Your Integration server or app Paros API · /api/managed-accounts · Sequence participant Paros API /api/managed-accounts Hyperliquid · the venue · Sequence participant Hyperliquid the venue Salt Custody · threshold signing · Sequence participant Salt Custody threshold signing Legend request return security async trace default message

Fund before approve

  • • Hyperliquid rejects agent approval from an unfunded account, so equity has to be above zero first
  • • The API reports that rejection as a generic 500, which reads like an unrelated fault
  • • Confirm the balance on positions before you call approve

A 409 is not a failure

  • • 409 already in progress means the first approve call is still inside the signing ceremony
  • • Retrying approve starts a second ceremony and makes the wait longer
  • • Poll approval-status until approved is true

Two timeouts, one number

  • • Approve waits for the custody ceremony and regularly passes 60 seconds
  • • Set your client timeout to at least 180 seconds so the response is not cut off mid-ceremony
  • • The binding counts as done when approval-status reports approved true and the agent address in agents[]