Beta endpoints — The UTXO labeling and listing endpoints, and the
utxoSelectionParams field on Create Transaction, are in beta and may change. Supported assets: BTC, LTC, DOGE, BCH. To request access, contact your Customer Success Manager.How UTXO selection works
UTXO selection has three building blocks. You can use them independently or in combination:- Labels are arbitrary strings you attach to UTXOs (for example,
client-aorcounterparty). You can use them later as filter criteria. - Filters narrow a set of UTXOs by label, amount, address, and other attributes. Filters work both in the listing endpoint and inside
utxoSelectionParamswhen you create a transaction. - Explicit selection lets you specify exact UTXOs to spend by
txHashandvout.
utxoSelectionParams, you can pass either filters, an explicit selection, or both. When you pass both, Fireblocks spends the explicit picks first and uses filters to select any additional UTXOs needed to cover the fee, if fillFeeForSelectedInputs is set to true.
API reference
Label UTXOs
Attach or detach labels by identifying UTXOs with{txHash, vout} or {txId}.
List UTXOs
Retrieve a paginated list of unspent outputs for a vault account and asset. Filter by labels, amount range, address, status, and change/coinbase.Select UTXOs in a transaction
TheutxoSelectionParams field on Create Transaction has two subfields:
filters— server-side filter criteria. Fireblocks selects UTXOs that match.inputSelection— an explicit list of UTXOs to spend. SetfillFeeForSelectedInputs: trueto let Fireblocks add more UTXOs (subject tofilters) if the selected inputs don’t cover the fee.
utxoSelectionParams replaces the previous extraParameters.inputsSelection field. You can still use extraParameters.inputsSelection in requests, but you cannot use both fields together or the transaction will fail.Example: Send from labeled UTXOs above a minimum amount
When you manage funds for multiple clients using labels, you can send from UTXOs labeled for specific clients without picking them manually. Filters alone are enough — Fireblocks selects matching UTXOs that cover the transaction amount.Example: Drain a specific address and pay fees from another address (same vault)
A common pattern for omnibus vault operators: transfer the full balance of a specific customer address and have the network fee paid by a different address in the same vault (a dedicated “gas station” address). This keeps the customer’s transaction clean on the block explorer — no extra fee-related transfers. The flow:- Call List UTXOs filtered by the customer’s address to get all their unspent outputs.
- Sum the UTXO amounts to get the transfer amount.
- Call Create Transaction with
inputsToSpendset to those UTXOs andfillFeeForSelectedInputs: true. Fireblocks automatically picks additional UTXOs from other addresses in the vault to cover the fee.
filters to restrict which UTXOs Fireblocks can pick for fee coverage (for example, only UTXOs labeled gas-station).
fillFeeForSelectedInputs: truetells Fireblocks to use the specified UTXOs for the transfer amount, and to automatically select additional UTXOs from the vault to cover the network fee.- Without this flag, if the specified UTXOs don’t have enough to cover both the amount and the fee, the transaction fails.