Invoke Polywrap Wasm Wrappers on the fly, in the browser with Metamask snaps

The problem Polysnap solves

Currently, You need to build new snaps for every capability you want to add to your Metamask extension. Polysnap allows you to execute any WASM wrappers deployed on IPFS on the fly without needing to build a new snap. You can also write these wrappers in any language that supports WASM as a compilation target (Ex: Assemblyscript, Rust, TinyGo, etc) instead of just writing it in JS.

Challenges we ran into

It was really hard for us to integrate PolywrapClient with the Metamask Snaps because while building snaps the error messages we were getting were a bit cryptic and hard to debug. Since the snaps project is at an early stage, the documentations were also hard to follow and lack real-life examples. Metamask snaps don't support some of the most popular js libraries like axios because it runs in SES which makes it difficult to integrate with the modules that uses those libraries.

Technologies used