Okay, it actually shipped back on October 20, I just hadn't gotten around to writing it up. stackwalk is a Bitcoin Script debugger in the browser, live at vadim.rs/stackwalk.

stackwalk: a 2-of-3 policy compiled to miniscript and P2WSH, its spend paths, and the run step by step until OP_CHECKMULTISIG leaves 1

Why

The deeper I got into Miniscript, the more I noticed gaps in how well I actually understood Script itself. In some cases I just couldn't say for sure what would be on the stack at a given point. What I really wanted was an interactive debugger that could start right from a policy and show me the stack, step by step. I couldn't find one, so I built it.

What it does

Write a policy, miniscript or descriptor, and stackwalk shows:

  • the miniscript it compiles to, the descriptor and the Script;
  • every spend path, with its size in vB, opcode count and stack depth;
  • each path run opcode by opcode, with the stack drawn after every step and a line on what the opcode just did.

Or skip all that and paste a raw script. If it's miniscript, the fields above fill in; if not, it runs as wsh.

Keys A, B, ... are fixed test keys, and signatures are over a dummy transaction, so it never needs a private key. Don't paste one.

How far to trust it

It's for learning. The interpreter is not Bitcoin Core's: it's a vendored rust-bitcoin-scriptexec with local fixes. It passes all 1217 legacy and segwit v0 vectors of Core's script_tests.json (v31.1). No taproot yet: tr() descriptors are refused.