---
title: "Withdraw an asset"
method: POST
path: "/api/public/v1/wallet/withdrawals"
tags: ["AutoBoy Wallet"]
---

# Withdraw an asset

`POST /api/public/v1/wallet/withdrawals`

## Request

- Base URL: `https://thefirm.biz`
- URL: `https://thefirm.biz/api/public/v1/wallet/withdrawals`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/thefirm/apis/autoboy-public-api/docs/api/public/v1/wallet/withdrawals/post.ts> (a function with typed inputs; its response is checked against the schema)

Withdraws an ERC-20 token or native ETH from the AutoBoy smart wallet associated with the API key to any destination address.

- `chain` selects the network to withdraw from, and defaults to `base` when omitted.
- `tokenAddress` must be a contract on that chain — the same address on a different chain is a different asset.
- The endpoint waits for the on-chain receipt and returns the final transaction hash.

## Request body

- object
  - `chain` 'base' | 'robinhood': Chain to withdraw from. Defaults to base when omitted.
  - `withdrawAddress` string, required: Destination address that receives the withdrawn asset.
  - `tokenAddress` string, required: ERC-20 contract address, or the native-ETH sentinel 0xEeee…EEeE.
  - `amount` string, required: Decimal amount to withdraw, e.g. "12.5", or "max" to withdraw the entire on-chain balance of the asset.

## Response `200`

The withdrawal was confirmed on-chain.

- WithdrawResponse
  - `txHash` string, required: Hash of the confirmed on-chain transaction.
  - `chain` 'base' | 'robinhood', required: Chain the withdrawal was executed on.
  - `tokenAddress` string, required
  - `withdrawAddress` string, required
  - `amount` string, required: Atomic units actually transferred, base-10 string.

## Other responses

- `400`: Invalid request body or amount.
- `401`: Missing, invalid, or revoked API key.
- `404`: The API key owner has no AutoBoy wallet.
- `429`: Rate limit exceeded. Wait `Retry-After` seconds before retrying.
- `500`: The transaction reverted or an unexpected error occurred.
- `502`: The RPC is unavailable.

## Changes

- **2026-07-26** `551d21683ba6`: 2 info
  - added the new optional request property `chain`
  - added the required property `chain` to the response with the `200` status

[Operation history](https://skmtc.dev/thefirm/apis/autoboy-public-api/changes/api/public/v1/wallet/withdrawals/post.md)

---

[API](https://skmtc.dev/thefirm/apis/autoboy-public-api.md) - [All operations](https://skmtc.dev/thefirm/apis/autoboy-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thefirm/apis/autoboy-public-api/revisions/56f5091b8f06?raw)
