BitcoinSV

Build on Bitcoin SV - Getting Started

Build on BSVBuild on Bitcoin SV - Getting Started

Bitcoin SV is the only blockchain dedicated to achieving massive scale to support global usage and enterprise-level applications of all types. BSV is restoring the original Bitcoin protocol and intends to keep it stable – to enable developers and businesses to build with confidence that their applications will not be disrupted in the future.

Bitcoin SV enables the unique value propositions of micropayments, new data marketplaces on the blockchain, and a new vision of a better Internet that empowers value in user data. With these unique features, BSV will enable use cases and business models the world has never seen before.

Check out BuildonBSV.com which offers a great overview for getting started for any developer or business. You can find over 10 informative tutorials for how to start building on BSV.

Technical development in the BSV ecosystem is growing rapidly. There are already over 400 applications, tools and protocols published for developers and enterprises to use on BSV.

Find directories with BSV development resources here:


BSV Network Layers

You can imagine the Bitcoin SV network as operating on at least three layers.

  • The network layer represents the base, peer-to-peer network where blocks are filled with data transactions and relayed to other participants.
  • The Metanet protocol lies atop the network layer and defines a standard on how data and transactions can be related to each other, providing a stable structure for applications and services to build from. It enables the concept of a better, more commercial Internet powered by data and activity on the BSV blockchain.
  • The application layer is made up of services offered leveraging Bitcoin SV in any way, for payments and/or data transactions.Application Layer

Network Layer

The Bitcoin SV network consists of peer-to-peer transactions using the Bitcoin protocol. The protocol defines how data [whether transfer of Bitcoin monetary value, other data or both together] are sent from A to and establishes the ruleset for how transactions can be constructed. The UTXO model provides a flexible means of recording ledger entries for efficient validation and querying.

Metanet

“The Metanet is a global protocol and framework, designed by Dr. Craig Wright, for structuring and facilitating the on-chain internet for the Bitcoin SV blockchain.” – source.

The Metanet protocol defines how transactions can be related to each other via a tree structure on top of the base network. Transactions in this layer can have 0 or 1 parents, but many children. The Metanet is structured similarly to a home page on the Internet (parent) that has many clickable links below it (children) that lead further down into the site. The difference is that the Metanet sits atop the blockchain.

Browse the beginnings of many Metanet applications easily by visiting: https://www.agora.icu/

Jack Davies – Researcher at nChain blog series on Metanet:

https://medium.com/nchain/edge-cases-the-metanet-blog-41b608c8fe67

Jack Davies presentation at CoinGeek Toronto on the Metanet:

https://www.youtube.com/watch?v=8PpRoiVIj64

_unwriter Medium post on the vast potential of implementing the Metanet protocol:

https://medium.com/@_unwriter/the-metanet-starts-84f255a65782

Application Layer

Developers should not need to know much about the Bitcoin protocol or Scripting language to build great applications on BSV. An application layer will create easy-to-use interfaces between what businesses and developers want to build, and the more complicated Bitcoin network mechanics that lie “under the hood.” Programs can leverage the money features, data structures and even each other with Bitcoin SV – since the protocol enables a global ledger for anyone to work on, the potential for interoperability between applications is unprecedented. Programs no longer need to operate solely on servers and their own databases, they can interact with other applications using the same ledger.


Enterprise Blockchain Applications

Bitcoin SV is the that can satisfy enterprises needs with massive scaling, a stable protocol and a regulation-friendly ecosystem. For big businesses looking to build enterprise-class applications on BSV, here are key resources:

Faiā

Faiā is a Bitcoin integration consultancy firm supported by community centric design based in the Asia-Pacific region. The company is named after the Samoan word for “bridge” or “a natural feature that spans a divide”. Faiā helps enterprises and business integrate Bitcoin SV technology into their tech stack.

nChain

nChain is the global leading research, development and advisory firm for blockchain technology, and provides support if an enterprise is looking to leverage BSV in their business. nChain has one of the largest blockchain patent portfolios in the world and has committed to make key assets from that portfolio available for free usage on the BSV blockchain. nChain has also built a business services team that is skilled at partnering with enterprises to help implement blockchain applications and other solutions that leverage nChain’s valuable intellectual property. nChain’s team is especially well-suited to help businesses build on BSV because its team developed and maintains the Bitcoin SV Node software, designed the Metanet protocol, and provides leadership in the BSV ecosystem. nChain is a go-to resource for advice when it comes to integrating your business processes with Bitcoin SV.

UNISOT

