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.
Fireblocks supports three UTXO input selection strategies:
- Adaptive Selection: the new default. Evaluates each wallet's UTXO set in real time and adapts the selection to wallet size and transaction context (see below).
- Ascending (low to high): selects smallest UTXOs first, which is the previous default logic.
- Descending (high to low): selects largest UTXOs first. Available as a manual override.
Additionally, you can bypass automatic selection entirely and hand-pick specific UTXOs as inputs via the UTXO selection API.
As of Q3 2026, Fireblocks is switching customers to the new Adaptive Selection Strategy, designed to avoid common issues tied to spendable amounts and input limits. Adaptive Selection Strategy is available for Bitcoin (BTC), Litecoin (LTC), Dogecoin (DOGE), Bitcoin Cash (BCH), and Bitcoin Signet Testnet (BTC_SIGNET_TEST).
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 use a manual strategy (Ascending or Descending) or to hand-pick specific inputs via the UTXO selection API.
Adaptive Selection strategy
How Adaptive Selection 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 minimizes 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 anything.
Low to high (Ascending) Selection strategy
This strategy selects the smallest UTXOs first when building a transaction. It was the previous default logic for all UTXO-based blockchains, and remains the default on chains not yet migrated to Adaptive Selection.
Pro: Gradually clears out small UTXOs, reducing wallet dust over time.
Cons:
- On wallets with many small UTXOs, a single transaction can require more inputs to cover the requested amount, increasing the chance of hitting the 250 input cap.
- Does not adapt to wallet size or transaction context.
High to low (Descending) Selection Strategy
This strategy selects the largest UTXOs first when building a transaction.
Pro: Minimizes the number of inputs per transaction, which lowers fees and reduces the risk of hitting input caps.
Con: Leaves small UTXOs unspent indefinitely, which can accumulate into wallet dust and reduce future spendability.
Limitations and how to handle them
Input cap: adaptive Selection always selects within the Fireblocks-imposed limit of 250 inputs per transaction cap. This is our own 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 this guide.
Signing method cap: the 250 input cap applies to API and cosigner-signed transactions. Mobile signing supports up to 30 inputs per transaction.
If you manage a large or dust-heavy UTXO account, use a co-signer as the designated signer to avoid being constrained by the 30 input limit.
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 UTXO selection API docs.