At BitGo, we’re committed to delivering a streamlined and efficient experience for clients building and approving multiple transactions. A key part of that commitment is constantly refining our technology to solve real problems our clients face. Today, we’re excited to share an update that makes transaction building more seamless and error-free: our improved Unspent Selection process.

The Transaction Challenge

For anyone managing digital asset transactions, building and approving multiple transactions at once has historically posed a challenge. Here’s why: each transaction requires a unique set of “inputs” (unspent funds) to be selected. If multiple transactions use the same inputs and are sent for approval simultaneously, errors can occur due to unintentional double spending. This issue is especially prevalent when transactions are queued up for approvals, requiring careful tracking to avoid conflicts.

In the previous setup, when a transaction was created and entered the approval queue, the inputs in that transaction were not set aside, leaving them eligible to be selected in a new transaction. This could lead to double-spend errors and costly delays, as the conflicting transactions would have to be modified or rebuilt.

The Solution: Smarter Unspent Selection

Our new Unspent Selection update directly addresses this problem by automatically excluding inputs used in pending approvals from the selection process for new transactions. This means that when you initiate a new transaction, the system automatically knows to skip over inputs that are already awaiting approval in another transaction.

This new feature offers two key benefits for our clients:

  1. Immediate Error Detection
    Double-spend errors are now caught at the very start of the transaction creation process rather than post-approval. This enhancement saves valuable time and ensures your workflow isn’t interrupted by preventable errors during transaction approvals.

  2. Enhanced Multi-Transaction Efficiency
    Clients can now build and approve multiple transactions at once, confident that each transaction is using unique inputs. This improvement eliminates the need for manual input selection oversight and supports a faster, smoother approval process.

How It Works: A Quick Overview

Here’s how this improvement changes the process:

  • When you build a transaction and send it for approval, the inputs used are flagged and automatically excluded from being selected in any subsequent transaction.

  • If another transaction requires the same input while it’s in a pending approval status, the system will automatically identify it and prevent the conflict, ensuring a seamless transaction experience.

  • This process is entirely automated, so you can create and approve transactions faster and more confidently than ever.

Frequently Asked Questions

Why does my spendable balance decrease by the entire input amount, even for smaller transactions?
Bitcoin transactions require the full input amount to be used, with the remaining funds returned as “change.” For example, if you send 1 BTC from a 10 BTC input, your spendable balance temporarily decreases by 10 BTC, not just 1 BTC.

Are inputs excluded in pending approval the same as reserved unspents?
Inputs flagged in pending approvals are indeed excluded, but they are not marked as “reserved.” Only reserved or frozen unspents have a formal reserved status.

How can I release inputs excluded due to a pending approval?
To release these inputs, simply cancel the pending approval associated with them.

Why might I see a “not enough funds” error when approving a transaction?
This could happen if network fee rates increased since the transaction was created. Our system attempts to adjust the unspents if this happens, but if there aren’t enough funds to cover the new fee, approval may still fail.

Can I see which unspents are used in each pending approval?
Currently, you can view this information through our API/SDK/Express. While this feature isn’t available in the UI just yet, let us know if that visibility would be useful for your team!

Better Performance, Better Experience

With this new update, BitGo continues to enhance the reliability, flexibility, and efficiency of your transaction process. By eliminating double-spend errors and supporting concurrent transaction management, we’re focused on making your transaction workflows faster and more effective.

Have Questions?

If you have any inquiries or need assistance, don't hesitate to reach out by emailing [email protected]

About BitGo

BitGo is the leading infrastructure provider of digital asset solutions, offering custody, wallets, staking, trading, financing and settlement out of regulated cold storage. Founded in 2013, BitGo is the first digital asset company to focus exclusively on serving institutional clients. BitGo is dedicated to advancing a digital financial services economy that is borderless and accessible 24/7. With multiple Trust companies around the world, BitGo is the preferred security and operational backbone for more than 1,500 institutional clients in 50 countries, including many of the world’s top brands, cryptocurrency exchanges and platforms. BitGo also secures approximately 20% of all on-chain Bitcoin transactions by value and is the largest independent digital asset custodian. For more information, please visit www.bitgo.com.


©2024 BitGo Inc. (collectively with its affiliates and subsidiaries, “BitGo”). All rights reserved. BitGo Trust Company, Inc., BitGo Inc., and BitGo Prime LLC are separately operated, wholly-owned subsidiaries of BitGo Holdings, Inc., a Delaware corporation headquartered in Palo Alto, CA. No legal, tax, investment, or other advice is provided by any BitGo entity. Please consult your legal/tax/investment professional for questions about your specific circumstances. Digital asset holdings involve a high degree of risk, and can fluctuate greatly on any given day. Accordingly, your digital asset holdings may be subject to large swings in value and may even become worthless. The information provided herein is not intended for distribution to, or use by, any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation. BitGo is not directing this information to any person in any jurisdiction where the publication or availability of the information is prohibited, by reason of that person’s citizenship, residence or otherwise.