Overview
This guide will walk you through setting up a Core Lane node on Bitcoin regtest for local development and testing. You’ll have a fully functional node running in under 10 minutes.This quickstart uses Bitcoin regtest for local development. For testnet or mainnet setup, see Running a Node.
Prerequisites
Before starting, ensure you have:Rust & Cargo
Install via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shDocker
Required for running Bitcoin regtest. Install from docker.com
Git
To clone the repository
8GB+ RAM
Recommended for building and running
Installation
Build the node
Build the Core Lane node binary using Cargo:This will compile the
core-lane-node binary to target/release/core-lane-node.The first build may take 5-10 minutes as Cargo downloads and compiles dependencies. Subsequent builds are much faster.
Build for development (faster compilation)
Build for development (faster compilation)
For faster compilation during development, use debug mode:The binary will be at
target/debug/core-lane-node. Debug builds compile faster but run slower.Start Development Environment
The easiest way to get started is using the provided development environment script:Start the environment
Use the Makefile command to start the complete development stack:This script will:
- Start a Bitcoin regtest Docker container
- Create a BDK wallet with a new mnemonic
- Mine initial blocks to fund the wallet
- Start the Core Lane node
- Begin automatic block mining
What's happening behind the scenes?
What's happening behind the scenes?
The
dev-start command runs scripts/dev-environment.sh, which:- Starts Bitcoin Core 30.0 in regtest mode on port 18443
- Creates a BDK wallet and saves the mnemonic to
.dev-wallets/mnemonic_regtest.txt - Mines 111 blocks to the wallet address (101 for coinbase maturity + 10 buffer)
- Launches the Core Lane node with JSON-RPC on port 8546
- Starts a mining loop that creates new blocks every 10 seconds
Check status
Verify everything is running:You should see:
- Bitcoin container status
- Block height
- Core Lane node status
- Wallet balance
The development environment saves your wallet mnemonic to
.dev-wallets/mnemonic_regtest.txt. Keep this file secure and never commit it to version control.Manual Setup (Alternative)
If you prefer to set up components manually:Try Your First Transaction
Now that your node is running, let’s create a burn transaction to bridge Bitcoin to Core Lane:Create a burn transaction
Use the This burns 500,000 satoshis (0.005 BTC) and mints the equivalent on Core Lane to the specified Ethereum address.
burn command to send Bitcoin to an unspendable address and mint equivalent balance on Core Lane:Available Make Commands
The project includes a comprehensive Makefile with helpful commands:Build Commands
Test Commands
Development Environment
Demo Commands
Stopping the Environment
When you’re done:- Stop the Core Lane node
- Stop the mining loop
- Stop the Bitcoin regtest container
Configuration Options
Thecore-lane-node start command supports many configuration options:
Bitcoin RPC URL for reading blockchain data
Bitcoin RPC username for read operations
Bitcoin RPC password for read operations
Path to file containing 12 or 24 word mnemonic phrase
Electrum server URL (required for mainnet/testnet)
Bitcoin block height to start scanning from
Host for JSON-RPC server
Port for JSON-RPC server
Sequencer RPC URL for transaction forwarding
Sequencer address for priority fee collection
Enable on-demand polling mode (disable automatic block scanning)
Troubleshooting
Build fails with dependency errors
Build fails with dependency errors
Make sure you have the latest Rust toolchain:
Docker container won't start
Docker container won't start
Check if Docker is running:Make sure port 18443 is not already in use:
Node can't connect to Bitcoin RPC
Node can't connect to Bitcoin RPC
Verify Bitcoin RPC is accessible:
Wallet creation fails
Wallet creation fails
Make sure the data directory is writable:Try specifying a custom data directory:
Next Steps
Architecture Overview
Learn how Core Lane works under the hood
JSON-RPC API
Explore the full API reference
Node Configuration
Configure your node for production
Intent System
Create intent-based transactions