Jump to content

Offline Cold Wallet Interface for the non-techie


Kakoyla

Recommended Posts

I needed a simple wallet interface that my wife or non-tech savvy friends could use if something were to happen to me...( ?  /  ? ).

@ripplerm made my favorite wallet by far, and I got addicted to the convenience of using qr code when transferring the tx_blob to an online computer, but even though that wallet is pretty straight forward to me, it wasn't for the people i want to be able to use it. Also, the QR option isn't on all the fields I would like (typing in an address takes a long time when you need to be 100% correct)

Wietse had made the kyte app and it was pretty easy to use, but as it currently stands, needs an online connection or a server on localhost, which is too complicated for what I am looking for.

So I made this: kakoyla.github.io  -----This was made for desktop, and intended for offline use.

I tried to make it as dummy proof as possible, the simple XRP payment should be able to be completed by anyone as long as they know the keys. After I had the payment working easily i kept going and added all the options that I wanted to play with.

All that being said, I have read this forum for a long time and realize  NO ONE will trust this and use it on the live net, but that's not the goal of this post.

I was thinking maybe someone non-technical will find this useful for learning about the options available on the XRPL by trying things out on the testnet. If interested you can generate pre-funded testnet accounts here. You can submit any tx_blobs for the testnet transactions here (click the testnet option then submit transaction). I also have a qr generator under the tools option, open it on a phone and enter in an account address or anything else you wouldn't want to type in manually, then you can just hold the phone up to the webcam of the (simulated) offline pc. I haven't done extensive testing so please PM me if you find something wrong or buggy so i can fix it.

The code can be found here. If you have suggestions for improvements i'm all ears.

edit: if you want to check it out, you can use 

snyFoZt6fJeAYfAxjBVt3qGXKyKcC

edit #2: 

you can submit tx blobs here:

https://kyteapp.co/  <-- click on send air gapped transaction

https://bithomp.com/submit/

http://ripplerm.github.io/ripple-wallet/      <-- go click the tools tab, then submit sub-tab

TESTNET submission:

padanaram.digital  <-- click testnet then submit transaction for TESTNET (I do not know of any other easy testnet submit sites)

 edit #3:

If interested I added a testnet account option to Bithomp's awesome paperwallet, which includes qr codes so you can print out a few and play around. The modified paperwallet can be found here:

https://kakoyla.github.io/xrp-paper-wallet/

 

Edited by Kakoyla
Link to comment
Share on other sites

If I had trust issues, could I just send the signed transaction JSON to here https://developers.ripple.com/websocket-api-tool.html ?

edit: What I mean by above is that this tool is used offline anyway, so the only place I could get scammed is signing a transaction to YOUR address instead of mine. So by copying the info instead of the TXT BLOB I can see where my funds are going... 

What are easy ways of submitting the TXT BLOB or the JSON?

Edited by Skippy
gramar
Link to comment
Share on other sites

9 hours ago, PunishmentOfLuxury said:

Great stuff, @Kakoyla Would be nice to have a 'Back' button on some of the pages, rather than having to clear the wallet and start again.

How to download the HTML and port it to an offline PC?

I will work on it, thanks for the input!

7 hours ago, Skippy said:

If I had trust issues, could I just send the signed transaction JSON to here https://developers.ripple.com/websocket-api-tool.html ?

yes, that's the only place i know where you can send the JSON without submitting it yourself via your own code. 

 

7 hours ago, Skippy said:

What are easy ways of submitting the TXT BLOB or the JSON?

If you leave it as a tx_blob, you can submit it at any of these, there are probably more that I don't know about:
 

https://kyteapp.co/  <-- click on send air gapped transaction

https://bithomp.com/submit/

http://ripplerm.github.io/ripple-wallet/      <-- go click the tools tab, then submit sub-tab

padanaram.digital  <-- click XRPL then submit transaction for live xrpl or click testnet then submit transaction for testnet (I do not know of any other easy testnet submit sites)

 

7 hours ago, Skippy said:

What I mean by above is that this tool is used offline anyway, so the only place I could get scammed is signing a transaction to YOUR address instead of mine. So by copying the info instead of the TXT BLOB I can see where my funds are going... 

I was thinking this exact same thing.  If you can see the tx_JSON matches what you expect, since this will never be run online, does the rest of the code even matter or is the end result all you need to worry about?  If you want to see the tx_blob deconverted back to JSON you can drop the tx_blob into a decoder i made,

padanaram.digital then click quick tools then decode tx_blob,

it will give you the JSON. Assuming a simple payment....besides the destination and transaction type, I think the amount and fee are the most important fields to check. Amount is shown in drops so you would divide that by 1,000,000 to see it in XRP. Fee is  also shown in drops but most people think of fees in drops already anyway, ie a fee of 12 would be 0.000012 XRP

If the reason you want to check this is because of trust, you probably won't want to trust something else I provided, so you can do it yourself. 

deconvert the blob yourself:

assuming you have node installed on your pc, 

	const binary = require('ripple-binary-codec')
	const signedTX ='ENTER YOUR tx_blob HERE' 
	var decoded = (binary.decode(signedTX))
	console.log(decoded)
	
  • Then update const signedTX with your tx_blob and save
  • Run it on the command line with 
node decodeTx.js
  • The decoded tx_blob will be shown and you can now review to make sure the fields present match your expected transaction.

 

 

 

Edited by Kakoyla
Link to comment
Share on other sites

I made a few minor updates ( added back buttons, fixed typos, fixed the deposit auth transaction, etc)...

But also wanted to add I shared this for people to use on TESTNET to try out different transaction types. I will use on the live XRPL, BUT if you do PLEASE be sure to double check the signed transaction JSON prior to submitting, and make sure your amounts (fees or amount sent) are correct first. I am just a rookie and while everything seems to be working as intended, i do not have experience with the edge cases of dealing with large numbers and JS. 

Also, the part I really wanted to show was how much easier and less stressful it can be using qr codes rather than typing in the address/secret, the paper wallet is going to still take up the same amount of physical space, why not take a short cut and include the QR?

If interested I added a testnet account option to Bithomp's awesome paperwallet, which includes qr codes so you can print out a few and play around. The modified paperwallet can be found here:

https://kakoyla.github.io/xrp-paper-wallet/

 

 

Edited by Kakoyla
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...