Bitcoin Layer 1 · OP_NET Smart Contracts

STAKE
BITCOIN.
EARN MORE.

The first auto-compound staking protocol built natively on Bitcoin L1 via OP_NET — no bridges, no wrapped tokens, no Ethereum.

Scroll to explore
0 BTC
Total Value Locked
Bitcoin staked across all tiers on the testnet protocol.
0%
Maximum APY
Best-in-class yield for 180-day lock with auto-compound active.
0
Active Stakers
Wallets currently earning yield on Bitcoin L1.
0BTC
Auto-Compounded
Bitcoin rewards automatically reinvested into staking positions.
// Protocol

How It Works

01
🔌
Connect Wallet

Connect OP_WALLET or UniSat. No Ethereum. No MetaMask. Purely Bitcoin-native using @btc-vision/walletconnect.

02
Choose Tier

Pick a lock period from 7 to 180 days. Longer lock = higher APY. Toggle auto-compound for maximum yield.

03
Simulate & Sign

Every transaction is simulated first via JSONRpcProvider to check for reverts — then you sign with null signers via wallet.

04
Auto-Compound

Rewards are reinvested every 24 hours by the OP_NET smart contract — boosting your effective APY without any action from you.

// Yield Tiers

Choose Your Lock

All tiers include auto-compound. The longer you commit, the more you earn.

7
Days Lock
8.0%
Annual Yield
Auto-compound
30
Days Lock
14.0%
Annual Yield
Auto-compound
90
Days Lock
21.0%
Annual Yield
Auto-compound
0 +25% +50% +100% 0d 45d 90d 180d +112% +74%
↻ Auto-compound ON · 24h intervals
// Auto-Compound

Earn While
You Sleep

0
Private Keys in Frontend
24h
Compound Interval
100%
Bitcoin Native
2
Separated Providers
L1
No Bridges Needed
// Security

Built To
Be Trusted

🔐
Null Signers

Frontend never handles private keys. All transactions are signed exclusively by your wallet via sendTransaction({ signer: null, mldsaSigner: null }).

🔬
Pre-Simulation

Every write operation is simulated via a separate JSONRpcProvider before you ever confirm in the wallet. Reverts are caught before broadcast.

MLDSA Quantum Resistance

OP_WALLET supports quantum-resistant ML-DSA signatures, future-proofing your Bitcoin L1 staking positions.

📡
Separated Providers

Read calls go exclusively to testnet.opnet.org or mainnet.opnet.org. WalletConnect is never used for reads — only for signing.

No Bridges

Native Bitcoin Layer 1 smart contracts via OP_NET. No wrapped BTC, no cross-chain bridges, no custodial risk.

🌐
IPFS Deployed

The frontend is deployed to IPFS and accessible via .btc domains — fully decentralized, censorship-resistant interface.

// Ready to earn

START
STAKING
TODAY

Connect your Bitcoin wallet and begin earning auto-compounded yield on Bitcoin Layer 1.

Testnet available · Mainnet coming soon · No KYC required

// OP_NET Ecosystem

Explore the Ecosystem

OPSTAKE
BTC Staking · Up to 28.4% APY
Auto-compound staking natively on Bitcoin L1. Lock BTC, earn yield, compound daily.
Motoswap
MOTOSWAP
DEX · First Bitcoin AMM
The first decentralized exchange on Bitcoin L1. Swap OP-20 tokens, provide liquidity, earn fees.
Launch Motoswap →
MotoChef Cat
MOTOCHEF
Yield Farm · MOTO Staking
Stake LP tokens and MOTO to earn farming rewards. The OP_NET yield aggregator powered by MotoChef contracts.
Open Farm →
OPScan
OPSCAN
Block Explorer · OP_NET
The official OP_NET block explorer. View transactions, addresses, contracts, tokens, and protocol stats.
Open Explorer →
Protocol Yield Compound Security Docs
MY PORTFOLIO
Total Staked
Est. Earnings
0
Active Positions
Avg. APY
Trade your rewards on Motoswap — the first Bitcoin L1 DEX.
Swap OP-20 tokens, provide liquidity, and earn trading fees.
🔄 Open Motoswap →
Stake BTC
// Choose amount & confirm
🔌

