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!
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. ![]()
Lowering the resource requirements of Triton VM is something we have been and are still working on. ↩︎