A reproducible, hassle-free environment for Cardano SPOs. Mochi's SPO Workbench bundles all essential tools, binaries, and configurations into a single, robust Nix-based setup.
- 🌍 Cross-Platform & Reproducible: Works anywhere Nix is supported.
- 🔄 Environment Switching: Switch effortlessly between mainnet, testnet, or previewnet.
- 🏷️ Version Management: Pin specific
cardano-nodeversions or other tools directly in the flake. - 🧹 Minimal Host Impact: Keeps your filesystem clean and organized.
- ⚙️ Customizable Scripts: Override defaults safely with a local
common.inc. - 🔒 Hardware Wallet Friendly: Built-in guidance for Ledger integration.
curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinategit clone https://github.com/mochipool/workbench.git
cd workbench# Default: mainnet
nix develop --accept-flake-config
# Switch network (example: previewnet)
nix develop --accept-flake-config .#preview🎉 You're ready to run!
NOTE (Determinate Systems Nix):
When using Determinate Systems Nix, some extra configuration is needed to use the iog cache. It is highly recommended to do so to avoid building everything from source.
Run the following script to configure the cache correctly. It requires sudo:
./scripts/determinate-nix-config.sh- Preconfigured for immediate use.
- Override defaults by creating a
common.incin your working directory. It takes priority over.common.inc.
On Linux, add udev rules for non-root access:
curl -L https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash| Network | Default | Notes |
|---|---|---|
| Mainnet | ✅ | Default environment |
| Preprod | .#preprod | |
| Preview | .#preview |
Contributions are welcome! Please ensure your changes are reproducible with Nix and follow standard GitHub contribution practices.
- Enable full customization of SPO scripts via flake integration
- Improve documentation for advanced flake configurations
- Add CI checks for reproducibility and network switching
- Martin Lang for the SPO scripts which form a core part of this environment.
- The Nix community for making reproducible, cross-platform development environments possible.
- LedgerHQ for maintaining the official udev rules for hardware wallets.
This project is licensed under the GNU GPL v3.