Connect your OP WALLET first to access staking. Your wallet handles all signing — no private keys are ever stored.

// Portfolio
🔄 Swap on Motoswap ↗ View on Explorer →
OP_NET Ecosystem Docs
OPSTAKE · Motoswap · MotoChef · OPScan · OP WALLET — the complete Bitcoin L1 DeFi stack. No bridges. No wrapped tokens. No Ethereum. BTC is gas.

Ecosystem At A Glance

ProjectRoleStatusLink
OPSTAKEBTC Staking — up to 28.4% APY● Live (Testnet)This page
MotoswapFirst Bitcoin L1 DEX / AMM● Livemotoswap.org ↗
MotoChefLP & MOTO yield farming● Livefarm.motoswap.org ↗
OPScanOP_NET block explorer● Liveopscan.org ↗
OP WALLETBitcoin-native wallet + MLDSA● LiveChrome Store ↗
OP_NET ProtocolBitcoin L1 Smart Contract Layer⚡ Mainnet Mar 17, 2026opnet.org ↗

Quick Links

OPSTAKE — BTC Staking
Lock native BTC on Bitcoin L1, earn auto-compounded yield up to 28.4% APY. Powered by OP_NET smart contracts. MotoChef BTC Staking module.

Getting Started

1. Install OP WALLET from the Chrome Web Store. 2. Get testnet BTC from the faucet at opnet-testnet.gitbook.io ↗. 3. Click Connect Wallet on this page. 4. Select your lock tier and click Stake Now.

Yield Tiers

Lock PeriodBase APYCompound BoostEffective APYMin Stake
7 Days8.0%+0.2%8.2%0.001 BTC
30 Days14.0%+0.6%14.6%0.001 BTC
90 Days21.0%+1.2%22.2%0.001 BTC
180 Days28.4%+2.4%30.8%0.001 BTC

Auto-Compound Mechanics

When enabled, the MotoChef smart contract reinvests your earned BTC rewards every 24 hours back into your staking position automatically. No action or gas required. Over a 180-day period, daily compounding transforms a 28.4% simple APY into ~30.8% effective annual yield.

Transaction Flow

Every stake transaction is pre-simulated via a read-only JSONRpcProvider before being sent to your wallet for signing. If the simulation reverts, you never see a signing request. All signing uses null signers — the frontend never holds private keys.

Early Exit & Fees

ActionFeeNotes
StakeNetwork gas only (satoshis)Paid in BTC to Bitcoin miners
Early unstake2.5% of principalAccrued rewards still claimable
Normal unlock0%Full principal + rewards returned
Claim rewardsNetwork gas onlyCan claim without unstaking

View Your Transaction

After staking, your transaction hash is linkable directly on OPScan. The URL format is:

https://opscan.org/tx/{txhash}

// Example (64-char hex transaction ID)
https://opscan.org/tx/a1b2c3d4e5f6...7890abcdef1234
Motoswap — Bitcoin DEX
The first AMM decentralized exchange natively on Bitcoin Layer 1. Swap OP-20 tokens, create liquidity pools, earn trading fees — all without bridges or Ethereum.

What is Motoswap?

