---
title: "Provision deposit addresses"
method: POST
path: "/account/{address}/deposit-addresses"
tags: ["Accounts"]
---

# Provision deposit addresses

`POST /account/{address}/deposit-addresses`

## Request

- Base URL: `https://v1.orchestrator.rhinestone.dev/deposit-processor`
- URL: `https://v1.orchestrator.rhinestone.dev/deposit-processor/account/{address}/deposit-addresses`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/docs/account/:address/deposit-addresses/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns deposit addresses for a registered account, creating missing addresses as needed. It never changes the account owner or destination.

## Path parameters

- `address` string, required: Ethereum address (0x followed by 40 hex characters)

## Headers

- `x-api-key` string: API key for authentication
- `x-api-version` string: API version identifier (e.g. "2026-04.amazon"). Optional today, will become required in a future release.

## Response `200`

Deposit addresses for the account

- DepositAddressesResponse
  - `evmDepositAddress` string, required
  - `solanaDepositAddress` string
  - `tronDepositAddress` string

## Other responses

- `400`: Invalid API key or address
- `401`: Authentication required or the presented credential is invalid.
- `403`: Unauthorized - API key does not belong to the client that registered the account, or the organization can't be billed
- `404`: Account not registered
- `409`: The account and its existing deposit-address mapping disagree on owner or destination. Use a new address; this endpoint will not repair or overwrite the mapping.
- `429`: Retryable refusal; retry after the Retry-After delay. Registration is idempotent, so a retry reuses whatever was already stored. `WEBHOOK_ENROLLMENT_UNAVAILABLE`: no webhook provider could enroll the deposit address. `REGISTRATION_BUSY`: too many registrations are in flight; the request waited briefly for a slot and none freed. `REGISTRATION_IN_PROGRESS`: another request is registering the same account or salt.
- `500`: Internal error
- `503`: Tenant billing verification is temporarily unavailable; retry after 5 seconds.

## Changes

- **2026-11-06** `aa1767d704fa`: 5 info
  - the endpoint scheme security `internalProjectBearer` was added to the API
  - the endpoint scheme security `tenantApiKey` was added to the API
  - the `header` request parameter `x-api-key` became optional
  - added the non-success response with the status `401`
  - …1 more
- **2026-09-30** `a6fd693c3d5f`: 2 info
  - added the non-success response with the status `409`
  - added the non-success response with the status `503`
- **2026-09-17** `676300ac19ff`: 4 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `403` status
  - added the optional property `code` to the response with the `404` status
  - added the optional property `code` to the response with the `500` status
- **2026-05-05** `cc4e0452551e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/changes/account/:address/deposit-addresses/post.md)

---

[API](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api.md) - [All operations](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rhinestonewtf/apis/deposit-service-api/revisions/aa1767d704fa?raw)
