Overview
Every UTXO-based transaction needs to decide which unspent transaction outputs (UTXOs) to use as inputs. This decision affects transaction reliability, wallet health over time, and future spendability, not just the current transaction at hand.
As of Q3 2026, Fireblocks is switching all of its customers from the current default selection logic, which selects UTXOs in ascending order (smallest first), to a new Adaptive Selection Strategy, designed to avoid common issues tied to spendable amounts and input limits.
Note: If you configured a manual or custom input selection for specific business needs, this change does not affect you, and your configuration remains unchanged.
Fireblocks strongly recommends the Adaptive Selection Strategy for all use cases, unless you have a specific business reason to hand-pick inputs, which you can do via the API.
Adaptive Selection Strategy is available for Bitcoin (BTC), Litecoin (LTC), Dogecoin (DOGE), Bitcoin Cash (BCH), and Bitcoin Signet Testnet (BTC_SIGNET_TEST).
How Adaptive UTXO Selection Strategy works
Instead of applying one fixed rule to every transaction, Adaptive Selection evaluates a wallet's current UTXO set in real time and selects the approach best suited to that specific transaction and wallet state, so your transactions keep going through and your wallet stays healthy, without you having to manage either one yourself. In practice, this means the selection:
- Adapts per wallet and per transaction, rather than applying the same logic regardless of transaction and wallet size.
- Balances multiple goals at once: getting the transaction through reliably, gradually consolidating smaller UTXOs, and preserving healthy liquidity for future transactions, instead of optimizing for only one of these at the expense of the others.
- Removes the need to manually switch strategies. Currently, customers sometimes have to toggle between strategies (Descending high-to-low and Ascending low-to-high) depending on transaction size or wallet state. Adaptive Selection is designed to handle both ends of that spectrum without manual intervention, so operations keep running smoothly as your wallet's UTXO set evolves.
This is a change in how the input set is chosen, not in how transactions are signed or broadcast. The rest of your integration is unaffected.
Behavior by wallet size
Adaptive Selection Strategy is size-aware: it treats a wallet with a handful of UTXOs differently from one with thousands, because each faces a different risk.
- Small wallets: the strategy encourages fan-out, minimizing how many inputs a transaction consumes so the wallet is not drained down to too few UTXOs to operate smoothly.
- Standard wallets: the strategy maintains the existing structure. This is already a healthy steady state, so selection is optimized for efficiency without deliberately changing the UTXO set.
- Large wallets: the strategy encourages consolidation. It opportunistically uses ordinary transactions to reduce an oversized UTXO set, rather than requiring a dedicated consolidation process.
A wallet transitions between these behaviors automatically as its UTXO count changes over time. There is nothing for you to configure.
Limitations and how to handle them
Adaptive Selection always selects within the network's 250-inputs-per-transaction cap. This is a Fireblocks-level constraint, and no selection logic can exceed it.
If a transaction fails with a TOO_MANY_INPUTS error status, it means the amount you are trying to send cannot be covered by the best possible combination of up to 250 UTXOs currently available in the wallet.
To handle this:
- Check what is actually spendable. Use the getMaxSpendableAmount endpoint to see the maximum amount you can send in a single transaction; it reflects the best combination accounting for up to 250 inputs.
- If you do not have enough spendable funds under the cap, consolidate first, using the following guide.
Related capabilities
For information on more advanced control via API, such as tagging UTXOs with labels, filtering eligible UTXOs, or specifically selecting UTXOs by transaction hash and output index, see our API docs.