Documentation
Documentation
Getting Started
Introduction to OP_NET
What is Bitcoin?
Key Concepts and Terminology
What is OP_NET?
How OP_NET Extends Bitcoin
Detailed Architecture
Bitcoin Smart Contracts Explained
Quick Start Guide
Installing the Libraries
Setting Up TypeScript
Configuring Your Environment
Node.js vs Browser Usage
Your First Contract Interaction
Core Concepts
Understanding the Protocol Design
Transaction Types Explained
How Gas Works on Bitcoin
Fee Calculation Methods
Consensus and Block Production
OP_NET vs Metaprotocols
FAQ
Technical FAQ
OP_NET Client Library
Audit Reports
Verichain Reports
Getting Satrted
Overview
Installing the Library
Architecture
Error Handling
General Best Practices
Understanding Providers
What Providers Do
Choosing the Right Provider
Choosing a Network
Provider Abstraction Layer
Provider Best Practices
JSON-RPC Provider
About JSONRpcProvider
Setting Up HTTP Connections
Configuring
Caching
Advanced Techniques
JSON RPC Provider Implementation
Smart Contract Interactions
Interactions Overview
Importing ABI
Contract Types
Contract Code
Instantiating a Contract
Understanding Call Result
Estimate Gas Costs
Simulating a Call
Sending Transaction
Offline Signing
Smart Contract Best Practices
Working with Bitcoin
Get Address Balance
Fetching and Tracking UTXOs
Optimize and Consolidate UTXO
Sending Bitcoin
Batch payment (splitting UTXOs)
Best Practices
Working with Blocks
Get the Current Block Height
Fetch a Block
Fetch Multiple Blocks at Once
Working with Transactions
Fetch a Transaction
Get Transaction Receipts
Broadcasting Transactions
Working with Public Keys
Get Unified Addresses
Fetch Multiple Keys
OP_NET Transaction Library
Getting Started
Overview
Installing the Library
Architecture
Quick Start
Addresses, Wallets and Messages Signing
Fundamentals
Bitcoin vs Ethereum Address Philosophy
Bitcoin Addresses
How Private Keys Generate All Addresses
Quantum Support
Package Requirements
Mnemonic
Wallet Management
Address Class
Address Verification
Message signing
Legacy Addresses (P2PKH)
Introduction
Transaction Structure
Using P2PKH
Script Hash Addresses (P2SH)
Introduction
Transaction Structure
Using P2SH
Native SegWit (P2WPKH)
Introduction
Transaction Structure
Using P2WPKH
Witness Script Hash (P2WSH)
Introduction
Transaction Structure
Using P2WSH
Taproot Addresses (P2TR)
Introduction
Merklized Alternative Script Trees
Transaction Structure
Using P2TR
OP_NET Contract Addresses (P2OP)
Introduction
Using P2OP
Witness Data Authentication (P2WDA)(Experimental)
Introduction
Technical Architecture
Economics
Operational Capabilities
Advanced Considerations
Frontend Integration
Setting Up Your Environment
React (Vite)
Basic examples
Wallet Integration
About Wallet
Introduction
Supported Wallet
Provider Injection
Using WalletConnect
Introduction
Installation
Wallet Detection
Managing Session
WalletConnect Context
Using walletInstance
Event Management
Connecting
Disconnecting
Getting Balances
Getting Wallets Information
Getting Network Information
Switching Networks
Switching Accounts
Signing and Sending Transactions
Signing Messages
OP_WALLET Guide
Setting Up OP_WALLET
Usage
Implementing new Wallet
Introduction
Auto Detection
Connecting and Disconnecting
Utility Functions
Wallet Hooks
Last Steps
Full Example
Hardware Wallet Support
Integration Points
Security Best Practices
Writing smart contracts
Documentation
Github Documentation
Examples and Tutorials
Getting Started Examples
GitHub Examples
Token Standards
OP-20 Tokens
Introduction
Token Metadata
Creating Tokens
Allowance
Allowance by Signatures
Transfer Operations
OP-20 Implementation
OP-20 Standard
OP_721 NFTs
Minting NFTs
Transfer Methods
Approval Management
Token URIs
Collection Metadata
Reservation System
Epochs and Mining
Understanding Epochs
About Epochs
Mining Process
Challenge System
Getting Challenges
Calculating Solutions
Verifying Solutions
Difficulty Adjustment
Submitting Solutions
Preparing Submissions
Signature Requirements
Validation Process
Reward System
OP_NET Node
Setting Up a Node
Installation Guide
Configuration
Audit Reports
Verichain Reports
ABI System
Understanding ABIs
GitHub Documentation
Data Encoding
Binary Operations
Reading Binary Data
Writing Binary Data
Buffer Management
Endianness Handling
Type Encoding
Encoding Primitives
Encoding Arrays
Encoding Structures
Custom Types
Address Operations
Address Maps
Address Sets
Deterministic Collections
Iterator Support
Documentation
Getting Started
Introduction to OP_NET
What is Bitcoin?
Key Concepts and Terminology
What is OP_NET?
How OP_NET Extends Bitcoin
Detailed Architecture
Bitcoin Smart Contracts Explained
Quick Start Guide
Installing the Libraries
Setting Up TypeScript
Configuring Your Environment
Node.js vs Browser Usage
Your First Contract Interaction
Core Concepts
Understanding the Protocol Design
Transaction Types Explained
How Gas Works on Bitcoin
Fee Calculation Methods
Consensus and Block Production
OP_NET vs Metaprotocols
FAQ
Technical FAQ
OP_NET Client Library
Audit Reports
Verichain Reports
Getting Satrted
Overview
Installing the Library
Architecture
Error Handling
General Best Practices
Understanding Providers
What Providers Do
Choosing the Right Provider
Choosing a Network
Provider Abstraction Layer
Provider Best Practices
JSON-RPC Provider
About JSONRpcProvider
Setting Up HTTP Connections
Configuring
Caching
Advanced Techniques
JSON RPC Provider Implementation
Smart Contract Interactions
Interactions Overview
Importing ABI
Contract Types
Contract Code
Instantiating a Contract
Understanding Call Result
Estimate Gas Costs
Simulating a Call
Sending Transaction
Offline Signing
Smart Contract Best Practices
Working with Bitcoin
Get Address Balance
Fetching and Tracking UTXOs
Optimize and Consolidate UTXO
Sending Bitcoin
Batch payment (splitting UTXOs)
Best Practices
Working with Blocks
Get the Current Block Height
Fetch a Block
Fetch Multiple Blocks at Once
Working with Transactions
Fetch a Transaction
Get Transaction Receipts
Broadcasting Transactions
Working with Public Keys
Get Unified Addresses
Fetch Multiple Keys
OP_NET Transaction Library
Getting Started
Overview
Installing the Library
Architecture
Quick Start
Addresses, Wallets and Messages Signing
Fundamentals
Bitcoin vs Ethereum Address Philosophy
Bitcoin Addresses
How Private Keys Generate All Addresses
Quantum Support
Package Requirements
Mnemonic
Wallet Management
Address Class
Address Verification
Message signing
Legacy Addresses (P2PKH)
Introduction
Transaction Structure
Using P2PKH
Script Hash Addresses (P2SH)
Introduction
Transaction Structure
Using P2SH
Native SegWit (P2WPKH)
Introduction
Transaction Structure
Using P2WPKH
Witness Script Hash (P2WSH)
Introduction
Transaction Structure
Using P2WSH
Taproot Addresses (P2TR)
Introduction
Merklized Alternative Script Trees
Transaction Structure
Using P2TR
OP_NET Contract Addresses (P2OP)
Introduction
Using P2OP
Witness Data Authentication (P2WDA)(Experimental)
Introduction
Technical Architecture
Economics
Operational Capabilities
Advanced Considerations
Frontend Integration
Setting Up Your Environment
React (Vite)
Basic examples
Wallet Integration
About Wallet
Introduction
Supported Wallet
Provider Injection
Using WalletConnect
Introduction
Installation
Wallet Detection
Managing Session
WalletConnect Context
Using walletInstance
Event Management
Connecting
Disconnecting
Getting Balances
Getting Wallets Information
Getting Network Information
Switching Networks
Switching Accounts
Signing and Sending Transactions
Signing Messages
OP_WALLET Guide
Setting Up OP_WALLET
Usage
Implementing new Wallet
Introduction
Auto Detection
Connecting and Disconnecting
Utility Functions
Wallet Hooks
Last Steps
Full Example
Hardware Wallet Support
Integration Points
Security Best Practices
Writing smart contracts
Documentation
Github Documentation
Examples and Tutorials
Getting Started Examples
GitHub Examples
Token Standards
OP-20 Tokens
Introduction
Token Metadata
Creating Tokens
Allowance
Allowance by Signatures
Transfer Operations
OP-20 Implementation
OP-20 Standard
OP_721 NFTs
Minting NFTs
Transfer Methods
Approval Management
Token URIs
Collection Metadata
Reservation System
Epochs and Mining
Understanding Epochs
About Epochs
Mining Process
Challenge System
Getting Challenges
Calculating Solutions
Verifying Solutions
Difficulty Adjustment
Submitting Solutions
Preparing Submissions
Signature Requirements
Validation Process
Reward System
OP_NET Node
Setting Up a Node
Installation Guide
Configuration
Audit Reports
Verichain Reports
ABI System
Understanding ABIs
GitHub Documentation
Data Encoding
Binary Operations
Reading Binary Data
Writing Binary Data
Buffer Management
Endianness Handling
Type Encoding
Encoding Primitives
Encoding Arrays
Encoding Structures
Custom Types
Address Operations
Address Maps
Address Sets
Deterministic Collections
Iterator Support
Architecture
Architecture Diagram
Transaction Library Architecture
Key Management
Mnemonic
BIP39 + BIP360
Wallet
Classical + Quantum keys
EcKeyPair
Secp256k1 ops
MessageSigner
Schnorr + ML-DSA
Entry Points
TransactionFactory
Main API surface
OPNetLimitedProvider
UTXO fetching
Script Generators
CalldataGenerator
DeploymentGenerator
MultiSignGenerator
HashCommitment
Generator
Transaction Builders
TweakedTransaction
PSBT construction,
Taproot tweaking, signing
TransactionBuilder<T>
Abstract base: UTXO management,
fee calculation, outputs
Funding
Transaction
BTC transfers
Deployment
Transaction
Contract deployment
Interaction
Transaction
Contract calls
MultiSign
Transaction
Multi-sig ops
CustomScript
Transaction
Custom scripts
Cancel
Transaction
TX cancellation
Consolidated
Interaction Tx
CHCT anti-censorship
Installation
Quick Start
On this page
Architecture Diagram