SPV Channels opens up new mobile app possibilities with v1.1.0 release

SPV Channels opens up new mobile app possibilities with v1.1.0 release

The Bitcoin SV Infrastructure Team this week released v1.1.0 of SPV Channels CE, bringing functionality to mobile devices and allowing a new range of mobile applications for BSV.

SPV, or simplified payment verification, was detailed in Satoshi Nakamoto’s original Bitcoin white paper in 2008 and is vital to scaling the network. It allows transactions to be verified and double spends prevented without participants needing to download a complete record of the Bitcoin blockchain.

For this to happen properly, participants on the Bitcoin network (including merchants, transaction processors, customers and others) to have a way to transmit and receive secure messages between their devices—even if one happens to be offline at the time a message was sent.

This latest update brings SPV Channels to iOS and Android devices, and includes software development kits (SDKs) and mobile client libraries for both operating systems. It uses the Firebase Cloud Messaging service, and saves mobile devices resources since applications no longer need to actively query the network for updates.

First released in October 2020, SPV Channels was described as a “nano service” and “similar to IMAP email” by nChain CTO and Bitcoin SV Instrastructure project technical director Steve Shadders. The always-on service allows outbound messages, encrypted end-to-end at the application level, to be transmitted to devices even if the receiver is offline some of the time.

“When we first released SPV Channels to the world last October, we proved the viability of the service itself and demonstrated how these new capabilities could be used to create desktop applications that leverage the service,” Shadders said of this week’s update.

“We saw real potential and utility for this service if it could be effectively integrated into mobile applications, but to create the best user experience possible and ensure that it was resource-efficient, delivering this functionality required a mechanism to natively integrate with push notifications on mobile. With today’s release, the Bitcoin SV Infrastructure Team have delivered that functionality with a readymade SDK, introducing all-new functionalities for mobile devices and strengthening the Bitcoin network’s ability to deliver true peer-to-peer transactions.”

SPV messages operates over private channels, allowing a merchant to construct a transaction and send it to a customer, who then pays. The merchant sends the transaction to a processor via mAPI, a process which also has built-in double spend protection.

SPV Channels includes the Channels API and Messages API, which can be incorporated into Bitcoin applications. Messages allows anyone to write, receive and delete messages, as well as mark them read/unread and send/receive push notifications. The Channels API is secured by account credentials, letting account holders create, list or delete Channels, obtain information about them, and other functions. Ordinary customers don’t need to have accounts for one-off purchases.

Bitcoin creator Dr. Craig S. Wright has repeatedly called for application developers to use SPV functionality in their services, saying this is the way Bitcoin was always supposed to work. He has also suggested SPV functionality extends way beyond simple payment transactions, and can even be use to process/verify stages in a contract.

More information about SPV channels and how to use them properly is on the Bitcoinsv.io Developer Tools page, and on GitHub.

New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.

[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]
[id^="_form"]
[id^="_form"]
[id$="_submit"]
[id$="_submit"]
[^;]
[^;]
[?&]
[?&]
[^&#]
[^&#]
[(d+)]
[(d+)]
[elem.name]
[elem.name]
[+_a-z0-9-'&=]
[+_a-z0-9-'&=]
[+_a-z0-9-']
[+_a-z0-9-']
[a-z0-9-]
[a-z0-9-]
[a-z]
[a-z]
[el.name]
[el.name]