Operation types
BRC2.0 extends BRC-20’s inscription model with three new operation types.- Deploy
- Call
- Transact
Inscribe compiled Solidity contract bytecode to Bitcoin. Indexers execute the constructor and assign the contract a Bitcoin-native address.
Deposit and withdraw
BRC2.0 includes a trustless bridge between BRC-20 token state and contract state. No validators, no multisigs, no external dependencies.Deposit
Inscribe a deposit operation. Indexers lock your BRC-20 balance, and the contract receives an equivalent ERC-20-style balance internally.
Use inside contracts
Your deposited tokens are now available to smart contracts. Swap them on a DEX, provide liquidity, use them as collateral, or pass them to another contract.
Tokens can only be withdrawn if the contract properly burns them. The bridge rules are enforced by the same indexer consensus that validates BRC-20 operations — there is no separate bridge contract or authority.
Execution model
When you inscribe a contract call, execution follows this sequence:- Inscription — you inscribe a
callortransactoperation on Bitcoin - Confirmation — the Bitcoin block confirms (~10 minutes)
- Indexer execution — indexers process the inscription and execute the EVM bytecode
- State update — contract storage is updated and events are emitted
- Consensus — all indexers produce identical post-state
BRC2.0 has no mempool for smart contracts — you cannot see pending contract calls before they confirm. This eliminates front-running at the contract level. Inscription-level MEV via Bitcoin fee races still exists, but contracts themselves cannot be sandwiched.
What you can build
BRC2.0 unlocks application categories that are impossible with BRC-20 alone:Decentralized exchanges
Constant-product AMMs (Uniswap-style) with instant swaps inside contracts. No PSBT coordination, no fragmented liquidity across marketplaces.
Lending protocols
Collateralized lending with algorithmic interest rates, liquidations, and risk management — all executed deterministically by indexers.
Yield farming
Staking contracts that reward liquidity providers with programmatic token emissions over time.
DAOs and governance
Token-weighted voting with on-chain proposal execution and timelock mechanisms.
Options and derivatives
Complex financial instruments with automated settlement based on oracle data or Bitcoin state.
NFT marketplaces
Programmable royalties, Dutch auctions, and collection-wide operations.
BRC-20 vs BRC2.0
BRC2.0 is a superset of BRC-20. All BRC-20 tokens can be deposited into contracts and withdrawn back to BRC-20 state. You can start with simple BRC-20 tokens and add programmability when you need it — no redeployment, no wrapping.| Feature | BRC-20 | BRC2.0 |
|---|---|---|
| Operations | Deploy, Mint, Transfer | Deploy contracts, Call functions, Transact |
| Programmability | None (fixed operations) | Full Solidity support |
| Trading | PSBT marketplaces only | AMMs, order books, auctions |
| DeFi | Not possible | Lending, staking, derivatives |
| Execution | Indexer validates JSON | Indexer runs EVM bytecode |
| State model | Token balances only | Contract storage + balances |
| Composability | Cannot combine operations | Contracts call other contracts |
| Block time | ~10 min Bitcoin blocks | ~10 min Bitcoin blocks (instant execution within contracts) |
EVM compatibility
BRC2.0 aims for maximum Solidity compatibility, but there are key differences from Ethereum to understand before you deploy.What works the same
What works the same
Standard Solidity syntax, OpenZeppelin contracts, events and logs, storage operations, and familiar development tools (Hardhat, Foundry, Remix) all work with minimal or no changes.
What is different
What is different
- Block time is ~10 minutes (Bitcoin’s interval), not 12 seconds
- Gas costs differ due to indexer execution rather than validator execution
- Addresses use Bitcoin’s
bc1p...format, not Ethereum’s0x...format - There is no native ETH equivalent
What has limited support
What has limited support
Some time-dependent features work differently due to 10-minute blocks. Certain Ethereum-specific opcodes may have limited support. Check the architecture limitations page before relying on timing assumptions.
Bitcoin-specific precompiles
Bitcoin-specific precompiles
BRC2.0 adds specialized precompiled contracts that give your Solidity code native access to Bitcoin: transaction introspection, UTXO queries, and BIP-322 signature verification. These have no Ethereum equivalent.