bsv/ developer-hub/ overview
Chronicle Upgrade → Apr 7 v1.0.0
// 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 setup
JavaScript
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.io

Tools & SDKs

official + community
SDKs
APIs & Nodes
Wallets
Smart Contracts
Name Language Description Status
@bsv/sdkTypeScriptOfficial BSV SDK — keys, transactions, scripts, broadcastingstable
bsv (moneybutton)JavaScriptMature JS library for BSV wallets and transactionsstable
bitsvPythonPython BSV library — simple send, OP_RETURN, UTXOsstable
go-btGoGo Bitcoin transaction builder — enterprise focusedstable
bsv-exElixirPure Elixir Bitcoin library with secp256k1 via Curvybeta
bitcoinj-svJavaJVM Bitcoin library — supports BSV, SPV wallet capabilitiesstable
scrypt-tsTypeScriptHigh-level smart contract language compiling to Bitcoin Scriptactive dev
ServiceTypeDescriptionFree Tier
WhatsOnChainREST APIBlock explorer + REST API for tx, address, block datayes
GetBlockRPCFull node RPC access without running your own nodeyes
MetaSVREST APIFull-featured BSV API platform with UTXO indexingyes
BitbusREST APIEfficient blockchain crawler — index only what you needyes
BSV Testnet FaucetFaucetFree 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-Chronicle

API Reference

WhatsOnChain REST

Use Cases

patterns & examples

Fee Calculator

vs other chains
BSV fee rate: 1 sat/byte (~$0.000003 per byte)