The Burner Wallet started out as a simple web application: a dead-simple wallet with a QR code scanner and send form. As the projects popularity grew, the Ethereum community came up with countless ideas for potential burner wallet features.

Can it support ENS?

Can it be used for games?

Can it have NFTs?

Like projects such as MetaMask and even Ethereum itself have realized, we can’t build every feature, but we can build an open protocol and let others build those features.

Inspired by the Burner Modules of Austin’s original wallet, the Burner Wallet 2 supports a rich plugin architecture that enables everything from simple features to full embedded applications.

There’s over 20 plugins that already exist today, and I hope this article can encourage more people to imagine what’s possible with a Burner Wallet!

What can plugins do?

Burner Wallet plugins are built using normal Javascript & React, so they have access to normal web APIs such as localStorage & making API calls.

Additionally, the Burner Wallet gives plugins the ability to do the following:

Add new pages (as React components) to the wallet

Add elements (as React components) to predefined zones on existing pages (such as adding a widget to the home page)

Parse and handle a QR code that is scanned

Replace an Ethereum address with a human-readable string (think ENS)

Add buttons to the home page

Receive a callback when an asset has been sent

Communicate with other plugins

And more!

Plugins also can request an a Web3 instance that is connected to any supported chain. This enables plugins to easily interact with smart contracts and do anything else that a typical Dapp can do.

Note: plugins are not sandboxed, the wallet architecture provides no assurances against malicious plugins. I can personally vouch for any plugins described in this post or and plugins available on BurnerFactory.com, however developers should be cautious about installing other third party plugins.

What plugins already exist?

Core plugins

The burner-wallet-2 repo contains a number of “first-class” plugins that provide basic features and can be easily be dropped into a new wallet.

ENS Plugin (@burner-wallet/ens-plugin)

Resolve & display ENS addresses.

ERC-681 Plugin (@burner-wallet/erc681-plugin)

Scan QR codes that contain ERC-681 URIs.

ERC-681 defines a URI scheme for requesting payments in Ether or other tokens. The simplest ERC-681 URI only contains an address ( ethereum:0xec0fbC84Bd4a2B420b98f5FcC803C0774D067CdE ), but they can also contain tokens and request amounts.

Metamask displays QR codes in ERC681 format (this QR code contains the string ethereum: 0xec0fbC84Bd4a2B420b98f5FcC803C0774D067CdE )

Exchange Plugin (@burner-wallet/exchange)

Convert between different asset types.

The functionality of the Exchange plugin is defined by “Pairs”, which support different methods of converting assets. The module contains two prebuilt pairs: the xDai Bridge pair, which can convert between xDai & Dai, as well as the Uniswap pair, which can convert between any mainnet token and ETH.

Developers can also build their own Pairs to support other DEXs, bridges, or other mechanisms.

Legacy Plugin (@burner-wallet/legacy-plugin)

Supports URL routes & QR codes used by Austin’s original Burner Wallet.

Link Plugin (@burner-wallet/link-plugin)

Send tokens to friends over email or text by generating a claimable URL.

MetaMask Plugin (@burner-wallet/metamask-plugin)

Adds a button to the home page for enabling MetaMask or other web3 browsers. Requires the InjectedGateway.

Recent Accounts Plugin (@burner-wallet/recent-accounts-plugin)

When creating a new transaction, the wallet will suggest accounts that you have recently sent transactions to.

Seed Phrase Plutin (@burner-wallet/seed-phrase-plugin)

Import a new private key using a seed phrase

Burner Factory plugins

The burner-factory-plugins repo contains a number of more complex plugins.

It is recommended to use these plugins through the Burner Wallet interface, as many of these plugins have external dependencies such as deployed contracts or server endpoints.

Note that many of these plugins are not yet available at burnerfactory.com. We’re working to make them available as soon as possible! 🙂

Order Menu Plugin (@burner-factory/order-menu-plugin)

Provides a user interface for users to order food & drinks off a predefined menu. Typically used at “dappy hours” or other Burner Wallet events.

Vendor Plugin (@burner-factory/vendor-plugin)

Companion to the Order Menu Plugin, this plugin is used on the devices of vendors

If you’re hosting a Burner Wallet event, we recommend creating 2 wallets: one for event attendees and another for food vendors or bar staff.

Stock Market Plugin (@burner-factory/stock-market-menu-plugin)

Similar to the Order Menu Plugin, however this system is used for creating Stock Market Bar events. Users order drinks off an in-app menu, however the prices fluctuate with demand.

Make sure you buy in to a good IPA before the prices moon! 🍻