Skip to content

Swiftly launch your own Multichain environment for testing, executing commands, and monitoring state while maintaining control over chain operations.

License

Notifications You must be signed in to change notification settings

catalogfi/merry

Repository files navigation

GitHub Release

Merry

Streamline your multi-chain testing with Merry!

This CLI tool leverages Docker to effortlessly set up a multi-chain testing environment in a single command. Merry includes Bitcoin regtest node, Ethereum localnet node, and essential Catalog.fi services, providing a self-contained space to test your applications independently of external services.

It supports various features, including a faucet, electrum services, and an orderbook with COBI.

Prerequisites

Before using Merry, please ensure you have Docker installed and running on your system. If not, download and install Docker from the official website.

Installation

You can install Merry using the following command.

curl https://get.merry.dev | bash

Merry stores its configuration files and other data in a directory on your system, typically named ~/.merry/.

See the Install from scratch section to install Merry from scratch.

Commands

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

Starting Merry

merry go

This starts all services, including the Bitcoin regtest node, Ethereum localnet node, explorers for the nodes, and the Catalog services.

  • --bare flag: Starts only the multi-chain services (Bitcoin and Ethereum nodes with explorers) and excludes Catalog services. This option is helpful if you don't need the additional functionalities like COBI and Orderbook provided by Catalog.

  • --headless flag: Starts all services except for frontend interfaces. This can help run Merry in headless environments (e.g., servers) where a graphical user interface is not required.

Stopping Merry

merry stop

# Reset data
merry stop -d

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

Getting logs

merry logs -s <service>

# Getting logs of EVM service
merry logs -s evm

Replace with the specific service (e.g., cobi, orderbook, evm) to view its logs.

Replacing a service with a local one

merry replace <service>

This command allows you to replace a service with your local development version. Make sure you're in the directory containing the local service's Dockerfile. Supported services include COBI, Orderbook, and EVM.

Calling Bitcoin RPC methods

merry rpc <method> <params>

# example: get blockchain info
merry rpc getblockchaininfo

Interact with the Bitcoin regtest node directly using RPC methods.

Updating Docker images

merry update

Keep your testing environment up-to-date by updating all Docker images.

Fund accounts

merry faucet <address>

Fund any EVM or Bitcoin address for testing purposes. Replace

with the address you want to fund. It could be a Bitcoin or Ethereum address.

List all commands

merry --help

Testing with Merry

Once your environment is set up:

  • Connect to the Orderbook using its provided URL within your client application.
  • Leverage the built-in Bitcoin regtest and Ethereum testnet nodes to test your multi-chain functionalities.

Contributing

We welcome contributions to Merry! There are no special requirements needed. Fork the repository, make your changes, and submit a pull request.

Let Merry simplify your multi-chain testing journey!

Install from scratch

  • Clone the repository
git clone https://github.com/catalogfi/merry.git
  • Building and installing
cd cmd/merry
# build and install the binary
go install

About

Swiftly launch your own Multichain environment for testing, executing commands, and monitoring state while maintaining control over chain operations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published