Infrastructure & L2 Config

Development Environment

ComponentDetails
Dev machine (macOS)Node.js 22+, Rust 1.94, Hardhat 3.2, ord 0.27
Bitcoin Core testnet4Remote node via SSH tunnel, rpc:48332, fully synced
ord indexLocal, syncing against testnet4 node
Citrea testnetPublic RPC https://rpc.testnet.citrea.xyz, chain 5115

Citrea Testnet Configuration

SettingValue
RPChttps://rpc.testnet.citrea.xyz
Chain ID5115
EVMShanghai (no Cancun)
CurrencycBTC
FaucetCitrea Discord #faucet
Explorerexplorer.testnet.citrea.xyz

Citrea System Contracts

ContractAddress
Bitcoin Light Client0x3100000000000000000000000000000000000001
Clementine Bridge0x3100000000000000000000000000000000000002
Schnorr Precompile (BIP-340)0x0000000000000000000000000000000000000200

Clementine Bridge

  • Peg-in (BTC → cBTC): send BTC to deposit address → bridge validates via Light Client → mints cBTC
  • Peg-out (cBTC → BTC): burn cBTC → operator pays BTC → dispute via BitVM if needed
  • Testnet: 100-confirmation depth, non-trivial minimum deposit. Use Discord faucet for cBTC.

Quick Start

npm install
npx hardhat compile
npx hardhat test                        # 14 Solidity tests
cd taproot-reader && cargo test         # 68 Rust tests
npx hardhat run scripts/demo-flow.ts    # local demo