Motoswap is the first automated market maker (AMM) DEX built directly on Bitcoin L1 using OP_NET smart contracts. It enables permissionless token swaps between any OP-20 tokens (Bitcoin's equivalent of ERC-20) and native BTC via NativeSwap. The protocol is modeled after Uniswap V2 architecture, adapted for Bitcoin's UTXO model.

Key Features

FeatureDescription
OP-20 SwapSwap any two OP-20 tokens via constant-product AMM pools
NativeSwapSwap native BTC directly with OP-20 tokens — no wrapping
Liquidity PoolsCreate, add, and remove LP positions. Earn 0.3% fee on every swap
LP TokensReceive LP tokens representing your pool share, stakeable in MotoChef
MOTO TokenNative governance/utility token of the Motoswap ecosystem

MotoChef Yield Farming

MotoChef (farm.motoswap.org) is the yield farming aggregator for the Motoswap ecosystem. Deposit LP tokens from Motoswap pools and MOTO tokens to earn farming rewards. Supports both MOTO staking and BTC staking pools.

$MOTO Token

MOTO is the native OP-20 token of Motoswap, available on testnet. It can be obtained from the official faucet and used for governance, staking in MotoChef, and liquidity provision. Get testnet MOTO at opnet-testnet.gitbook.io ↗.

Transaction URLs

Motoswap and MotoChef both provide OPScan links after each transaction. You can also manually look up any transaction:

// Swap transaction on OPScan
https://opscan.org/tx/{64-char-txhash}

// Address / wallet view
https://opscan.org/address/{bitcoin-address}

// Contract view
https://opscan.org/contract/{contract-address}
OP_NET Protocol
The first Consensus Layer on Bitcoin L1 that brings fully expressive smart contracts. Uses WASM execution, Taproot/SegWit/Legacy, UTXO model. No sidechains. No forks. BTC is gas. Mainnet launches March 17, 2026.

How OP_NET Works

OP_NET uses Bitcoin's Tapscript to embed WASM bytecode on-chain. Smart contract logic runs in a WebAssembly VM off-chain and the results are committed back into standard Bitcoin transactions using Taproot inscriptions. Every UTXO can act as a contract state object. No protocol changes or forks required — it works with existing Bitcoin Core.

Key Repos (github.com/btc-vision)

RepoDescriptionStars
example-contractsExample OP-20 token contracts for OP_NET (TypeScript)196 ⭐
opwalletOP WALLET browser extension — Bitcoin-native + MLDSA36 ⭐
opnet-nodeDecentralized OP_NET node (Taproot/SegWit/Legacy)19 ⭐
opnetTypeScript SDK — JSONRpcProvider, getContract, OP-20 ABI16 ⭐
btc-runtimeAssemblyScript BTC runtime for contract development16 ⭐
op-vmRust WASM virtual machine for OP_NET execution7 ⭐

Network Endpoints

NetworkRPC EndpointExplorer
Testnethttps://testnet.opnet.orgopscan.org ↗
Mainnethttps://mainnet.opnet.orgopscan.org ↗
Regtesthttps://regtest.opnet.orgLocal only

OP WALLET — Security

OP WALLET is a fork of UniSat Wallet extended with OP_NET-native capabilities: MLDSA quantum-resistant signatures (Module-Lattice DSA), full OP-20 token support, NativeSwap integration, and Bitcoin L1 smart contract interaction. Install from: Chrome Web Store ↗

Developer API
TypeScript SDK, JSONRpcProvider, contract interaction patterns, and transaction URL references for OPSTAKE and the OP_NET ecosystem.

Install SDK

npm install opnet @btc-vision/transaction @btc-vision/bitcoin

Provider Setup

import { JSONRpcProvider, getContract, OP_20_ABI } from 'opnet';
import { Network } from '@btc-vision/bitcoin';

// Two separate providers — reads vs simulation
const provider    = new JSONRpcProvider('https://testnet.opnet.org', Network.Testnet);
const simProvider = new JSONRpcProvider('https://testnet.opnet.org', Network.Testnet);

Stake Transaction

const stakeContract = getContract(OPSTAKE_ADDRESS, STAKE_ABI, provider, network, userAddress);

// 1. Simulate (separate provider — never wallet)
const sim = await simProvider.simulateTransaction({
  to: OPSTAKE_ADDRESS,
  data: stakeContract.interface.encodeFunctionData('stake', [
    amountSatoshis,   // bigint — BTC in satoshis
    lockDays,         // number — 7 | 30 | 90 | 180
    autoCompound      // boolean
  ]),
  signer: null, mldsaSigner: null
});

if (sim.revert) throw new Error(`Revert: ${sim.revertReason}`);

// 2. Sign & broadcast via OP WALLET (null signers)
const tx = await stakeContract.stake(
  amountSatoshis, lockDays, autoCompound,
  { signer: null, mldsaSigner: null, feeRate: 10 }
);

console.log('Tx hash:', tx.txid);
console.log('OPScan:', `https://opscan.org/tx/${tx.txid}`);

Transaction URL Format

// Transaction detail page
https://opscan.org/tx/{64-hex-char-txhash}

// Address / wallet page
https://opscan.org/address/{p2tr-or-p2wpkh-address}

// Contract page  
https://opscan.org/contract/{contract-address}

// Token page
https://opscan.org/token/{op20-token-address}

OP-20 Token Interaction

import { getContract, IOP20Contract, OP_20_ABI } from 'opnet';

const token = getContract<IOP20Contract>(
  TOKEN_ADDRESS, OP_20_ABI, provider, network, myAddress
);

const balance    = await token.balanceOf(myAddress);
const totalSupply = await token.totalSupply();

// Transfer (with simulation)
const transfer = await token.transfer(recipientAddress, 1000n);
const tx = await transfer.sendTransaction({
  signer: null, mldsaSigner: null,
  refundTo: myAddress,
  maximumAllowedSatToSpend: 5000n,
  feeRate: 10, network
});

Motoswap Swap

// Swap tokenA → tokenB via Motoswap AMM
const router = getContract(MOTOSWAP_ROUTER, ROUTER_ABI, provider, network, myAddress);

const path = [tokenA_address, tokenB_address];
const amountIn = 100_000n; // satoshis equivalent

const swap = await router.swapExactTokensForTokens(
  amountIn, minAmountOut, path, myAddress, deadline,
  { signer: null, mldsaSigner: null, feeRate: 10, network }
);

console.log('Swap tx:', `https://opscan.org/tx/${swap.txid}`);
Security & Audit
OP_NET and OPSTAKE are built with security-first principles: null signers, pre-simulation, MLDSA quantum resistance, IPFS deployment, and open-source code for public verification.

Security Model

PropertyImplementationStatus
Null Signers{ signer: null, mldsaSigner: null }✓ Active
Pre-SimulationSeparate JSONRpcProvider — reverts caught before signing✓ Active
MLDSA / ML-DSAQuantum-resistant signatures in OP WALLET✓ Active
No Private Key StorageFrontend never handles, stores, or transmits keys✓ Active
IPFS DeploymentInterface served from IPFS, accessible via .btc domains✓ Active
Separated ProvidersRead provider ≠ signing provider — prevents read poisoning✓ Active
No BridgesNative Bitcoin L1 — no cross-chain attack surface✓ By Design
Open SourceAll contracts and frontend code on GitHub✓ Public

Audit Status

The OP_NET protocol and OPSTAKE contracts are open-source and publicly verifiable. As the protocol is currently in testnet phase prior to Mainnet launch (March 17, 2026), formal third-party audits are in progress. Smart contract source code is available for community review on GitHub.

ScopeAuditorStatusReport
OP_NET Core ProtocolCommunity ReviewIn ProgressSource Code ↗
OPSTAKE ContractCommunity ReviewPendingExample Contracts ↗
Motoswap AMMCommunity ReviewIn Progressbtc-vision GitHub ↗
OP WALLET ExtensionBased on UniSat (audited)Base AuditedSource Code ↗
btc-runtime (AssemblyScript)Community ReviewIn ProgressSource Code ↗
op-vm (Rust WASM VM)Community ReviewIn ProgressSource Code ↗

Verify Yourself

All OP_NET and OPSTAKE code is open-source. You can independently verify every transaction on OPScan, review smart contract bytecode, and run a full OP_NET node to independently validate state.

# Clone and review OP_NET node
git clone https://github.com/btc-vision/opnet-node

# Review example smart contracts
git clone https://github.com/btc-vision/example-contracts

# Review WASM runtime
git clone https://github.com/btc-vision/btc-runtime

# Run your own OP_NET node
npm install && npm run start

Responsible Disclosure

Found a security vulnerability? Please report it responsibly via Discord (discord.gg/3KQKVcjE) or open a GitHub issue at github.com/btc-vision. Do not publicly disclose exploits before a fix is deployed.

Connect Wallet
Bitcoin L1 · OP_NET Protocol
// Select provider
OP WALLET not installed.  Install from Chrome Web Store →