BLS Snap is a MetaMask Snap which integrates BLS Wallet to MetaMask
The BLS Wallet enables wallets to sign transactions with BLS Signatures. Aggregating them lowers gas fees for supporting wallets, and their users of layer 2 dApps. It makes possible to send gasless transactions., further simplify user onboarding with dApp-sponsored transactions. Users sign their dApp actions; dApps include a payment to tx.origin to reward those that pay the gas. BLS Snap allows to manage assets, bundle transactions, provide good values for MetaMask community.
Snap was built based on MetaMask snap template and bls-wallet-clients. There are two parts Span and Wallet UI based on react.
Snaps are executing in a sandbox environment, which make more complicated to implement snaps using limited possibilities as well as the environment not well tested. It was challenging to use bls-wallet-clients in a Snap environment, while bls-wallet-clients use wasm. Debugging of the issue took most amount of time.