---
title: "Create crypto deposit account"
method: POST
path: "/v1/wallets/{wallet_id}/deposit_accounts/crypto"
tags: ["Wallets"]
---

# Create crypto deposit account

`POST /v1/wallets/{wallet_id}/deposit_accounts/crypto`

## Request

- Base URL: `https://api.privy.io`
- URL: `https://api.privy.io/v1/wallets/{wallet_id}/deposit_accounts/crypto`
- Auth: HTTP basic

Creates deposit source wallets that sweep into the path wallet.

## Path parameters

- `wallet_id` string, required: ID of the wallet.

## Headers

- `privy-app-id` string, required: ID of your Privy app.
- `privy-authorization-signature` string: Request authorization signature. If multiple signatures are required, they should be comma separated.
- `privy-request-expiry` string: Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.
- `privy-idempotency-key` string: Idempotency keys ensure API requests are executed only once within a 24-hour window.

## Request body

- union: Request body for creating a crypto deposit account.
  - object: Creates a crypto deposit account from an existing deposit configuration.
    - `type` 'deposit_config', required
    - `deposit_config_id` string, required
    - `deposit_address_strategy` 'dedicated' | 'prefer_destination' | 'require_destination': How deposit source wallets are chosen. Omission uses `dedicated`. Destination reuse applies only to the destination's own chain type.
  - object: Creates a crypto deposit account from an inline source and destination.
    - `type` 'inline_route', required
    - `source` union, required: Which assets a deposit address accepts. Asset and chain use human-readable aliases when known.
      - object: Match all assets.
        - `mode` 'all', required
      - object: Match only the specified assets, using human-readable aliases when known.
        - `mode` 'include', required
        - `values` CryptoDepositAsset[], required
          - `asset` string, required: Known alias (usdc) or raw asset address.
          - `chain` string: Known alias (base) or CAIP-2. Omit on a source value to match every supported chain for that asset.
      - object: Match all assets except the specified ones, using human-readable aliases when known.
        - `mode` 'exclude', required
        - `values` CryptoDepositAsset[], required
          - `asset` string, required: Known alias (usdc) or raw asset address.
          - `chain` string: Known alias (base) or CAIP-2. Omit on a source value to match every supported chain for that asset.
    - `destination` CryptoDepositAsset, required: An asset on a chain. Uses a human-readable alias (usdc, tempo) when one is on file, otherwise the raw asset address and CAIP-2.
      - `asset` string, required: Known alias (usdc) or raw asset address.
      - `chain` string: Known alias (base) or CAIP-2. Omit on a source value to match every supported chain for that asset.
    - `deposit_address_strategy` 'dedicated' | 'prefer_destination' | 'require_destination': How deposit source wallets are chosen. Omission uses `dedicated`. Destination reuse applies only to the destination's own chain type.

## Response `200`

The created crypto deposit account.

- CreateCryptoDepositAccountResponse: Response returned after creating a crypto deposit account.
  - `deposit_accounts` CryptoDepositAddressRoute[], required
    - `wallet_id` string, required
    - `deposit_address` string, required
    - `source` union, required: Which assets a deposit address accepts. Asset and chain use human-readable aliases when known.
      - object: Match all assets.
        - `mode` 'all', required
      - object: Match only the specified assets, using human-readable aliases when known.
        - `mode` 'include', required
        - `values` CryptoDepositAsset[], required
          - `asset` string, required: Known alias (usdc) or raw asset address.
          - `chain` string: Known alias (base) or CAIP-2. Omit on a source value to match every supported chain for that asset.
      - object: Match all assets except the specified ones, using human-readable aliases when known.
        - `mode` 'exclude', required
        - `values` CryptoDepositAsset[], required
          - `asset` string, required: Known alias (usdc) or raw asset address.
          - `chain` string: Known alias (base) or CAIP-2. Omit on a source value to match every supported chain for that asset.
    - `destination` CryptoDepositAsset, required: An asset on a chain. Uses a human-readable alias (usdc, tempo) when one is on file, otherwise the raw asset address and CAIP-2.
      - `asset` string, required: Known alias (usdc) or raw asset address.
      - `chain` string: Known alias (base) or CAIP-2. Omit on a source value to match every supported chain for that asset.

## Changes

- **2026-10-16** `4facbfa7f9d4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/privy-io/apis/privy-api/changes/v1/wallets/:wallet_id/deposit_accounts/crypto/post.md)

---

[API](https://skmtc.dev/privy-io/apis/privy-api.md) - [All operations](https://skmtc.dev/privy-io/apis/privy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/privy-io/apis/privy-api/revisions/6a80d4be53a8?raw)
