Configuration Overview
Core Lane can be configured through:- Command-line arguments (highest priority)
- Environment variables (medium priority)
- Default values (lowest priority)
Global Options
These options apply to all Core Lane commands:Enable plain output mode with no emojis for machine-readable output
Data directory for wallet databases, blockchain state, and block data. Used for storing:
- Wallet databases (
wallet_{network}.sqlite3) - Block state files (
blocks/) - Metastate files (
metastate/) - Chain index (
chain_index/) - Chain tip marker (
tip)
Environment Variables
Mnemonic Configuration
BIP-39 mnemonic phrase for wallet recovery. Used as fallback when
--mnemonic or --mnemonic-file are not provided.Security Note: Using environment variables is more secure than command-line arguments, but --mnemonic-file is recommended for production.Docker Environment Variables
When running Core Lane in Docker (seefly.toml configuration):
HTTP server bind address
HTTP server port for JSON-RPC
Persistent data directory (mounted volume in production)
Bitcoin network:
mainnet, testnet, testnet4, signet, or regtestElectrum server URL for blockchain sync (e.g.,
ssl://electrum.blockstream.info:50002)Bitcoin cache RPC host for faster block access
Bitcoin cache RPC port
Component to start (e.g.,
core-lane for RPC-only mode)Network Configuration
Bitcoin Networks
Core Lane supports all Bitcoin networks:bitcoin/mainnet: Bitcoin mainnet (production)testnet: Bitcoin testnet3 (legacy testnet)testnet4: Bitcoin testnet4 (new testnet)signet: Bitcoin signet (stable testnet)regtest: Bitcoin regression test network (local development)
Network-Specific Settings
Wallet Configuration
Mnemonic Security Levels
Core Lane offers three methods for providing mnemonics (in order of security):File-based (Most Secure)
Store mnemonic in a protected file:✅ Not visible in process list
✅ Can use file permissions
✅ Recommended for production
✅ Can use file permissions
✅ Recommended for production
Environment Variable (Secure)
Set via environment variable:✅ Not visible in process list
⚠️ Visible in process environment
⚠️ Visible in process environment
Wallet Database Paths
Wallets are stored as SQLite databases:./wallet_regtest.sqlite3/data/wallet_mainnet.sqlite3/data/wallet_testnet4.sqlite3
Data Directory Structure
Core Lane organizes persistent data as follows:State Persistence
Core Lane uses crash-safe persistence:- Atomic writes: All writes use temp file + rename + sync
- Tip marker: The
tipfile is the source of truth for restore - Format versioning: Tip includes version byte (current:
4) - State snapshots: Full state saved for each block
- Reorg handling: Can rollback to any previous block
Data Cleanup
If the tip file version changes, all block data is automatically wiped for a fresh start:Bitcoin RPC Configuration
Read vs Write Clients
Core Lane separates Bitcoin RPC operations:Read client: Used for blockchain queries (required)
--bitcoin-rpc-read-url(default:http://127.0.0.1:18443)--bitcoin-rpc-read-user(default:user)--bitcoin-rpc-read-password(required)
Write client: Used for wallet operations (optional)
--bitcoin-rpc-write-url(defaults to read URL)--bitcoin-rpc-write-user(defaults to read user)--bitcoin-rpc-write-password(defaults to read password)
Why Separate Clients?
Separating read and write allows:- Different authentication for safety
- Read-only public endpoints for queries
- Write operations to secured wallets
EIP-1559 Fee Management
Core Lane implements EIP-1559 for dynamic fee calculation:Default Configuration
- Initial Base Fee: 1 gwei
- Max Gas Limit: 30,000,000 gas per block
- Target Gas Usage: 15,000,000 gas (50% of max)
- Base Fee Adjustment: ±12.5% per block based on usage
Fee Burning
Base fees are burned (removed from circulation):- Tracked in
total_burned_amount(metastate) - Priority fees go to sequencer address
- Gas usage affects next block’s base fee
Sequencer Configuration
Ethereum address that receives priority fees from transactions.Default:
0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (Anvil test address #0)⚠️ Production Warning: The default address is for testing only. Always set a custom sequencer address in production.If set,
eth_sendRawTransaction forwards transactions to this sequencer endpoint instead of processing locally.Use this for light client mode where transaction submission is delegated to a sequencer.Operational Modes
On-Demand Polling Mode
Disable automatic block scanning. When enabled:
- Node waits for
POST /do_pollrequests - Useful for testing and controlled environments
- Reduces resource usage when not actively scanning
Derived Chain Modes
Core Lane can operate as a derived chain reading from:- Bitcoin (Default): Reads taproot data from Bitcoin blocks
- Derived Core Lane: Reads from another Core Lane instance via
DerivedStart - Espresso: Reads from Espresso DA via
DerivedEspressoStart
Configuration Examples
Next Steps
Running a Node
Start and operate your Core Lane node
Development Environment
Set up local development with automated testing