Skip to main content
Localnet testing is a crucial step in ensuring your Garden SDK integration works as intended before deploying it to a testnet or mainnet. To support your testing, we provide Merry, an in-house tool designed for comprehensive cross-chain testing in a local environment. Merry is a CLI tool that leverages Docker to set up a multi-chain testing environment with a single command. It includes:
  • Bitcoin regtest node: A local Bitcoin testnet environment.
  • EVM localnet nodes: Local Ethereum and Arbitrum test environments. Simply add the localnet details to your EVM wallet to detect and interact.
  • Filler bot: Simulates the behavior of a live solver based on predefined strategies.
  • Orderbook: Local version of the order book to test how intents are matched and fulfilled.
  • Faucet: Generate unlimited test funds for seamless testing.
  • Electrum services: Lightweight wallet support for interacting with Bitcoin network.
Merry eliminates block mining delays, provides a complete environment for multi-chain workflows, and allows developers to test integrations independently of external services. It’s customizable, fast, and supports iterative testing with features like local service replacement.

Installation

Prerequisites: Ensure Docker is installed and running. Download Docker from docker.com.
Merry supports arm64 and amd64 architectures. For Windows, use Windows Subsystem for Linux (WSL). Run these scripts based on your environment.
Merry stores its configuration and other data in a .merry directory on your system.

Commands

Merry provides a variety of commands to manage your testing environment.

Start Merry

Start all services with:
  • --bare: Starts multi-chain services only (Bitcoin and Ethereum nodes with explorers) without Garden services
  • --headless: Starts all services without frontend interfaces for server environments

Stop Merry

Stops all running services:
Use --delete or -d to remove data:

List all commands

Display all available commands:

Get logs

Access logs for specific services:
Replace <service> with the specific service (e.g., filler, orderbook) to view its logs.

Replace a service with local version

Replace a service with your local development version:
Make sure you’re in the directory containing the local service’s Dockerfile. You can only replace filler, orderbook, and EVM chain services.

Interact with Bitcoin RPC

Run Bitcoin RPC commands directly:
Example - get blockchain info:

Fund accounts

Use the faucet to fund Bitcoin or Ethereum addresses for testing:

Update Docker images

Keep your environment up-to-date by pulling the latest Docker images:

Generate auto-completion scripts

Generate scripts for your shell (bash, zsh, fish, powershell):

Get version info

Check the version of Merry installed:

Supported services

The following services are available when running Merry. Use these ports to connect your applications and tools.

Next steps

SDK integration

Start integrating Garden SDK with your local testing environment

API documentation

Explore the Garden API endpoints