UNISOT (Universal Source of Truth) aspires to build a platform for supply chain management, payments and general data interchange between business by taking advantage of the robust properties of the BSV blockchain. By companies collaborating on one data ledger, they can have visibility into the real-time status of other companies’ transactions such that they can respond more efficiently to one another. This includes but is not limited to supply chains, ordering, payments and traceability. Significant cost savings can occur as a result since businesses no longer need to spend as much time troubleshooting issues or dedicating resources to manually communicate to each other.

MetaStreme

MetaStreme enables applications to transact at scale without needing to learn how Bitcoin works. Integrators do not need to manage UTXOs or addresses themselves, they can provide data to MetaStreme to handle processing for them. Metastreme is capable of handling high volumes, any transaction type and various fee rates. They offer a high-level, simple API for clients to interact with.


Tokenization

In the blockchain world, tokenization is the concept of issuing a digital token to represent real world assets such as stocks, bonds, real estate ownership as well as event and transportation tickets, loyalty points, casino chips and much more.

BSV provides an ideal platform for tokens for two reasons. First, BSV’s massive scaling roadmap supports the throughput capacity needed to support enterprise-level token needs, while keeping transaction fees extremely low (small fractions of a U.S. cent). Second, BSV stakeholders support a regulation-friendly ecosystem, and that includes support of token protocols that make it easy for token issuers to comply with securities, financial asset, and other laws of their governing jurisdictions.

Token Layers Explained

Tokenization solutions generally follow one of three ideologies:

Layer 0 (NULL)

Layer 0 solutions tie tokens to satoshis, meaning they are completely UTXO-based, have full Script capability, and require no 3rd-party validation to execute. These tokens are permission less, meaning users can transact amongst themselves without requiring another validator. Tokens are just Bitcoins, thus are enforced by the miners and protocol.

Developers want to implement Layer 0 tokens if no 3rd party validator is required and want users to transact freely amongst themselves – which implies the developer has no requirement to control how tokens are spent.

Layer 0 protocols: STAS tokens, Elas Digital

Layer 1

Layer 1 solutions generally are UTXO-based yet embed metadata (including balances) about the token on-chain. 3rd party agents are required to enforce spends and validity. Layer 1 tokens are still permission less but require validation by the senders and receivers to ensure they have the true state of the token. Since Layer 1 tokens are UTXO-based, they do have full Bitcoin script capability.

Developers want to implement Layer 1 tokens if they require complex data structures (ex. Non-fungible tokens) and some external controls while still permitting peer to peer transfers.

Layer 1 protocols: Run, SuperAsset, Fabriik, sCrypt

Layer 2

Layer 2 solutions are not tied to UTXOs, meaning transactions are fully validated by off-chain agents. Layer 2 tokens do not take advantage of Bitcoin Script and cannot be transacted peer to peer as the 3rd party agent is required to permit each transaction. Metadata and token balances could be stored on or off chain.

Developers want to implement Layer 2 solution if they want to maintain full control over spends and require strict compliance and regulation in how the tokens are defined, minted, and transferred.

Leading token protocols available on BSV include:

Tokenized

Tokenized defines a platform and protocol where issuers and users can create, manage, and trade tokens leveraging built-in smart contracts. It operates solely on BSV. Two major components are provided: a smart contract autonomous agent service and a wallet that implements the protocol. Contrary to other token platforms (such as ERC-20 on the Ethereum network), Tokenized seeks to work within the law and be regulatory compliant, easing concerns about potential legal hurdles.

Run on Bitcoin

While the Run platform is not public yet, objects on the platform are known as Jigs which are Javascript objects/classes defined on-chain. Run implements tokens natively (where tokens are a special type of Jig) with all base functions such as the ability to send, mint and combine tokens being standard. Run leverages BSV’s UTXO model to leverage Bitcoin’s scalability and establish inherent ownership of the Jigs.

TAAL – STAS tokens

STAS tokens propose a Layer 0 or Layer-NULL solution that peg satoshis to a unit of fiat currency. 1 satoshi would represent $0.01 for example. Since tokens are represented as satoshis, they take advantages of all the native properties of Bitcoin such as miner-validation and full Bitcoin Script capability. Only minor changes are needed by wallets to interpret balances, and logic to map satoshis to fiat units. The value proposition of the protocol is minimal effort for potential mass adoption since the existing financial system can transact in the same units yet gain all the advantages of using the Bitcoin ledger.

Fabriik

Fabriik implements a token protocol that is a hybrid of Tokenized and sCrypt’s Layer 1 tokens. The tokens are UTXO-based yet embed metadata in each transaction similarly to Run. Fabriik has a user interface to view, mint and send tokens to paymails. The Fabriik platform intends to be a one-stop shop for tokenization and support other BSV token protocols.

