> ## Documentation Index
> Fetch the complete documentation index at: https://docs.privy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create crypto deposit account

> Create a deposit address to send crypto to to convert it into a target asset.



## OpenAPI

````yaml post /v1/wallets/{wallet_id}/deposit_accounts/crypto
openapi: 3.1.0
info:
  version: 0.0.1
  title: Privy API
  description: >-
    REST API for Privy's wallet infrastructure — provision and manage wallets
    across EVM, Solana, and Bitcoin, authenticate users, sign transactions, and
    configure programmable policies and authorization intents.
  contact:
    name: Privy
    url: https://www.privy.io/
    email: support@privy.io
servers:
  - url: https://api.privy.io
security: []
tags:
  - name: Accounts
    description: Operations related to asset accounts
  - name: Aggregations
    description: Operations related to aggregations for tracking and measuring metrics
  - name: Apps
    description: Operations related to app settings and allowlist management
  - name: Cards
    description: Operations related to stablecoin-backed card issuing
  - name: Client Auth
    description: OAuth token exchange and device authorization operations
  - name: Condition Sets
    description: Operations related to condition sets
  - name: Embedded wallets
    description: Operations related to embedded wallet creation and authentication
  - name: Fiat
    description: Operations related to fiat onramping and offramping
  - name: Intents
    description: Operations related to authorization intents for wallet actions
  - name: Key quorums
    description: Operations related to key quorums
  - name: Kraken Embed
    description: >-
      Operations for Kraken Embed integration, including quotes, trades, user
      management, and portfolio operations
  - name: OAuth
    description: >-
      OAuth 2.0 endpoints including Device Authorization Grant (RFC 8628) for
      CLI and limited-input device login flows
  - name: Organizations
    description: Operations related to organizations
  - name: Policies
    description: Operations related to policies
  - name: Shared
    description: Common schemas shared across resources
  - name: Swaps
    description: Operations for swapping tokens within wallets
  - name: Teams
    description: Operations related to dashboard team management
  - name: Transactions
    description: Operations related to transactions
  - name: User signers
    description: Operations related to user signers
  - name: Users
    description: Operations related to users
  - name: Wallet Actions
    description: Operations related to wallet actions
  - name: Wallet Automations
    description: Operations related to wallet automations
  - name: Wallets
    description: Operations related to wallets
  - name: Webhooks
    description: >-
      Webhook events that Privy sends to your configured endpoint when specific
      actions occur in your app
  - name: Yield
    description: >-
      Operations for depositing and withdrawing funds from ERC-4626 yield vaults
      (Morpho, Aave)
paths:
  /v1/wallets/{wallet_id}/deposit_accounts/crypto:
    post:
      tags:
        - Wallets
      summary: Create crypto deposit account
      description: >-
        Creates deposit source wallets and attaches them to a sweep into the
        path wallet. Requires a dest-owner privy-authorization-signature.
        Accepts a dest-owner user JWT or an app secret (app-secret callers use
        the dest owner). JWT-only requests 401 when the app requires an app
        secret for wallet actions.
      operationId: createCryptoDepositAccount
      parameters:
        - schema:
            type: string
            description: ID of the wallet.
          required: true
          name: wallet_id
          in: path
        - schema:
            type: string
            description: ID of your Privy app.
          required: true
          name: privy-app-id
          in: header
        - schema:
            type: string
            description: >-
              Request authorization signature. If multiple signatures are
              required, they should be comma separated.
          required: false
          name: privy-authorization-signature
          in: header
        - schema:
            type: string
            description: >-
              Request expiry. Value is a Unix timestamp in milliseconds
              representing the deadline by which the request must be processed.
          required: false
          name: privy-request-expiry
          in: header
        - schema:
            type: string
            description: >-
              Idempotency keys ensure API requests are executed only once within
              a 24-hour window.
          required: false
          name: privy-idempotency-key
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCryptoDepositAccountRequestBody'
            examples:
              inline-route:
                summary: USDC on Base into PathUSD on Tempo
                value:
                  source:
                    mode: include
                    values:
                      - asset: usdc
                        chain: base
                  destination:
                    asset: pathusd
                    chain: tempo
              deposit-config:
                summary: Existing deposit configuration
                value:
                  deposit_config_id: clg2rvssg025ny5fmul5m95fn
      responses:
        '200':
          description: The created crypto deposit account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCryptoDepositAccountResponse'
              example:
                deposit_accounts:
                  - wallet_id: clg2rvssg025ny5fmul5m95fn
                    deposit_address: '0xF1ff9379AB5838C42D0E9F1AFe32614211788Aae'
                    source:
                      mode: include
                      values:
                        - asset: usdc
                          chain: base
                    destination:
                      asset: pathusd
                      chain: tempo
      security:
        - appSecretAuth: []
