Enable on the server
Set in.env (after confirming BitGo Solana on your enterprise):
FF_BITGO_NEW_WALLETS, FF_BITGO_TRANSFERS_P2P, FF_BITGO_TRANSFERS_B2B, FF_BITGO_BALANCE_READS, webhooks) apply to Solana wallets the same way as TRON and Ethereum.
User onboarding
New users receive three default wallets:- Ethereum Wallet (
network: ethereum) - TRON Wallet (
network: tron) - Solana Wallet (
network: solana)
Wallet provisioning
POST /api/v1/auth/wallets/for-owner creates a wallet on the network you pass (e.g. "network": "solana" for an existing user who needs a Solana address).
Set "provision_all_networks": true when you want ethereum, tron, and solana wallets in one call (e.g. a new vendor spending-wallet set). The network field selects which wallet is primary in the response (wallet + balances). The full set is returned in wallets when provision_all_networks is true.
Additional Solana wallets can also be created via POST /api/v1/auth/wallets with "network": "solana".
Multisig (treasury / B2B)
BitGo treasury multisig supportsnetwork: solana with multisig type bitgo_sol. B2B transfers from BitGo-managed multisig wallets route through BitGo sendcoins (same as bitgo_evm and bitgo_tron). Self-custody Gnosis / TRON native multisig remains ETH/TRON only.
Transfers
P2P and B2B transfer endpoints accept"network": "solana" and "asset": "USDT" or "USDC". Sends route through BitGo sendcoins the same as other chains.
Important: always pass network explicitly for Solana. The API does not infer Solana from a base58 address (TRON also uses base58).
Not in v1
- Self-custody Solana wallets or SPL signing
- Escrow watcher SPL deposit detection (off-ramp escrow on Solana)
- On-ramp address inference from destination address alone
Verify BitGo first
Before production traffic, confirm in BitGo testnet:- Create a
tsolcustodial wallet - Receive SPL USDC/USDT
- Send to a second address
- Webhook + reconciler update transfer status