type:
'inline_route' | 'deposit_config'
required
Which create payload to send.
inline_route takes source and destination. deposit_config
reuses an existing deposit configuration via deposit_config_id.'dedicated' | 'prefer_destination' | 'require_destination'
Optional for both
inline_route and deposit_config. Omission always selects dedicated,
including for existing routes.dedicated: Reuse or create eligible dedicated source wallets, never the destination wallet.prefer_destination: Use the eligible destination for its matching source chain family; use dedicated wallets otherwise.require_destination: Require the destination to serve its own chain family when that family is requested, and fail without fallback if it cannot. Other requested families still use dedicated source wallets.
object
Required when
type is inline_route. Assets the deposit address accepts. Chains must be EVM or
Solana.object
Required when
type is inline_route. Asset delivered to the destination wallet. Identifies
exactly one asset on exactly one chain.string
Required when
type is deposit_config. ID of an existing deposit configuration to attach.Deposit address behavior
The destination must be a Privy wallet owned 1-of-1 by a single user, with no authorization keys and no nested quorums. A user token must belong to that user. Source chain families are EVM and Solana.require_destination uses the destination only for its own family when that family is requested; other families still use dedicated source wallets.
Exported wallets cannot act as deposit sources, including when reusing a destination address. An exported destination can still receive converted funds from dedicated source wallets.
When reusing the destination wallet, both prefer_destination and require_destination remove all existing automation attachments, including matching and disabled attachments, then attach the requested automation. The shared automation configurations and attachments on other wallets are unchanged. dedicated does not modify the destination wallet’s attachments.
Repeated calls for the same route and strategy reuse eligible source wallets.
Examples
The body uses the optional Below is a sample cURL command for this request:
deposit_address_strategy field for either request type, with the same strategy values and dedicated default described above. Include it in the signed body when provided. Do not add its default after signing a request that omits it.The field for an existing configuration is deposit_config_id.To create a crypto deposit account for a wallet, make a POST request to:Response
A successful response includes the following fields:object[]
One entry per source route created for the destination wallet.
Error handling
Create rejects on invalid configuration or failed requests. Common error cases include:- the user is not authenticated
- the dest-owner request expires before it is sent
- swaps or app-pays gas sponsorship are not enabled for the source chain
- the route is unsupported
require_destinationis set and the destination cannot serve its own chain family when that family is requested
try/catch and show clear UI feedback.
Next steps
Deposit modal
useDepositFunds for the prebuilt deposit UISetup
Enable swaps and app-pays gas sponsorship
Quotes
Indicative route quotes before creating an address
Orders
Poll sweep status after a deposit is sent

