Blank Wallet Development Update #1

5 min readMar 12, 2021


The development process for the Blank Wallet browser extension has begun a few months ago. We did not want to share too many details before the release and distribution of the $BLANK token but we are now ready to give you a first-hand look at the development process for Blank Wallet.

In this initial Dev Blog post for the Blank wallet, which will be the first of many, we’d like to give you a quick overview of the first iteration of the browser extension from a development point of view. In future Dev Blogs, we are looking to update our community as development progresses step by step.

1. BlankController

The BlankController class is the core component of the background script of the extension app. This class creates instances of all supporting classes and connections to the browser port. Additionally, the most security-sensitive tasks, like the wallet vault and keychain creations will be handled within this class.

Some other classes which have already been integrated into the BlankController include:

  • The NetworkController (to set Ethereum networks and update on changes)
  • The AppStateController (to manage the app’s state and handle unlocks)
  • The TransactionController (to handle all blockchain transactions)
  • and more…

Since the BlankController instantiates the other controllers, it will be constantly updated to support new features. Most of the core features of the upcoming first release of the Blank Wallet have already been integrated.

2. Vaults and Keyrings

The vault (or KeyringController) is the controller, where all account strategies, called keyrings, are contained and managed. In Blank’s case, a vault could consist of one Hierarchical Deterministic Key tree and also one hardware wallet connection. In this case, the vault would contain two different keyrings.

We are using MetaMask’s eth-keyring-controller library to implement the vault functionality, following Blank’s philosophy of using battle-tested software with high-security standards. As one of the core elements of the Blank wallet, the KeyringController has been implemented very early on during the development stage. We have already performed extensive tests on this part of the wallet and also completed integrations with other parts of the wallet.

3. Privacy functionality

As the most private browser extension wallet out there, the on-chain privacy functionality using Tornado smart contracts is another core piece of the Blank wallet. Most of the needed functionalities have already been implemented, including unit tests:

  • Creation of new BIP44 key pairs to derive tornado secrets, as described in the whitepaper
  • Creation of new deposits from hashed key pairs
  • Reconstruction of all deposits from the seed phrase
  • Depositing and withdrawing to and from the privacy smart contracts
  • and more…

The implementation of this core part of the wallet took longer than anticipated, given the number of different privacy contracts and the lack of a fitting event-scheme in tornado’s proxy contract, along with issues regarding Tornado Cash’s open-source CLI. But now it is ready to be merged and to be integrated into the app’s frontend.

4. Onboarding process

As the first step that every user will go through when setting up the Blank wallet, the onboarding process is also the first process that is completed from a development perspective.

During the onboarding process, the user will be able to import or create a new wallet, setting the seed phrase and the password. With the seed phrase alone, the user can restore his wallets, with all accounts and even tornado secrets.

At the end of the onboarding process, the initial state of the extension will be set and it will be ready to be used from then on. Below are some screenshots of how the process looks:

Obviously, there are many more parts that make up the Blank wallet, that have not been mentioned in this blog. For now, we just wanted to share an overview of the key aspects. In upcoming blogs, we are aiming to explain other parts of the extension and also give more in-depth information about some of the points mentioned in this blog post.

Notice of token expenditure

As a one-time exception, we will also be sending 38,834 BLANK tokens from the Liquidity pool to this address: 0xdf3b7e8d4548c8d346190c901f95ed126b739922 in order to reimburse an accidental token transfer to the token contract which effectively burned the tokens ( Proof ).

About Blank Wallet

Blank is the most private, non-custodial Ethereum browser extension wallet.

Blank allows the user to easily interact with privacy smart contracts on Ethereum to hide the amounts and the origins of cryptocurrency held, in a decentralized, non-custodial, and frictionless manner.

Blank solves the problem of privacy in crypto transactions. Each time you want to make a withdrawal, Blank will create a new wallet address for you with the amount of crypto that you requested. This address originates from the smart contract where everyone’s funds are pooled. All of this is achieved using cryptographic proofs to ensure that the user cannot be linked with the original depositing address.

With crypto transactions increasing, on-chain transaction privacy is being highly discussed to keep you safe from exposing yourself. Blank has developed a system that adds the ultimate protective layer to your crypto transactions while facilitating every function that other wallets offer.

Anyone can easily install Blank and start reaping the privacy benefits in no time at all. Besides the smart contract functionality, Blank wallet offers a higher level of privacy due to Tor integration. Upcoming functionality includes DeFi web3 integrations as well as support for Metamask Snaps Plugins to allow for seamless connectivity and usage.

Reclaim privacy on your Ethereum transfers. Go Blank.

Become a member of the Blank community by following us on:

Homepage | Medium | Twitter | Telegram | GitHub | E-mail




The most private, non-custodial browser wallet. Reclaim control of your financial privacy. Get BlockWallet.