# 1. Get an API key

The Accounts API uses [API keys](🔗) as the mechanism to authenticate client requests. The API key must be set in the `Authorization` header of the request sent from your backend server. The format of the header is `Bearer secret-key-value`.

To obtain an API key for the sandbox environment, simply create an account and generate a new key in settings - it only takes a few seconds.

(Script tags will be stripped)


Once you have generated your API key, record it in a secure place.

# 2. Create a New Wallet

For the purpose of this guide, we'll create a brand new wallet to receive the external funds. You can create new hosted wallets using the [create wallet endpoint](🔗). Use the command below (create your own [idempotency key](🔗)).



You should receive a response like the below.



# 3. Create a Deposit Address

Now it's time to create a new blockchain deposit address and associate it with the newly created wallet. You can create a new deposit address using the [generate new address endpoint](🔗).

Since the Accounts API supports [multiple chains and currencies](🔗), you have to specify the `currency` and `chain` you want to utilize. You can generate an Ethereum address to receive USDC using the command below (generate your own [idempotency key](🔗)).



You could similarly create an Algorand deposit address by setting `chain` to `ALGO`.

You will receive a response like the below.





When creating a Stellar deposit address, note that the response will include a secondary blockchain address identifier, `addressTag`. This `addressTag` value must likewise be included when performing transfers to the deposit address, otherwise the fund will not go through.

# 4. Receive the Funds

The [sandbox environment](🔗) is connected to the [testing networks](🔗) of the blockchains where [USDC is supported](🔗). For BTC and ETH, we use **testnet** and **Sepolia**, respectively.

For Ethereum, you can send USDC from a Sepolia wallet in order to fund your Circle hosted wallet. You can obtain some USDC on Sepolia for testing, you can get some by using a [**USDC faucet**](🔗). Go to [faucet.circle.com](🔗) and make sure you choose the **Sepolia** button. Paste the address you generated above (be very careful to not miss any characters) and hit Submit. You will be able to monitor the transfer on the blockchain by using the Etherscan link provided by the faucet.



**Do NOT** send real USDC to addresses generated in the sandbox environment as your funds might be permanently lost.

Use supported chains and currencies only

Transferring unsupported currencies using the Accounts API may result in a permanent loss of funds. You can verify the token contract details for supported currencies [here](🔗).

# 5. Check the Status of the Transfer

You can use the [retrieve transfers endpoint](🔗) to find transfers that are destined to the wallet you created earlier. You can use it as in the command below.



You will receive a response like below.



You can look up the `transactionHash` on [Etherscan's tracker on Sepolia](🔗). The full list of USDC chain testnet explorers please refer to [USDC on Testing Networks](🔗). For BTC, you can use a [Bitcoin testnet explorer](🔗).

As you can see on the response above, the `status` shows up initially as `running` because the transaction has been recently initiated. After waiting a few minutes for it to reach the required block [confirmations](🔗), the `status` will change to `complete`. Once it does so (and only once it does so), Circle will credit the receiving wallet with the value of the transfer.

🎉 Congratulations! You have successfully received USDC using Circle's Accounts API.

Make sure you check our quickstart guide on [sending funds externally](🔗).

# 6. Ready for the next step?

If you are in advanced stages of experimenting with our APIs and want to plan moving to production, please start by [applying for a Circle Mint account](🔗) and subsequently [reach out to sales](🔗). We'll be happy to walk you through to the next steps.

We can't wait to see what you are going to build!