A one-command, reproducible playground for the BIP448 bundle — Taproot-native
rebindable transactions (the LNHANCE / CTV+CSFS lineage: OP_INTERNALKEY,
OP_CHECKSIGFROMSTACK, OP_TEMPLATEHASH), testable today on the public signet via
Bitcoin Inquisition. Learn about the
bundle at github.com/bip448.
It's a registry of independent projects, each demoing part of the bundle on
signet — ordered oldest-tech-first: LN-Symmetry (eltoo) on Core Lightning, then Ark
covenants via OP_TEMPLATEHASH. More plug in as the bundle's other pieces get exercised.
Paste this repo's URL to your coding agent (Claude Code, Cursor, …) and say
"set this up and run the playground." It will read AGENTS.md,
install Nix only if your machine needs it, and spin everything up.
git clone https://github.com/mvuk/templatehash-playground
cd templatehash-playground
./playground./playground gets Nix ready — installing it only if necessary (via the Determinate
installer), and using per-command flags instead of editing any existing Nix config — then
launches the default product: a live status dashboard at http://localhost:4848. Then:
./playground list # see all products
./playground <name> # run a specific one
nix run .#default # if you prefer driving Nix directly
nix run .#node # (Linux) run a local Bitcoin Inquisition signet nodeNo Nix, and don't want it? Use the prebuilt image (published by CI):
docker run --rm -it -p 4848:4848 ghcr.io/mvuk/templatehash-playgroundThe playground is a registry of independent projects (./playground list), ordered
oldest-tech-first:
ln-symmetry— LN-Symmetry (eltoo) on Core Lightning (instagibbs' fork), built reproducibly: the eltoolightningd+ its three eltoo subdaemons. eltoo replaces Lightning's penalty transactions with a symmetric latest-state-wins ratchet, using rebindableupdate+settletxs (ANYPREVOUT, orCSFS+TEMPLATEHASH). (Linux.)nix run .#ln-symmetryshows the node + the runbook for a live signet channel.bark-templatehash— a covenant-enabled bark client (Ark wallet) exercisingOP_TEMPLATEHASH.Runs the bark client pointed at the hosted Ark server
ark.templatehash.com; it does not run acaptaindof your own.
Deep dives for both live in docs/. Adding the next project is a PR: copy
products/_template/ — see
Add your own experiment.
A templatehash Ark wallet can currently be funded only by on-chain receive or Lightning receive — not by a faucet VTXO drop. A VTXO belongs to one specific Ark server, and the Second signet faucet's Ark (VTXO) option issues VTXOs on the covenantless Ark server (a different server on the same signet), so those can't land in a templatehash wallet. Fund with one of:
- On-chain: get an address with
bark onchain address, request signet coins for it at the faucet (on-chain option), then board into Ark withbark board --all. - Lightning: mint an invoice with
bark lightning invoice "100000 sats"and pay it at the faucet (Lightning option) — it settles into a spendable VTXO.
(Automatic funding, and faucet VTXOs issued on the templatehash Ark server, are phase-2 items.)
This is a community playground. Copy products/_template/, edit
it, and open a PR — your experiment becomes nix run .#<your-name>. See
CONTRIBUTING.md.
CI (.github/workflows/ci.yml) builds the flake on Linux and
macOS on every push and publishes two prebuilt paths, so nobody has to compile:
- a Cachix cache (
templatehash-playground.cachix.org), already wired into the flake —nix run/./playgroundpull prebuilt binaries, and - a Docker image at
ghcr.io/mvuk/templatehash-playground.
Forking? Point CI at your own cache: create a Cachix cache, add its CACHIX_AUTH_TOKEN
secret, and swap the substituter + key in flake.nix's nixConfig.
Two projects, reproducible. ln-symmetry (eltoo Core Lightning — lightningd + eltoo
subdaemons, its eltoo settle-tx unit test run in the build) and bark-templatehash (Ark
covenant client). A bitcoind-inquisition node (.#node) + nixosModules.inquisition-node
(destined for nix-bitcoin). All five bundle opcodes verified active on the live signet
(see docs/signet-verification.md). CI (Linux + macOS) +
Cachix + Docker + Codespaces zero-compile onramp; live status dashboard for the bark demo.
Next — a fully-automated two-node eltoo channel demo on signet (the CLN integration
harness needs its non-NixOS container), faucet auto-funding, and more bundle demos as
products/.
MIT.