// Bitcoin Satoshi Vision
Build on the original Bitcoin
protocol — at scale.
BSV delivers unlimited on-chain scaling, sub-cent fees, and a locked protocol for enterprise applications. Everything you need to build is here — in one place.
1MTPS (Teranode)
$0.0001Avg Tx Fee
~4 GBMax Block Size
99.98%Uptime (since 2022)
Micropayments
Pay-per-use APIs, content, IoT — fractions of a cent per transaction. Economically viable where no other chain is.
live
Immutable Data
Store documents, audit trails, timestamps on-chain forever. No IPFS, no off-chain dependencies.
live
Smart Contracts
sCrypt compiles to native Bitcoin Script. Full Turing-complete execution without EVM overhead.
chronicle ↑
MetaNet Protocol
Build applications where data and identity live on-chain. A new paradigm for internet-scale apps.
experimental
Chronicle Protocol Upgrade
April 7, 2026
Chronicle is the final restoration of the original Bitcoin protocol — reactivating all OP_CODES and removing the last artificial transaction limits. A new CHRONICLE sighash flag (0x20) is introduced. Existing wallets and apps continue to work without changes.
Jan 14, 2026
TestNet Activated
Chronicle rules active on testnet. Developers able to test new opcodes and sighash flag.
Now → Apr 7, 2026
Node Upgrade Window
All operators must upgrade SV Node software. Nodes that don't upgrade fall out of sync at activation.
Apr 7, 2026
MainNet Activation
Chronicle goes live. New opcodes, CHRONICLE sighash, and removed tx limits become available to all transactions that opt in via version or sighash flag.
🔑 What's Changing
✓All original Bitcoin opcodes restored (including OP_CAT, OP_SUBSTR, etc.)
✓Final artificial transaction limits removed
✓New CHRONICLE sighash flag (0x20) introduced
✓Fully backwards compatible — existing txs unaffected
!All node operators must upgrade before Apr 7
📦 Node Upgrade Command
bash
# Download latest SV Node release git pull origin master ./build.sh --upgrade # Verify Chronicle compatibility bitcoin-cli getinfo | grep "chronicle" # Restart with Chronicle config bitcoind -conf=bitcoin.conf -daemon
Quickstart
5 min setupJavaScript
Python
TypeScript
sCrypt
javascript
send-bsv.js
import { PrivateKey, Address, Transaction, Script } from '@bsv/sdk' // 1. Load your private key const privateKey = PrivateKey.fromWIF('your-wif-here') const address = Address.fromPrivateKey(privateKey) // 2. Fetch UTXOs from WhatsOnChain const utxos = await fetch( `https://api.whatsonchain.com/v1/bsv/main/address/${address}/unspent` ).then(r => r.json()) // 3. Build and sign transaction const tx = new Transaction() utxos.forEach(utxo => { tx.addInput({ txid: utxo.tx_hash, vout: utxo.tx_pos }) }) tx.addOutput({ to: 'recipient-address', satoshis: 10000 // 0.0001 BSV — about $0.003 }) tx.sign(privateKey) // 4. Broadcast const txid = await tx.broadcast() console.log(`Sent! txid: ${txid}`)
Never hardcode your WIF private key. The string
'your-wif-here' must be replaced with a value loaded from an environment variable or secrets manager — not pasted directly in source code. Anyone who sees your key can take your funds.Safe pattern:
const key = process.env.BSV_PRIVATE_KEY · Add .env to .gitignore · Test on testnet first using a throwaway key.Install:
npm install @bsv/sdk
python
send_bsv.py
from bitsv import PrivateKey import requests # 1. Load key (mainnet) key = PrivateKey('your-wif-here') # 2. Check balance balance = key.get_balance('satoshi') print(f"Balance: {balance} satoshis") # 3. Send BSV — dead simple outputs = [ ('recipient-address', 10000, 'satoshi'), ] txid = key.send(outputs) print(f"Sent! txid: {txid}") # 4. Write data on-chain (OP_RETURN) data = b"Hello, BSV!" txid = key.send_op_return([data])
Never hardcode your WIF key. Use
os.environ['BSV_KEY'] or a secrets manager. Committed keys in git are instantly exploitable.Install:
pip install bitsv
typescript
micropayment-server.ts
import { PrivateKey, Transaction, P2PKH } from '@bsv/sdk' import express from 'express' const app = express() const PRICE_SATOSHIS = 100 // ~$0.00003 per API call // Middleware: verify BSV micropayment header async function requirePayment(req, res, next) { const txid = req.headers['x-payment-txid'] if (!txid) return res.status(402).json({ error: 'Payment Required', address: MERCHANT_ADDRESS, amount: PRICE_SATOSHIS }) const valid = await verifyPayment(txid, PRICE_SATOSHIS) if (!valid) return res.status(402).json({ error: 'Invalid payment' }) next() } app.get('/api/data', requirePayment, (req, res) => { res.json({ data: "Paid content here" }) })
scrypt
Counter.scrypt
// A stateful counter contract on BSV contract Counter { // State: persisted across contract calls @state int count; // Constructor: initialize counter constructor(int count) { this.count = count; } // Increment and propagate state @method public function increment(SigHashPreimage txPreimage, int amount) { this.count++; // Ensure state is propagated to next output bytes outputScript = this.getStateScript(); bytes output = Utils.buildOutput(outputScript, amount); require(hash256(output) == SigHash.hashOutputs(txPreimage)); } } // Deploy and call from JavaScript: // const counter = new Counter(0) // await counter.deploy(1000) // 1000 satoshis locked // await counter.increment(preimage, 1000)
Install:
npm install scrypt-ts | Docs: scrypt.ioTools & SDKs
official + communitySDKs
APIs & Nodes
Wallets
Smart Contracts
| Name | Language | Description | Status |
|---|---|---|---|
| @bsv/sdk | TypeScript | Official BSV SDK — keys, transactions, scripts, broadcasting | stable |
| bsv (moneybutton) | JavaScript | Mature JS library for BSV wallets and transactions | stable |
| bitsv | Python | Python BSV library — simple send, OP_RETURN, UTXOs | stable |
| go-bt | Go | Go Bitcoin transaction builder — enterprise focused | stable |
| bsv-ex | Elixir | Pure Elixir Bitcoin library with secp256k1 via Curvy | beta |
| bitcoinj-sv | Java | JVM Bitcoin library — supports BSV, SPV wallet capabilities | stable |
| scrypt-ts | TypeScript | High-level smart contract language compiling to Bitcoin Script | active dev |
| Service | Type | Description | Free Tier |
|---|---|---|---|
| WhatsOnChain | REST API | Block explorer + REST API for tx, address, block data | yes |
| GetBlock | RPC | Full node RPC access without running your own node | yes |
| MetaSV | REST API | Full-featured BSV API platform with UTXO indexing | yes |
| Bitbus | REST API | Efficient blockchain crawler — index only what you need | yes |
| BSV Testnet Faucet | Faucet | Free tBSV for testing. Refresh daily. | free |
HandCash
Developer-friendly wallet with SDK for building micropayment apps. Handle-based addressing ($name).
SDK available
Metanet Wallet
Open-source wallet from Project Babbage. BRC-100 compliant, no vendor lock-in, browser extension.
open source
BSV Desktop
Official desktop wallet for testing and development. Supports mainnet + testnet.
official
sCrypt IDE
Browser-based IDE for writing, compiling, and testing smart contracts. Instant deploy to testnet.
→ Open IDE
VS Code Extension
Official sCrypt extension with syntax highlighting, error checking, and one-click deploy.
→ Install
Operate
Write reusable "Ops" — tiny programs that live in transactions. Build composable on-chain services.
experimental
Script Wiki
Full reference for all Bitcoin Script opcodes, commands, and functions. Now updated with Chronicle opcodes.
→ View docs
Script Opcode Reference
Post-ChronicleAPI Reference
WhatsOnChain RESTUse Cases
patterns & examplesFee Calculator
vs other chains
BSV fee rate: 1 sat/byte (~$0.000003 per byte)