Keeping track of unspent transaction outputs (UTXOs) just got faster for services running on the BSV blockchain. WhatsOnChain is implementing a new UTXO set of application programming interface (API) endpoints it developed in-house, replacing the older ElectrumX it described as being “the gold standard for tracking UTXOs on BSV.”
The company is advising services using the old APIs to update their endpoints, as ElectrumX endpoints will be retired in October 2024.
“The new UTXO service and its endpoints support large blocks, transactions with thousands of UTXOs, larger bulk requests, and pagination (not supported by ElectrumX). The service is a lot more stable and flexible, supporting mempool and confirmed transactions separately,” WhatsOnChain wrote in a blog post.
WhatsOnChain launched its own set of API endpoints as a beta in October 2023, this week marks the first official release.
ElectrumX is “a reimplementation of Electrum-Server for a future with bigger blocks,” written mostly by Bitcoin veteran Neil Booth. While it did a stellar job of keeping track of UTXOs on the BSV blockchain, it had not been update since 2021. WhatsOnChain reported it as running into scaling issues as ever-larger blocks and transactions with thousands of inputs and/or outputs appeared.
WhatsOnChain’s new endpoints can return results from queries such as: Confirmed/Unconfirmed UTXOs by Address; Bulk Confirmed/Unconfirmed UTXOS by address (max. 20 addresses per request); Confirmed/Unconfirmed UTXOs by Script; and Bulk Confirmed/Unconfirmed UTXOs by Script. It also accepts similar queries for spent transaction outputs, should anyone attempt a sneaky double-spend.
What are unspent transaction outputs and UTXO sets?
For those wondering why UTXOs are so important, here’s why: The concept of UTXOs is fundamental to the way Bitcoin operates, maintaining accuracy and security on its ledger.
Unlike account-based systems, like traditional banks or Ethereum, Bitcoin does not keep track of a user’s total balances. Instead, it keeps a record of any amount of BSV that’s able to be spent (whatever the size) and who can spend it. The latter is determined by access to the private key corresponding to a UTXO’s public address.
UTXOs are amounts that have not been used as transaction inputs and can be from any point in Bitcoin’s history. Every transaction creates a new UTXO (usually multiple ones). Mining nodes on the network keep a database known as the “UTXO set” and any service running on the blockchain network, like a wallet, must query these records every time there’s a new transaction.
As you can probably imagine, the UTXO set is a large database that gets ever larger by the hour, so the ability to retrieve the correct information as quickly as possible is paramount.
Use cases for blockchain technology are appearing as fast as creative developers can think of them, particularly on BSV, which is capable of running a far wider array of applications. Microtransactions, especially in the millions and billions, will produce a larger number of new UTXOs. Smart contracts, tokens and tokenized assets and other data applications can also create new transactions with hundreds or thousands of new outputs.
With this in mind, we can see why it’s necessary to build and maintain more efficient services to keep access to all this information streamlined and available in a split second. Techniques like Simplified Payment Verification (SPV) make the number-crunching simpler, but projects like WhatsOnChain still must stay ahead of the curve to ensure it all works well.
Watch BSV DevCon 2024: Building real-world solutions for real-world problems