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 and receive funds using orchestration API.
You must use Bridge’s orchestration APIs to move funds. Do not attempt to send directly from the wallet address.

1

Step 1: Create a Bridge wallet

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.
2

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.
3

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.
Request
curl --request GET \
  --url https://api.bridge.xyz/v0/transfers/<transfer_id> \
  --header 'Api-Key: <API Key>'