The import/export key images command can be used to check the balance of a view only wallet.

But is there a way to use it to check the balance of an already set up Paperwallet?

Is it possible to get a transaction key image from a Paperwallet without exposing the spendkey or seed?

2 Answers 2


Is it possible to get a transaction key image from a Paperwallet without exposing the spendkey or seed?

It depends on your definition of "expose". Key images can of course be computed offline, even by some self-contained hypothetical device, but you are still "exposing" your spend key to that device.

You could do the necessary math on paper if you want, but you still expose your spend key to the paper. I do not recommend this method. :)

Christopher King has proposed an idea where the key image would be generated by a view key-derived output, but it needs some more review (and also involves substantial protocol changes).

It is also possible to compute some number of key images when you first generate the seed (it's "exposed" at that moment anyway) by using pre-chosen txkeys. However, there is currently no UI that implements such a thing (MyMonero is the easiest method of doing it manually).

  • 2
    "You could do the necessary math on paper if you want, but you still expose your spend key to the paper." +1 Commented Sep 23, 2016 at 2:28
  • I would recommend mental math, but even then, side channel attacks are possible by monitoring your brain temperature. Commented Sep 23, 2016 at 2:31
  • The proposition by Christopher King is interesting, it would allow to have view only wallet able to monitor both in and out txs and thus know my balance, right? This is issue probably for more people - that you cannot easily tell the balance of your cold wallet. With bitcoin it is easy with monero currently not posible. There is this "itch" in the back of my mind when controlling my xmr cold wallet via the view-only-wallet on hot device, that this is only incoming txs " what if someone stole it all already?!"
    – urza.cc
    Commented Dec 28, 2016 at 4:44

Yes, it can be used.

In brief, you need to:

  1. Export outputs from the watch-wallet
  2. Set-up a "cold" environment and temporarily restore your full wallet using monero-wallet-cli.
  3. Import outputs into the restored full wallet and generate key images with using your temporary cold wallet
  4. Import key images into your watch-wallet and you can monitor the balance

The trick is in doing 2. and 3. from a "cold" environment without ever exposing your private spend key to a network-connected device or having a chance of ever saving it somewhere. LiveCDs are ideal for this as they're read only. Only after you've wiped everything other than key images, you could plug in a flash-drive to be used to transfer them to the watch-wallet.

Here's a kind of guide for the process.

  • I have a cold wallet that has received monero, but never spent any. After following the steps above the output is Signed key images imported to height 1382000 where 1382000 is the block of the most recent inbound transaction and which is 5 months old. Is it possible to prove that the balance hasn't changed since then without creating a new transaction, which would change the wallet balance?
    – GSee
    Commented Jan 25, 2018 at 4:49
  • If you disclose the view key and address, anyone can easily see everything you received including anything new since block 1382000. Then if you give him key images up to 1382000 then that wallet would also see if anything you received before 1382000 gets spent. If you received something after 1382000 then you wouldn't see those amounts getting spent. However, if someone stole the entire wallet balance, you'd see old balances gone missing, and falsely see that something still remains (that received after 1382000). You don't need to make any TX to update key images.
    – JollyMort
    Commented Jan 25, 2018 at 19:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.