---
title: "Create Crypto Deposit Address"
method: POST
path: "/v1/customers/{customer_id}/deposit_instruction"
tags: ["Deposit Instructions"]
---

# Create Crypto Deposit Address

`POST /v1/customers/{customer_id}/deposit_instruction`

Create a new crypto deposit wallet address for a customer on a specific blockchain network.

**Supported networks:** `EVM`, `ETHEREUM`, `POLYGON`, `BNBCHAIN`, `AVALANCHE`, `BASE`, `ARBITRUM`, `SOLANA`, `TRON`, `BITCOIN`.

**EVM Network:** The `EVM` network is a virtual network representing all EVM-compatible chains. A single EVM deposit address can receive deposits from: Ethereum, Polygon, BNB Chain, Avalanche, Base, and Arbitrum.

**Idempotency:** The `Idempotency-Key` header is required and must be a valid UUID. If a deposit instruction with the same key already exists and the parameters match, it will be returned. If the same key is used with different network or nickname, a 409 Conflict error is returned.

## Path parameters

- `customer_id` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateDepositInstructionRequest
  - `network` string, required — Network name accepted by deposit-wallet creation surfaces. Unlike [`Network`], this type intentionally accepts the virtual `EVM` network group used by Web/OpenAPI deposit-address creation.
  - `nickname` string, nullable — Optional nickname for the deposit address

## Response `200`

Deposit instruction already exists (idempotent replay)

- DepositInstructionResponse — A deposit instruction representing a crypto deposit wallet.
  - `deposit_instruction_id` string, required — Unique wallet identifier assigned by the custody provider
  - `network` string, required — Network name accepted by deposit-wallet creation surfaces. Unlike [`Network`], this type intentionally accepts the virtual `EVM` network group used by Web/OpenAPI deposit-address creation.
  - `address` string, required — On-chain deposit address.
  - `is_default` boolean, required — Whether this is the default deposit wallet for the network. Each customer has exactly one default wallet per network, created automatically during onboarding; additional wallets are non-default.
  - `nickname` string, required — Human-readable label. Empty string when not set.
  - `status` 'PENDING' | 'READY' | 'FAILED', required
  - `created_at` string, required

## Other responses

- `201` — Deposit instruction created successfully
- `400` — Bad Request
- `401` — Unauthorized
- `405` — Method Not Allowed
- `409` — Idempotency key already used with different parameters, or nickname already in use
- `422` — Unprocessable Entity - Invalid enum value (e.g., unsupported network or asset name)
- `500` — Internal Server Error

---

[API](https://skmtc.net/1money/apis/1money-openapi.md) · [All operations](https://skmtc.net/1money/apis/1money-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/1money/1money-openapi/revisions/aa2718d28cb5/schema)
