Triton VM becomes WebAssembly compatible

Triton VM, the cryptographic backbone of Neptune Cash, is now compatible with WebAssembly (wasm32). This enables modern web-browsers to run Triton VM and paves the way for more powerful web wallets. We’re excited to see what you’ll be building with it!

3 Likes

Great progress, thanks for sharing!

What parts of Triton VM are currently practical in-browser: program execution, proof generation, proof verification, or all three?

With Triton VM becoming WASM-compatible, what is the intended developer route for writing applications: hand-written TASM, Rust-to-TASM via tasm-lang, or something else? In particular, how hard is it today to write, debug, test, and maintain a non-trivial TASM application?

In principle, all three, with the caveat that proof generation of long-running programs requires a lot of RAM and will almost certainly exhaust the memory available to the WebAssembly environment (which, as far as I know, is 4GiB, but I’m not an expert on this front).[1] Proof verification and program execution should not be affected by this at all.

Right now, I’d say the best way is to hand-write TASM and rely on tasm-lib as a standard library wherever possible. I’d love to have better tooling, but so far, other things have always been more important. If you need help, please don’t hesitate to reach out. :slightly_smiling_face:


  1. Lowering the resource requirements of Triton VM is something we have been and are still working on. ↩︎

1 Like