Send Crypto to External Address
Sending funds from your CryptoConnect wallet to external blockchain addresses is a core function of the CryptoConnect API. This quickstart guides you through sending USDC to an external blockchain address. The same steps also apply to sending USDT, ETH, and BTC.
Step 1 — Obtain a blockchain address
To transfer funds from your CryptoConnect Wallet to an external destination, you need a blockchain address. The sandbox environment uses the Ethereum Sepolia testing network, so the destination address must be a valid Sepolia address.
USDC is also available on test networks of other blockchains. This guide focuses on Ethereum, though the process is similar on other blockchains. For information on other test networks, see Test USDC.
Step 2 — Preview withdrawal fees (optional)
Use the Get transfer fee API to view the fees before initiating a withdrawal. This step is optional. If you choose to skip it, the fees will be retrieved automatically during the withdrawal. You can initiate a transfer with the command below.
Request Example
# Replace ${YOUR_API_ACCESS_TOKEN} with your API access token.
curl --request POST \
--url https://api-sandbox.interlace.money/open-api/v3/cryptoconnect/transfers/fee-and-quota \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-access-token: ${YOUR_API_ACCESS_TOKEN}' \
--data '{
"accountId": "b27c8873-e400-47cd-adc1-035cfa0d5347",
"source": {
"type": "WALLET",
"id": "32aae8b7-4a69-474f-b7d5-337e190af878"
},
"destination": {
"type": "BLOCKCHAIN",
"chain": "ARB",
"address": "0x89F9Cfaa0dA076351DdfC6E320bD8df8b538dB17"
},
"amount": {
"currency": "USDC",
"amount": "10"
}
}'Response Example
{
"code": 0,
"message": "ok",
"data": {
"crossChainQuota": "10000",
"crossChainFeeRate": "0.003",
"crossChainAmount": "0",
"fees": [
{
"amount": "0.2",
"currency": "USDC",
"type": "GAS"
}
]
}
}Step 3 — Withdraw cryptocurrency
Use the Create a blockchain transfer API to withdraw cryptocurrency to an external blockchain address. Since the Interlace APIs support multiple blockchains and cryptocurrencies, you will need to specify the currency and chain you wish to use.
Note: Ensure that both the wallet address and the blockchain network are correctly specified before initiating the withdrawal.
Withdrawal Status Flow 💰
-
When you initiate a withdrawal, Interlace first receives the request, assigns it a status of Pending, and sets
transactionHashto null. This indicates that your request has been accepted and the on-chain transfer process has started. -
Once the transaction is broadcast, Interlace monitors its progress. The status updates to Closed once the transaction receives 30 block confirmations, and a valid
transactionHashbecomes available. -
You can use this
transactionHashto track the transaction on-chain, for example via Etherscan's tracker on Sepolia.
Request Example
# Replace ${YOUR_API_ACCESS_TOKEN} with your API access token.
curl --request POST \
--url https://api-sandbox.interlace.money/open-api/v3/cryptoconnect/transfers \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-access-token: ${YOUR_API_ACCESS_TOKEN}' \
--data '{
"idempotencyKey": "bfafe401-a54d-445a-a6c5-4b407b68a2cc",
"source": {
"type": "cryptoconnect_wallet",
"id": "32aae8b7-4a69-474f-b7d5-337e190af878"
},
"destination": {
"type": "blockchain",
"chain": "ETH",
"address": "0x89F9Cfaa0dA076351DdfC6E320bD8df8b538dB17"
},
"amount": {
"amount": "9.95",
"currency": "USDC"
}
}'Response Example
{
"code": 0,
"message": "ok",
"data": {
"id": "aba46642-edcf-4faa-8942-7d63c967fb07",
"accountId": "b27c8873-e400-47cd-adc1-035cfa0d5347",
"idempotencyKey": "bfafe401-a54d-445a-a6c5-4b407b68a2cc",
"source": {
"type": "cryptoconnect_wallet",
"id": "32aae8b7-4a69-474f-b7d5-337e190af878"
},
"destination": {
"type": "blockchain",
"chain": "ETH",
"address": "0x89F9Cfaa0dA076351DdfC6E320bD8df8b538dB17"
},
"amount": {
"amount": "9.95",
"currency": "USDC"
},
"fees": [
{
"amount": "0.2",
"currency": "USDC",
"type": "GAS"
}
],
"status": "Pending",
"createTime": "1758276661923",
"updateTime": "1758276662488"
}
}🎉 Congratulations! The cryptocurrency transfer has been successfully completed using Interlace APIs.
Updated about 2 hours ago