Regtest Simulation Environment
An architectural overview of Satolink's local multi-chain regtest, Next.js control node, mining triggers, and test asset faucet.
1. Sandbox & Simulation Philosophy
Before launching mainnet transactions, developers and automated suites need a predictable, zero-cost sandbox. Satolink integrates a local Regtest Environment based on the Breez Liquid SDK's specification. This simulates the full transaction cycle—including Bitcoin on-chain, off-chain Lightning routing, Liquid swaps, and asset issuance—under complete developer control.
2. Multi-Chain Node Orchestration
To recreate a realistic payment corridor, the Satolink regtest system coordinates four distinct local nodes. These run inside Docker sandboxes and communicate via RPC and WebSocket APIs.
Bitcoin Core (Regtest)
Simulates the main Bitcoin blockchain. Generates base mining block rewards and anchors the Lightning and Liquid sidechains.
LND (Lightning Node)
Maintains Lightning payment channels, route paths, and settles instant swap invoices off-chain.
Elements Core (Liquid)
Implements the Liquid sidechain. Provides fast block times, Confidential Transactions (CT), and issued assets capabilities.
Boltz Swap Proxy
Acts as the trustless atomic swap proxy, resolving on-chain Liquid transactions into off-chain Lightning payments.
3. The Satolink Control Panel (Next.js Application)
To manage this multi-chain stack efficiently, the development team built a central administrative tool: the Satolink Control Panel (running locally on port 3101).
The control panel exposes a Next.js interface that queries internal API endpoints to display real-time balances, monitor block heights, and manage node operations:
// Panel Configuration (config.json)
{
"mining": {
"enabled": true,
"intervalSeconds": 60,
"blocksPerInterval": 1
},
"commands": {
"bitcoin": "bitcoin-cli-sim-client",
"lightning": "lncli-sim-client",
"liquid": "elements-cli-sim-client"
}
}- On-chain Balances: Real-time balances of the simulation nodes across Bitcoin (on-chain), LND local channels (sats), Liquid (L-BTC), and Liquid USDT.
- Blockchain Info: Monitors active blocks, chain versions, difficulty states, and best block hashes for debugging peg-ins.
- Command Executions: Provides direct web hooks to trigger command-line utilities (like
lncliorelements-cli) on the active sandboxes.
4. Auto-Mining & Manual Block Settlement
Transactions on both Bitcoin and Liquid networks require block confirmations to finalize. Because the regtest network does not have public miners, Satolink implements an automated miner scheduler.
Auto-Mining Scheduler
The control panel runs an interval timer (configured to 60 seconds) that automatically executes mining commands:bitcoin-cli-sim-client -generate 1 and elements-cli-sim-client -generate 1. This guarantees that all transactions and swaps are confirmed within a maximum of 60 seconds.
Manual Generation Triggers
For immediate test results, developers can trigger manual block generation through the dashboard (e.g., mine 10 blocks instantly). This forces instant confirmations, triggering swap resolutions and WebSocket notification pushes immediately.
5. The Satolink Faucet
To allow new users and developers to test the payment application immediately, Satolink operates a dedicated **L-BTC & USDT Faucet** interface directly in the application.

Quota & Fair Use Policies
To prevent spam attacks that would deplete the regtest nodes' wallets, the Faucet API enforces strict quota rules:
| Quota Parameter | Value | Description |
|---|---|---|
| Maximum Single Request | 100 USDT / 0.001 L-BTC | The maximum amount sent per individual faucet trigger. |
| User Daily Quota | 500 USDT | The cumulative maximum a single address/user handle can request per 24 hours. |
| Global Daily Quota | 5,000 USDT | The total maximum amount the faucet node will distribute per day. |
| Request Frequency Limit | 3 requests per address / 5 requests per IP per hour | Prevents rapid bot spamming of the elements-cli send transaction. |
| Spam Penalty | 1-hour ban | Exceeding the request frequency triggers an automatic 1-hour ban on both the IP and wallet address. |
6. Issued Assets on Liquid (Mock USDT)
One of the key features of the Liquid Network is the support for Issued Assets. This allows anyone to issue tokens representing fiat currencies, securities, or utility points with the same transaction confidentiality as L-BTC.
SatoLink utilizes this capability to support Tether (USDT). For the Regtest Network, a mock USDT token was minted with the following properties:
e53db25bfcb876b353118ea592d757abd8150593a61a159b99462768cebe8fd67. Technical Glossary
Regtest (Regression Test)
An isolated local network setup for Bitcoin and Elements where blocks are mined on-demand rather than through public competition, permitting zero-cost sandbox testing.
Issued Assets
A native Liquid Network feature that allows the creation and distribution of customized tokens (e.g. fiat stablecoins, loyalty points) on the Liquid blockchain.
Auto-Mining
A background routine that periodically issues a block generation command to verify pending transactions, simulating block times without manual user input.
Peg-in / Peg-out
The mechanism used to lock Bitcoin on the mainnet to release L-BTC on Liquid (peg-in), or burn L-BTC on Liquid to release Bitcoin on the mainnet (peg-out).