What Are Blockchain Addresses?
Blockchain addresses are on-chain deposit addresses that allow external parties to send crypto assets to an OpenFX account. They are sub-resources of crypto accounts, managed under /accounts/{accountId}/blockchain-addresses.
When you create a blockchain address, the system generates the on-chain address automatically. You cannot specify a custom address. Share the generated address with senders to receive deposits.
All blockchain address IDs use the ba_ prefix (e.g., ba_01953e1a5f4b7201).
Supported Chains and Assets
| Chain | Assets | Address Format |
|---|
ethereum | USDC, USDT, EURC, PYUSD | 0x prefixed hex (42 characters) |
solana | USDC, USDT | Base58 encoded (32-44 characters) |
tron | USDC, USDT | Base58 T prefixed (34 characters) |
base | USDC, EURC | 0x prefixed hex (42 characters) |
polygon | USDC, USDT | 0x prefixed hex (42 characters) |
ink | USDC | 0x prefixed hex (42 characters) |
sui | USDC | 0x prefixed hex (66 characters) |
The chain and asset specified when creating a blockchain address must match the chain and asset of the parent account. You cannot create an Ethereum USDC address on a Solana USDT account.
Creating a Blockchain Address
Ethereum USDC Address
curl -X POST https://sandbox.api.openfx.com/v1/accounts/acc_01953e1a5f4b7010/blockchain-addresses \
-H "Authorization: Bearer $API_KEY" \
-H "X-Signature: $SIGNATURE" \
-H "X-Timestamp: $TIMESTAMP" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"chain": "ethereum",
"asset": "USDC"
}'
Response:
{
"id": "ba_01953e1a5f4b7201",
"accountId": "acc_01953e1a5f4b7010",
"chain": "ethereum",
"asset": "USDC",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD38",
"status": "active",
"createdAt": "2026-02-23T12:00:00Z"
}
Solana USDT Address
curl -X POST https://sandbox.api.openfx.com/v1/accounts/acc_01953e1a5f4b7020/blockchain-addresses \
-H "Authorization: Bearer $API_KEY" \
-H "X-Signature: $SIGNATURE" \
-H "X-Timestamp: $TIMESTAMP" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"chain": "solana",
"asset": "USDT"
}'
Response:
{
"id": "ba_01953e1a5f4b7202",
"accountId": "acc_01953e1a5f4b7020",
"chain": "solana",
"asset": "USDT",
"address": "7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj",
"status": "active",
"createdAt": "2026-02-23T12:00:00Z"
}
Status Lifecycle
Blockchain addresses follow a two-state lifecycle:
| Status | Description |
|---|
active | Address is live and can receive deposits. On-chain transactions to this address will be credited to the account. |
suspended | Address is temporarily disabled. Deposits sent to a suspended address may not be credited until the address is reactivated. |
Unlike account numbers, blockchain addresses do not have a closed terminal state. Once generated, the on-chain address exists permanently on the blockchain. Suspension only affects the platform’s processing of incoming deposits.
Listing Blockchain Addresses
Retrieve all blockchain addresses for a crypto account:
curl -X GET https://sandbox.api.openfx.com/v1/accounts/acc_01953e1a5f4b7010/blockchain-addresses \
-H "Authorization: Bearer $API_KEY" \
-H "X-Signature: $SIGNATURE" \
-H "X-Timestamp: $TIMESTAMP"
Receiving Crypto Deposits
The end-to-end flow for receiving crypto deposits:
- Create a crypto account with
POST /accounts (type wallet, specifying asset and chain).
- Create a blockchain address with
POST /accounts/{accountId}/blockchain-addresses.
- Share the
address field with the sender. This is the on-chain address to which they should send funds.
- The sender initiates an on-chain transfer to the address.
- After sufficient block confirmations, OpenFX detects the deposit and creates an inbound payment record.
- An
inbound_payment.received webhook fires.
- The account balance is credited with the deposited amount.
For crypto deposits that cannot be automatically attributed to a customer (e.g., deposits from unknown addresses), the inbound payment enters a requires_attribution status. Use the crypto inbound attribution endpoint (POST /payments/crypto/inbound/{id}/attribute) to manually assign the deposit.
Deposit Instructions
For a unified view of all deposit methods on an account, including blockchain addresses, use:
curl -X GET https://sandbox.api.openfx.com/v1/accounts/acc_01953e1a5f4b7010/deposit-instructions \
-H "Authorization: Bearer $API_KEY" \
-H "X-Signature: $SIGNATURE" \
-H "X-Timestamp: $TIMESTAMP"
Each blockchain address appears as a deposit instruction with kind: "blockchain_address" and the full address details in the details field.
API Reference