Withdrawals

Submit a Withdrawal

Submits a co-signed transaction for broadcast. Path param is the withdrawalDetailId from prepare (not the config id). No authentication required (rate-limited). Submit is idempotent for records already past QUOTED.

post/v1/withdraw/{withdrawalDetailId}/submit

Request

  • Base URL
    https://api.hel.io
  • URL
    https://api.hel.io/v1/withdraw/{withdrawalDetailId}/submit
  • Auth
    none required

Path parameters

withdrawalDetailIdstring required

The per-request withdrawal detail ID returned by prepare.

Request body

tokenstring required

JWT from the prepare response.

signedTxstring required

Signed payload for the lane returned by prepare. For raw on Solana: base64 co-signed VersionedTransaction. For userop on EVM: JSON with signature and optional authorization. For hypercore: EIP-712 signature over typedData. For hypercore_eip3009: the sendAsset signature followed by the transfer authorization signature (without its 0x), both 65 bytes, as one 0x-prefixed hex string (0x + 260 hex chars).

Response

Withdrawal submitted successfully.

withdrawalDetailIdstring
txHashstring nullable

On-chain transaction signature. Null only if broadcast was rejected.

state'QUOTED' | 'SUBMITTING' | 'SUBMITTED' | 'BRIDGING' | 'COMPLETED' | 'FAILED' | 'FAILED_EXPIRED' | 'EXPIRED' | 'REFUNDED_BY_PROVIDER'
broadcastAck'acknowledged' | 'unacknowledged' | 'rejected' nullable

acknowledged = confirmed; unacknowledged = sent, keep polling; rejected = terminal failure.

Changes

No recorded changes to this operation across all 2 revisions of this API.