Practical overview
When it fits
Use it when you need a configurable, local development and testing setup rather than a production network deployment.
Who it is for
- Developers building or testing applications that connect to Bitcoin or Lightning services.
- Teams that need a local environment for experimenting with LND, C-Lightning, Eclair, Elements/Liquid or Electrs.
Documented uses
- Run Bitcoin and related services in a controlled regtest environment.
- Exercise Lightning invoice and payment flows between local nodes.
- Test an application's interaction with Electrs or listen for invoice notifications.
- Generate local transaction activity to explore Bitcoin fee estimates.
Requirements & limits
The project is a public GitHub repository licensed under MPL-2.0. Docker with Compose is required; the README's examples use jq for JSON parsing.
- The stack runs in regtest mode, which is intended for development and testing.
- Elements/Liquid and its related nodes are optional; the README gives separate startup and wallet commands.
- The README lists precompiled images for AMD64 and ARM64 and notes manual builds may be needed for other architectures.
- Ports and daemon configuration can be changed in the .env and Docker Compose files.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Start a Bitcoin regtest environment with Electrs
Bring up Bitcoin and Electrs, initialize the default Bitcoin wallet, and generate regtest blocks.
Before you start
- Docker with Compose
- A terminal in the Bitcoin Stack project folder
- The repository's provided CLI tool, bin/stack
Steps
Run
bin/stack up -d bitcoin electrs.Create the default wallet with
bin/stack bitcoin -named createwallet wallet_name=default descriptors=false.Set the wallet seed using the README's example command,
bin/stack bitcoin sethdseed true cSXteaZPxiDNEjtsgMhDKik5CL6YUc2hrEdkm51DrL85873UUFiQ.Generate 101 blocks with
bin/stack bitcoin generate 101, then check the containers with the command below.docker ps -a
Expected outcome
A Bitcoin regtest node and Electrs are started, and the example wallet has generated blocks.
Guide limitations
- The project is intended only for development and testing, not production deployments.
- The README says nodes sync after the first Bitcoin and Elements regtest blocks are generated.
Simulate an LND payment over local channels
Exercise an AMP payment from the Alice LND node to Bob after opening channels in the local regtest setup.
Before you start
- Docker with Compose
- A running Bitcoin Stack environment with Alice and Bob LND nodes
- The project CLI tool, bin/stack
- jq for extracting the payment request from JSON
Steps
Open channels from Alice to Bob using the documented
bin/stack alice channelto bobcommands and amounts.Create a Bob invoice and extract its payment request with
BOB_INVOICE=$(bin/stack bob addinvoice 5275000 | jq -r '.payment_request').Pay the invoice using
bin/stack alice payinvoice --amp -f $BOB_INVOICE.Inspect the channel lists with
bin/stack alice listchannelsandbin/stack bob listchannels.
Expected outcome
The example simulates an AMP invoice payment between the two local LND nodes and provides commands to inspect their channels.
Guide limitations
- The README frames the environment as development and testing only.
- This workflow depends on channels being opened before the payment.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- NGUtech/bitcoin-stack · Official homepage title · retained in its source language