components:
  schemas:
    CreateCryptoDepositAccountRequestBody:
      anyOf:
        - $ref: '#/components/schemas/CreateCryptoDepositAccountWithConfigRequestBody'
        - $ref: '#/components/schemas/CreateCryptoDepositAccountWithRouteRequestBody'
      description: Request body for creating a crypto deposit account.
      title: CreateCryptoDepositAccountRequestBody
      x-stainless-model: wallets.create_crypto_deposit_account_request_body
    CreateCryptoDepositAccountResponse:
      type: object
      properties:
        deposit_accounts:
          type: array
          items:
            $ref: '#/components/schemas/CryptoDepositAddressRoute'
      required:
        - deposit_accounts
      additionalProperties: false
      description: Response returned after creating a crypto deposit account.
      title: CreateCryptoDepositAccountResponse
      x-stainless-model: wallets.create_crypto_deposit_account_response
    CreateCryptoDepositAccountWithConfigRequestBody:
      type: object
      properties:
        deposit_config_id:
          type: string
          minLength: 1
      required:
        - deposit_config_id
      additionalProperties: false
      description: Creates a crypto deposit account from an existing deposit configuration.
      title: CreateCryptoDepositAccountWithConfigRequestBody
      x-stainless-model: wallets.create_crypto_deposit_account_with_config_request_body
    CreateCryptoDepositAccountWithRouteRequestBody:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/CryptoDepositAssetFilter'
        destination:
          $ref: '#/components/schemas/CryptoDepositAsset'
      required:
        - source
        - destination
      additionalProperties: false
      description: Creates a crypto deposit account from an inline source and destination.
      title: CreateCryptoDepositAccountWithRouteRequestBody
      x-stainless-model: wallets.create_crypto_deposit_account_with_route_request_body
    CryptoDepositAddressRoute:
      type: object
      properties:
        wallet_id:
          type: string
        deposit_address:
          type: string
        source:
          $ref: '#/components/schemas/CryptoDepositAssetFilter'
        destination:
          $ref: '#/components/schemas/CryptoDepositAsset'
      required:
        - wallet_id
        - deposit_address
        - source
        - destination
      additionalProperties: false
      description: One deposit address and the source/destination route it accepts.
      title: CryptoDepositAddressRoute
      x-stainless-model: wallets.crypto_deposit_address_route
    CryptoDepositAssetFilter:
      oneOf:
        - $ref: '#/components/schemas/CryptoDepositAssetFilterAll'
        - $ref: '#/components/schemas/CryptoDepositAssetFilterInclude'
        - $ref: '#/components/schemas/CryptoDepositAssetFilterExclude'
      discriminator:
        propertyName: mode
        mapping:
          all:
            $ref: '#/components/schemas/CryptoDepositAssetFilterAll'
          include:
            $ref: '#/components/schemas/CryptoDepositAssetFilterInclude'
          exclude:
            $ref: '#/components/schemas/CryptoDepositAssetFilterExclude'
      description: >-
        Which assets a deposit address accepts. Asset and chain use
        human-readable aliases when known.
      title: CryptoDepositAssetFilter
      x-stainless-model: wallets.crypto_deposit_asset_filter
    CryptoDepositAsset:
      type: object
      properties:
        asset:
          type: string
          minLength: 1
          maxLength: 128
          description: Known alias (usdc) or raw asset address.
        chain:
          type: string
          minLength: 1
          maxLength: 64
          description: >-
            Known alias (base) or CAIP-2. Omit on a source value to match every
            supported chain for that asset.
      required:
        - asset
      additionalProperties: false
      description: >-
        An asset on a chain. Uses a human-readable alias (usdc, base) when one
        is on file, otherwise the raw asset address and CAIP-2.
      title: CryptoDepositAsset
      example:
        asset: usdc
        chain: base
      x-stainless-model: wallets.crypto_deposit_asset
    CryptoDepositAssetFilterAll:
      type: object
      properties:
        mode:
          type: string
          enum:
            - all
      required:
        - mode
      additionalProperties: false
      description: Match all assets.
      title: CryptoDepositAssetFilterAll
      x-stainless-model: wallets.crypto_deposit_asset_filter_all
    CryptoDepositAssetFilterInclude:
      type: object
      properties:
        mode:
          type: string
          enum:
            - include
        values:
          type: array
          items:
            $ref: '#/components/schemas/CryptoDepositAsset'
          minItems: 1
          maxItems: 500
      required:
        - mode
        - values
      additionalProperties: false
      description: >-
        Match only the specified assets, using human-readable aliases when
        known.
      title: CryptoDepositAssetFilterInclude
      x-stainless-model: wallets.crypto_deposit_asset_filter_include
    CryptoDepositAssetFilterExclude:
      type: object
      properties:
        mode:
          type: string
          enum:
            - exclude
        values:
          type: array
          items:
            $ref: '#/components/schemas/CryptoDepositAsset'
          minItems: 1
          maxItems: 500
      required:
        - mode
        - values
      additionalProperties: false
      description: >-
        Match all assets except the specified ones, using human-readable aliases
        when known.
      title: CryptoDepositAssetFilterExclude
      x-stainless-model: wallets.crypto_deposit_asset_filter_exclude
  securitySchemes:
    appSecretAuth:
      type: http
      scheme: basic
      description: >-
        Basic Auth header with your app ID as the username and your app secret
        as the password.

````