1. Get an API key
Circle’s APIs use 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, create an account and generate a new key in settings. Once you have generated your API key, record it in a secure place.
2. Fund Your Account
If you haven’t done so already, make sure you fund your account for testing. You can do this one of two ways: by using the Circle Payments API to accept a payment, or by receiving an external USDC transfer from a faucet or other source.3. Add Recipient Address
To send account funds externally, you need to allowlist a blockchain address to send to (destination). Adding an external wallet address via the API requires manual validation by an administrator. A notification to confirm the address is sent to all administrators when the API call is made. The sandbox environment uses the Ethereum Sepolia testing network, so the destination blockchain address has to be a valid Sepolia address.USDC is available on testing networks on other blockchains as well. This guide
focuses on Ethereum but works similarly for other blockchains. For information
on other testing networks see
Test USDC.
For France and Singapore customersCircle Mint France and Singapore customers must verify all transfer recipients
using the UI in the Circle Console, as transfers from unverified addresses will
be held in pending status. Please see Help Center articles below for details:
JSON
4. Send Funds
To keep things simple, we’ll transfer funds to the deposit address of the USDC faucet service on Sepolia. That address is0x493A9869E3B5f846f72267ab19B76e9bf99d51b1.
Balance RequirementYou can transfer any amount you want, provided your account has sufficient
balance to cover the transfer. To send funds externally, you will use the create
account transfer endpoint.
Specify your blockchainBecause Circle’s APIs are designed for multiple chains and currencies, you must
specify the currency and chain you want to utilize. You can create a transfer by
using the command below.
JSON
5. Check the Status of the Transfer
You can use the get transfer endpoint to retrieve details about the status of the transaction. You can use it as in the command below.REQUEST
JSON
Notes about the processThe first state transition for a transfer sets the
status to created and the
transactionHash to null. At this point Circle has just started processing
the onchain send.When Circle broadcasts the transfer a few seconds later, its status will
change to running. It will also display a transactionHash you can use to
track the transfer onchain, which you can look up on Etherscan’s tracker on
Sepolia.