Elas Digital

Elas Digital tokens are a Layer 0 that seek to leverage the full potential of Bitcoin Script by defining the token details upfront via the minting transaction. Each subsequent spend are simply Bitcoin transactions, requiring no off-chain validation. Subledgers for tokens can be defined in this manner, like tickets, game items or fiat currency. Elas tokens are fully peer to peer and are customizable.

SuperAsset

SuperAsset is a proposal and protocol for both fungible and non-fungible tokens, based on the concept of colored-coins. SuperAsset tokens are UTXO-based and backed by the satoshi amounts initially locked in the contract. SuperAsset intends to be the most scalable protocol with various techniques proposed to mitigate common issues (such as spoofing and scaling challenges) across all token solutions.


Smart Contracts

Bitcoin as has a robust programming language named Script, where simple yet powerful smart contracts can be written. Script is implemented in a stack-based, Forth-like language, the conditions for transferring Bitcoins can be developed similar to Ethereum’s Solidity.

Examples include locking up Bitcoins until a certain date, spend conditions be dependent on supplying a secret value by a part, executing a threshold of Proof of Work and much more. Prior Bitcoin developer groups restricted those capabilities, but Bitcoin SV has finally unlocked the full power of Bitcoin Script – including to enable smart contracts.

Below are some tools that can be used for smart contract development on BSV.

sCrypt is a web-based integrated development environment (IDE) where developers can implement low-level Bitcoin script in a higher-level programming language, then extract those scripts and leverage them in their code elsewhere. The IDE has standard features such as debugging, compilation and stack management. This enables developers to write smart contracts in Bitcoin script in a much more familiar language instead of needing to learn a new one.

Bitcoin|Computer is a library for running smart contracts in JavaScript, includingon BSV. Smart contracts can be deployed on-chain via functions in JavaScript, then loaded by other entities and verified. Ownership is native, as well as sending money (Bitcoin SV) and managing tokens.


Blockchain Explorers

A blockchain explorer is an interface to a Bitcoin node where information about all blocks mined, transactions and addresses can be viewed, aggregated or extracted. Other information about the Bitcoin SV network can be viewed such as current hashrate, price and difficulty. Optionally block explorers may provide APIs for developers to interface with in order to query and broadcast transactions against from their applications.

WhatsOnChain is a BSV-exclusive block explorer that has all the standard features of a blockchain explorer as mentioned above. They have also implemented a robust public API that developers can hook into – as well as Testnet and STN support. Developers can query various statistics, get address balances and more.

Other blockchain explorers which support BSV include:


BSV Developer Tools

Many BSV development tools have been created with the intention of assisting developers to streamline their application development and encourage interoperability across services. As Bitcoin SV has grown, more programmers have released their own tools in order to create a robust ecosystem.

Here are resources sites where BSV applications and developer tools are added or tracked:

https://bsvdevs.com/

https://www.agora.icu/

https://metastore.app/

In addition to those general resource sites, here are more specific resources:

_unwriter

Unwriter is a pseudonymous BSV developer who has built many plumbing tools that simplify application development. His New York based company Planaria Corp has developed too many to list, so here are articles that summarize his tools at a high level:

https://coingeek.com/_unwriters-tools-explained-practical-use-cases-reviewed/

https://coingeek.com/unwriters-tools-explained-use-cases-reviewed-part-2/

https://coingeek.com/unwriters-tools-explained-use-cases-reviewed-part-3/

Payment Buttons and Mechanisms

Money Button provides a simple payment API that developers can easily integrate into their web page, store or application. Users of the service can simply swipe to generate a BSV transaction, deferring risk, custody and responsibility from the service provider to the product user. This results in great cost savings in the development and maintenance of businesses.

RelayX provides a payment API that implements an API for processing payments in Bitcoin SV.

Datapay is a library where you can broadcast BSV transactions in Javascript in only 4 lines of code. This Javascript library enables different types of transactions so not only can money be sent, but data as well.

Proxypay is a library for building complex transactions that can be broadcasted from any wallet. The advantage is to not limit users into using a specific wallet in your application or website.

Paypresto is a non-custodial payment service that supports complex transaction types, allowing users to pay with their preferred wallet.

Frameworks

TXQ - self-hosted Bitcoin SV transaction publisher, storage and UTXO indexer.

Metastreme - High-level API endpoints to send data, scripts and fetch transaction status and details.

Bitbus - A robust HTTP API endpoint to make flexible Bitquery's against in order to receive a stream of confirmed transactions.

