Keyguard Explanation for Nimwits

  1. I’m super stoked to introduce the term “nimwit,” a colloquial way to affectionately describe an individual with very little knowledge about the inner workings of blockchain technology, but who nonetheless understands that it’ll be an integral part of our future and, as such, has gravitated to Nimiq because of its mission: “…the blockchain designed for simplicity.” I’m also happy to consider myself the first official nimwit!

  2. For the brains in this forum: what is the keyguard and what is its ultimate use case? I couldn’t find a Medium blog explicitly explaining it, and am too much of a nimwit to understand it contextually :grinning:. Any and all responses are appreciated!


Hello Rocky.

To start things of how I would describe the Keyguard is by first looking at it’s name. It has been chosen for a reason. Keyguard is actually meant for, well, guarding your keys! And that is all what it’s doing. It prevents from leaking your privatekey(s) to the outside world and still be able to interact with the Nimiq blockchain, like creating transactions.

To go a bit more in-depth, in your browser, your privatekeys are stored in a container called IndexedDB, it meant for storing significant amounts of structured data (in this case your privatekeys) on your local machine. You can compare it a little bit with cookies (because this information is also stored locally on your computer). But IndexedDB is way more flexbile and information in the IndexedDB won’t get send along if you visit a website. It stays on your computer/phone. Your privatekeys are stored encrypted in the IndexedDB. That’s why you have to provide a password when you create a new wallet in the Safe. So even if a hacker finds a way to extract the information from your IndexedDB, the data will be useless unless he know your password.

Back to the Keyguard, basically it’s the interface which let you interact with your local IndexedDB in a safe an easy way. It can do certain things:

  • Add a new wallet to your computer
  • Sign a transaction
  • Sign messages to prove you own a certain wallet because you have the privatekey
  • And more

Last example I can come up with to give a comparison is: the Ledger. See your IndexedDB as the sealed part of the Ledger that stores your privatekeys. And the little LCD screen plus the physical buttons to navigate as: the Keyguard. So you can interact safely with the sealed part and never have to worry about important information leaving your device.

Hopefully this helped clearing things up!


Hey Rocky! Happy to get to know our first official nimwit! :grin:

@stefan got you all the details, excellent! I’ll try a short version: The Keyguard stores your private keys encrypted in your browser so that you can send transactions and pay anywhere online directly from within your browser whiteout the need of extra hardware, plugins, or software.
Have a look at this video here, let me know what you think and if it’s too technical, feedback is very appreciated. It’s funny for sure IMO. :smile:


Well Stefan and Sven have covered what the Keyguard is, but what about what it can be used for?

To me, the keyguard is the manifestation of the Nimiq teams goal of seamless integration and user friendliness. No matter what website or app you’re on, you’ll always be greeted by a friendly and familiar UI that you know is protecting your keys. This UI is the keyguard, and if you’ve yet to try it out, some of the features are demoed here, but only use testnet accounts not mainnet ones (the last button shows off that a pop-up doesn’t need to be used if the website or app chooses).

With Nimiq being focused on pure payments, having any site able to give you a trusted way to pay is huge. Some possible uses of the Keyguard are:

  • Simply sending NIM to the site owner, whether as a donation or as a way to purchase things.
  • Choosing an address to fill in a text box on sites like blockchain explorers, mining pool dashboards (to check on devices), and anything else. I already have a button on WallEye that will allow you to do this as soon as keyguard comes out on mainnet :slight_smile:!
  • Signing messages is infinitely easier with the keyguard, which will allow you to prove ownership of certain addresses or to publish certain information that you promise is true when you sign it (and the recipient can always and forever prove your account signed that message).
  • The message signing imo has the potential for some cool use cases, one of which I’ve heard discussed in the past being a “Log in with Nimiq” button on sites rather than using Facebook or Google. Information relays have also been proposed, and only time will tell what other incredible projects will become possible once we can easily get the user to sign a message.

Another Nimwit here, please be gentle with me. If my understanding is correct, the Keyguard acts the same way as Metamask in ETH. It is just that, you do not need that extension installed on your browser. You just have to remember your password to unlock and make transactions with KeyGuard.


One day, there will be millions of #nimwits, all of whom will be sending money to one another via $NIM. Welcome to the club, @Gr1mB3an!

I just found this thread, welcome to Nimiq, @Rocky! :+1:

The guys already summed it up incredibly well and @Chugwig already started with what is so special about the Keyguard:

It works completely on your device (computer or phone/tablet), without sending any data about your behavior or your keys to our servers.

Your private key is stored in the browser storage under the specially protected domain (also called the origin) and thus no other website has ever access to it (the browser sandbox rules guarantees that).

But the Keyguard has a (soon to be) public API, with which all websites on the internet can easily interact with your accounts and addresses, by opening a popup or redirecting to the Keyguard.

In that regard it is supposed to work just like a PayPal payment experience, except your data is yours and yours alone.

An announcement and explanation blog post(s?) is soon going to be available on a blog near you! =)


Great explanation! Thank you, @NimiqSoeren.