What are Burner Wallet Plugins?

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! 🍻

An early version of the Stock Market Plugin powering a (very fun) dappy hour at ETHWaterloo 🍻

Schedule Plugin (@burner-factory/schedule-plugin)
Display a schedule of events.

The schedule used at ETHWaterloo

Push Notification Plugin (@burner-factory/push-notification-plugin)
Users can enable push notifications from the wallet.

Currently, this can only be used to receive broadcast messages from the wallet creator. However, it will support “transaction received” messages in the future.

Web push notifications are currently not supported by mobile Safari. We’re considering adding SMS notifications as a fallback.

Burnable ENS Plugin (@burner-factory/burnable-ens-plugin)
This plugin allows users to claim an ENS subdomain for free. Users may “burn” their subdomain in order to register a new name, or else their subdomain will expire in a fixed period of time.

Look forward to more information about this feature soon 🙂

Collectable Plugin (@burner-factory/collectable-plugin)
Used for a scavenger-hunt type game at an event.

Event organizers can mint a set of NFTs using the Burner Factory, and users can collect these NFTs by scanning QR codes.

Third party plugins

Linkdrop Plugin (@linkdrop/burner-plugin)
Allows users to claim tokens distributed using Linkdrop QR codes

Carbon Plugin (@burner-wallet/carbon-plugin)
On-ramp to allow users to purchase ETH, Dai or xDai using a credit card.

Ching Plugin
Allows Burner Wallets to scan QR codes from the Ching PoS system.

A number of other plugins are also being developed for ETHDenver, such as a Fortmatic plugin.

Can I build my own plugins?

Of course!

A comprehensive guide to building Burner Wallet plugins will be released within the coming weeks. If you’d like to start messing around now, take a look at the plugin API documentation and the starter project on Github.