> ## 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.

# Crypto deposits

> Create persistent deposit addresses that convert incoming crypto into a target asset

To deposit crypto into a wallet, configure **crypto deposit addresses**. These enable you to send crypto to a wallet and have it automatically be bridged or swapped to a target asset.

By default, crypto deposits use dedicated source wallets, separate from the destination. The optional deposit address strategy controls destination reuse.

| Deposit address | Used when | Logic |
| - | - | - |
| Dedicated source wallet | Default (`dedicated`), or fallback with `prefer_destination` | Privy reuses or creates an eligible source wallet owned by the depositing user. A [wallet automation](/wallets/automations/overview) converts deposits and delivers them to the destination. |
| Destination wallet | Explicit `prefer_destination` or `require_destination`, when eligible | A wallet automation converts deposits in place. The destination must match the source chain family. `require_destination` fails without fallback only when that family is requested and the destination cannot serve it; other families still use dedicated wallets. |

Dedicated source wallets do not necessarily share the destination wallet's owner configuration. Exporting a source wallet for asset recovery makes it ineligible for deposit automations; exporting only the destination does not affect a separate deposit source.

Deposit addresses are reusable for their configured route. Repeated calls reuse eligible source wallets. Switching to `dedicated` preserves previous routes, while explicit destination reuse replaces all existing automation attachments on the destination wallet, including matching and disabled ones. Learn about [deposit address behavior](/wallets/funding/crypto-deposits/create-deposit-account#deposit-address-behavior).

<Note>
  Under the hood, crypto deposits use [wallet automations](/wallets/automations/overview) and the
  [swap](/financial-flows/swap) API.
</Note>

## How a crypto deposit works

1. Create a crypto deposit account on a destination wallet, with the assets to accept and the asset to deliver.
2. Fetch each `deposit_address` for the wallet.
3. Send crypto to the `deposit_address` based on its route configuration.
4. Funds are converted and delivered to the target wallet.

## Getting started

<CardGroup cols={2}>
  <Card title="Setup" icon="gear" href="/wallets/funding/crypto-deposits/setup">
    Enable swaps and app-pays gas sponsorship
  </Card>

  <Card title="Deposit modal" icon="window-restore" href="/wallets/funding/use-deposit-funds">
    `useDepositFunds` for the prebuilt deposit UI
  </Card>

  <Card title="Create a deposit account" icon="arrow-right-to-bracket" href="/wallets/funding/crypto-deposits/create-deposit-account">
    Provision deposit addresses, including `useHeadlessCryptoDeposit` in React and React Native
  </Card>

  <Card title="Quotes" icon="calculator" href="/wallets/funding/crypto-deposits/quotes">
    Indicative route quotes before creating an address
  </Card>

  <Card title="Orders" icon="arrows-rotate" href="/wallets/funding/crypto-deposits/orders">
    Poll sweep status after a deposit is sent
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.