Starting the Node
The primary command to run a Core Lane node isstart. This launches the JSON-RPC server and begins scanning Bitcoin blocks for Core Lane transactions.
Basic Start Command
Start Command Options
Bitcoin RPC URL for reading blockchain data
Bitcoin RPC username for read operations
Bitcoin RPC password for read operations
Optional separate RPC URL for write/wallet operations (defaults to read URL)
Bitcoin RPC username for write operations (defaults to read user)
Bitcoin RPC password for write operations (defaults to read password)
Bitcoin block height to start scanning from. Only applied on fresh start; ignored when resuming from saved state.
HTTP server bind address. Use
0.0.0.0 to accept connections from any interface.HTTP server port for JSON-RPC API
BIP-39 mnemonic phrase (not recommended - visible in process list)
Path to file containing mnemonic phrase (recommended)
Electrum server URL for non-regtest networks (e.g.,
ssl://electrum.blockstream.info:50002)Sequencer RPC URL for forwarding
eth_sendRawTransaction callsEthereum address receiving priority fees. Defaults to Anvil test address if not specified.
Enable on-demand polling mode. Block scanning only occurs when triggered via
POST /do_poll.Operating Modes
- Standard Mode
- On-Demand Polling
- Derived Mode
- Espresso Mode
Standard Bitcoin Anchor Mode
Default mode where Core Lane reads taproot DA from Bitcoin blocks:- Scans Bitcoin blocks every 10 seconds
- Processes taproot transactions with Core Lane bundles
- Builds Core Lane blocks from Bitcoin anchors
- Serves JSON-RPC on configured port
Wallet Management Commands
Create Wallet
Generate a new BIP-39 mnemonic and wallet database:Network:
bitcoin, mainnet, testnet, testnet4, signet, or regtestRestore from existing mnemonic instead of generating new one
Only generate and output mnemonic without creating database file
Perform initial blockchain sync with Electrum server (for non-regtest networks)
Get Wallet Address
Retrieve a receive address from your wallet:Check Bitcoin Balance
Query wallet balance:Transaction Commands
Burn BTC to Core Lane
Create a burn transaction to mint tokens on Core Lane:Amount to burn in satoshis (1 BTC = 100,000,000 sats)
Target Core Lane chain ID
Recipient Ethereum address on Core Lane
Bitcoin network
Send Transaction
Broadcast a raw Bitcoin transaction:Send Bundle
Send a bundle of transactions with optional sequencer payment:Raw transaction hex strings (specify multiple times for bundle)
Recipient for sequencer payment
Bundle marker:
head (priority) or standardStore Blob
Store arbitrary data on Core Lane via the blob storage system:Core Lane RPC URL
IntentSystem contract address
Private key for signing the transaction (hex format with 0x prefix)
Path to file containing data to store
Maximum fee per gas unit (in wei)
Maximum priority fee per gas (in wei)
Blobs are stored on-chain and can be referenced in intents via their hash. Useful for storing program code or large intent parameters.
Bitcoin Cache Server
Run a caching Bitcoin RPC proxy for improved performance:Cache server bind address
Cache server port
Directory for cached blocks
Upstream Bitcoin RPC URL
Disable RPC authentication requirement
HTTP block archive for historical data
Initial block count for cache warmup
Disable fetching from block archive
S3 bucket name for block storage
S3 region
Custom S3 endpoint URL
Wallet Management
Create Wallet
Create a new BDK wallet database with a mnemonic:Network:
bitcoin, testnet, testnet4, signet, or regtestOptional mnemonic phrase to restore existing wallet (12 or 24 words)
Only generate and output mnemonic without creating database file
Electrum server URL for non-regtest networks. Performs initial full scan during creation.
wallet_<network>.sqlite3).
Get Wallet Address
Retrieve the wallet’s receiving address:Network of the wallet to load
Mnemonic phrase (not recommended - visible in process list)
Path to file containing mnemonic phrase (recommended)
Get Bitcoin Balance
Check wallet’s Bitcoin balance:Bitcoin RPC URL
Bitcoin RPC username
Bitcoin RPC password
Electrum server URL (e.g.,
ssl://electrum.blockstream.info:50002)- Total balance
- Confirmed balance
- Unconfirmed balance
- Amounts in both satoshis and BTC
Construct Exit Intent
Create an AnchorBitcoinFill intent for withdrawing to Bitcoin L1:Destination Bitcoin address
Amount in satoshis to withdraw
Maximum fee in satoshis willing to pay solver
Unix timestamp when intent expires
intent() call.
Monitoring and Logs
Log Levels
Control logging verbosity withRUST_LOG:
Health Check Endpoint
When running via Docker with Fly.io configuration, health checks are available:Metrics
Core Lane tracks operational metrics:- Reorgs detected: Count of blockchain reorganizations
- Total sequencer payments: Cumulative priority fees (in wei)
- Last block processing time: Duration of last block processing (ms)
- Total burned amount: Base fees burned via EIP-1559 (in wei)
State Management
State Persistence
Core Lane automatically persists state to disk:- Full state snapshots: Saved after each block
- Delta files: Incremental changes per block
- Metastate: EIP-1559 fee manager and totals
- Chain index: Bitcoin height to Core Lane block mapping
- Tip marker: Current chain tip for crash recovery
State Recovery
On restart, Core Lane:- Reads the
tipfile to determine last committed block - Loads full chain from
chain_index/(blocks 1..N) - Falls back to tip-only restore if index is incomplete
- Resumes scanning from last processed Bitcoin height
Manual State Reset
To reset state and rescan from genesis:Production Deployment
Using Docker Compose
Fly.io Deployment
Core Lane includesfly.toml configuration:
Troubleshooting
Node Won’t Start
Check Bitcoin RPC connectivity:State Corruption
If you see “Failed to deserialize state” errors:Port Already in Use
Wallet Balance Not Updating
For regtest, ensure BDK wallet sync:Next Steps
JSON-RPC API
Interact with your node via JSON-RPC
Development Environment
Set up automated testing environment