Account types
Bastion supports two custody models. Your platform uses one or both depending on your use case.Segregated
Each account gets its own dedicated cryptographic keys and blockchain wallet address. Funds are not commingled and are independently verifiable on-chain.
Omnibus
Funds are pooled in a custody vault and tracked per account on a secure double-entry ledger. Transactions settle off-chain instantly; those that must go on-chain are routed automatically.
Balances
Balances are returned in atomic units as strings. Use thedecimals field to convert to a human-readable amount (e.g., "975000000" with decimals: 6 = 975.00 USDC).
The balance response shape differs by account type:
Segregated accounts return chain-specific balances with type, chain, and contract_address fields. A customer with USDC on both Solana and Base will see two separate balance entries.
Omnibus accounts return a single chain-agnostic balance with type: OMNIBUS and chain: CHAIN_UNSPECIFIED
In both cases, the available field reflects the amount the customer can use for transfers or conversions. The total field may differ from available if funds are held for a pending operation.
Gas sponsorship
Bastion sponsors gas fees by default on all supported chains. Your customers do not need to hold native tokens (SOL, ETH, etc.) to send transfers. Gas sponsorship is opt-out, not opt-in. Contact your Bastion account team to disable.What you can do with custody
Bastion custody is a prerequisite for all financial operations on the platform. With custodied accounts, your platform can:- Submit crypto transfers (on-chain and off-chain). See Crypto transfers.
- Process fiat-to-stablecoin conversions (on-ramps and off-ramps). See Stablecoin conversions.
- Receive incoming crypto deposits from external wallets or other accounts.
- Query balances, transaction history, and transfer status in real time.
- Receive webhook notifications for transfers, deposits, and account events.