Skip to main content
Generate blockchain-specific deposit addresses so your end customers can receive stablecoins from external wallets. After creating an address, you can list existing addresses for an account and monitor incoming deposits as they credit the account balance.

Prerequisites

Before you begin:
  • Obtain an API key for Digital Asset Accounts from Circle.
  • Have an onboarded and active account with an accountId.
  • Install cURL on your development machine.
The Digital Asset Accounts API base URL is https://api-sandbox.circle.com for sandbox and https://api.circle.com for production. Set your API key in the Authorization header using the format Bearer YOUR_API_KEY. See Sandbox environment and Going to production for environment details.

Steps

Step 1. Generate a deposit address

Create a deposit address for a specific blockchain. You can create multiple addresses per account, one for each blockchain. For valid chain values, see Supported currencies and blockchains.
Response
Share the address value with your end customer. Any USDC sent to this Ethereum address is credited to the account. If you pass an unsupported value in the chain field, the API returns a 400 error:
See the supported currencies and blockchains reference for valid values.

Step 2. List deposit addresses

Retrieve all deposit addresses for an account.
Response

Step 3. Monitor incoming deposits

Track stablecoins as they arrive at a deposit address. A stablecoin sent to a deposit address is recorded as a transfer with a blockchain source, so you monitor it with the Transfers endpoints. The Deposits endpoint returns bank deposits only. List the transfers that arrived from a blockchain by calling List account transfers with sourceType=blockchain. Pass the clientEntityId of the end customer that owns the account. You receive it when you create a partner client. Without it, the list is empty. Results are sorted newest first, up to 50 per page.
Response
Use the following fields to identify each deposit:
  • destination.address: the deposit address that received the funds
  • source.chain: the blockchain the funds arrived on
  • transactionHash: the hash of the onchain transaction
  • status: pending, complete, or failed

Step 4. Get a deposit

Retrieve a single deposit by its transfer ID, for example to check whether a pending deposit is now complete. Use the id value from the list response in Step 3. For the full response schema, see Get an account transfer.
Response

See also