Operate is a toolset and protocol where developers can publish functions on-chain named ‘Ops’, implemented in the programming language Lua.

Hummingbird is a Javascript library to interface directly with a remote Bitcoin SV node for optimal transaction processing and assist managing state machines in your application.

APIs

MatterPool provide a robust infrastructure platform where developers can perform various API calls to manage UTXOs, broadcast transactions, query address balances and more. MatterPool offers SDKs, libraries and tools to help developers manage their transactions.

Electrum ECIES is a JS/Golang library to encrypt and decrypt data simply in only 1 line of code.

Metaglue is a platform for building Metanet applications, accounting for standard wallet functionality and structuring data.

Planter is a JS library for creating, managing and traversing Metanet nodes.

Polyglot is a Python library for interacting with Bitcoin protocols.


Libraries

Many node software libraries have been created enabling a developer coming from any programming language to hit the ground running. Bitcoin SV’s stable protocol enables base libraries in different languages to be built since developers can count on the fact that radical changes will not disrupt their work. Higher level development libraries have been built to assist streamlining application development and provide robust functionality.

Base Layer Libraries

Many code libraries have been built to enable applications to be built on top of BSV. These libraries serve to abstract low-level Bitcoin protocol functions to simple methods that developers can reference when building out their application.

The Nakasendo SDK [from nChain] serves to abstract not only lower level Bitcoin protocol functions but advanced cryptographic techniques such as encryption and threshold signatures so that developers can implement this functionality more easily. The SDK will be available in C++, JavaScript, and python.

BSV JavaScript library developed by Ryan X. Charles and the Money Button team is a comprehensive toolset for managing, building, signing and broadcasting Bitcoin SV transactions.

Bitsv is a library for similar functionality as the BSV library, implemented in python.

bitcoinj-sv is an (unfinished) Java implementation of the Bitcoin SV protocol.

Rust-SV is a Rust implementation of the Bitcoin SV protocol.

bsvd – Golang implementation of the Bitcoin SV protocol.

go-bitcoin is a wrapper library to the Bitcoin SV RPC.

KzBsv is a work in progress C# library for Bitcoin SV.

Gigamonkey – A C++ library with basic Bitcoin SV functions.

BSV-ex is a Bitcoin SV library implemented in Elixir.

bsv-minimal is a lean reimplementation of the BSV library in Javascript, optimized to process big blocks efficiently.

dartsv - is a Bitcoin library for the Dart language, built in line with the ideals of Bitcoin SV – on-chain scaling, unlocked scripting, and original protocol implementation. A guide for this library is available here.

Application Layer Libraries

Twetch SDK is a JavaScript library that has a CLI (Command Line Interface), built-in wallet and API for interacting with the social media platform.

BitcoinFiles is a JS library that abstracts the interaction with the B:\ files protocol. Developers can easily create and query files, while also being able to sign files with the AIP (Author Identity Protocol).

Handcash Connect is an SDK that seeks to simplify Bitcoin development. The SDK makes common functions available via a high-level API for developers to interact with.

TonicPow is an ad platform and framework enabling peer-to-peer advertising where promoters can offer advertisements and incentivize curation by paying per click in Bitcoin SV. TonicPow have various development tools that can be easily integrated in your website.

BitBtn is a UI button for interacting with Bitcoin SV wallets written in pure JavaScript.


Testnets

Testnets operate as a separate BSV network that has all the same functionality as the Mainnet, except coins transacted on them have no value. Testnets serve to provide a stable testing environment for applications such that developers do not have spent actual BSV coins before deploying their service to the Mainnet.

WhatsOnChain has a testnet block explorer with much of the same functionality as their Mainnet one.

Bitcoin SV Scaling Test Network (STN)

The BSV Scaling TestNet operates specifically to enable testing of larger block sizes and high sustained transaction volume. The STN was created in order to segregate network scaling testing from the “normal” testnet whose purpose is for application development. This network is necessary to achieve the massive scale that Bitcoin SV intends to achieve.


Hard Fork Updates

Find the latest information about the BSV protocol that will impact development:

Genesis Hard Fork Upgrade

The Genesis Hard Fork Upgrade was the biggest consensus hard fork in Bitcoin history and happened on February 4th, 2020 – which is 11 years, 1 month and 1 day from the date Bitcoin’s Genesis block was created on January 3, 2009.

Genesis Hard Fork information/resources are available here:

https://bitcoinsv.io/genesis-hard-fork/

Genesis Upgrade Specifications on GitHub:

https://github.com/bitcoin-sv-specs/protocol/blob/master/updates/genesis-spec.md