Send funds from a Bridge wallet to a crypto address

Bridge wallets are secure, custodial crypto wallets that let you send and receive stablecoins with ease. Once you've provisioned a wallet for your customer or company, you can send funds directly to external blockchain addresses using the transfers API.

❗You must use Bridge’s orchestration APIs to move funds. Do not attempt to send directly from the wallet address.


Step 1: Create a Bridge wallet (if you haven’t already)

Request

curl --request POST \
  --url https://api.bridge.xyz/v0/customers/<customer_id>/wallets \
  --header 'Api-Key: <API Key>' \
  --header 'Idempotency-Key: <Unique Key>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "chain": "solana"
  }'

Response

{
  "id": "wallet_123",
  "chain": "solana",
  "address": "the-blockchain-address",
  "created_at": "2024-09-01T02:03:04.567Z",
  "updated_at": "2024-09-01T02:03:04.567Z"
}

Note the id returned — this is your bridge_wallet_id.

Step 2: Transfer funds from wallet to crypto address

Use the Transfers API with bridge_wallet as the source.

Request

curl --location --request POST 'https://api.bridge.xyz/v0/transfers' \
  --header 'Api-Key: <API Key>' \
  --header 'Idempotency-Key: <Unique Key>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "amount": "10.0",
    "on_behalf_of": "<customer_id>",
    "developer_fee": "0.0",
    "source": {
      "payment_rail": "bridge_wallet",
      "currency": "usdb",
      "bridge_wallet_id": "wallet_123"
    },
    "destination": {
      "payment_rail": "ethereum",
      "currency": "usdc",
      "to_address": "0xdeadbeef..."
    }
  }'

Response

{
  "id": "transfer_abc",
  "amount": "10.0",
	...
  "source": {
     "payment_rail": "bridge_wallet",
     "currency": "usdb",
     "bridge_wallet_id": "wallet_123"
   },
  "destination": {
    "payment_rail": "ethereum",
    "currency": "usdc",
    "to_address": "0xdeadbeef"
  },
}

This will initiate a crypto transfer from your Bridge wallet to the specified blockchain address.

Step 3: Monitor transfer status (optional)

Use the Transfer ID returned in the response to monitor progress via the Get a transfer endpoint or by listening to webhooks -- learn more at Setting up webhooks.

curl --request GET \
  --url https://api.bridge.xyz/v0/transfers/<transfer_id> \
  --header 'Api-Key: <API Key>'