Skip to content
Hightop docs header art
Hightop
API and Integrations

Withdraw to a Bank#

Use this when an agent needs to withdraw to a bank method visible to the authenticated wallet and allowed by wallet trust checks.

Prerequisites#

  • The bank method is linked to the owner and visible through withdrawal methods.
  • The authenticated wallet passes the required trust check.
  • The agent has withdrawal write permission.

List Withdrawal Methods#

curlrequest
curl -sS "https://api.hightop.com/v1/agent/withdrawal-methods?limit=50" \
  -H "x-agent-id: $HIGHTOP_AGENT_ID" \
  -H "x-api-key: $HIGHTOP_API_KEY"

Create the Withdrawal#

Agent API amount fields are decimal asset-unit strings. For USDC, "1" means 1 USDC.

curlrequest
curl -sS https://api.hightop.com/v1/agent/withdrawals/to-bank \
  -H "content-type: application/json" \
  -H "x-agent-id: $HIGHTOP_AGENT_ID" \
  -H "x-api-key: $HIGHTOP_API_KEY" \
  -H "Idempotency-Key: bank-withdrawal-$(uuidgen)" \
  -d '{
    "method_id": "bank-method-id",
    "asset": "USDC",
    "amount": "1"
  }'

Current v1 execution can reject unsupported non-empty withdrawal notes. Omit note unless your integration has confirmed support.

Optional TypeScript SDK Shape#

typescriptexample
const withdrawal = await client.v1.agent.withdrawals.toBank(
  {
    method_id: 'bank-method-id',
    asset: 'USDC',
    amount: '1',
  },
  { idempotencyKey: `bank-withdrawal-${crypto.randomUUID()}` },
)

Follow Up#

Poll the operation or subscribe to withdrawal.settled, withdrawal.execution_failed, and operation.policy_rejected.

Likely errors: recipient_not_allowed, permission_not_granted, insufficient_funds, limit_exceeded, validation_failed.

Previous

Move Funds into Earn

Next

Withdraw to Crypto