Bitcoin Forum
May 03, 2024, 08:51:08 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Paper Wallets?  (Read 2039 times)
jonanon (OP)
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
December 25, 2013, 04:34:05 AM
 #1

I am trying to find out how to make paper wallets for different coins, Anoncoin, Litecoin and Unobtanium.

Is this possible?

If so how?
1714769468
Hero Member
*
Offline Offline

Posts: 1714769468

View Profile Personal Message (Offline)

Ignore
1714769468
Reply with quote  #2

1714769468
Report to moderator
The forum strives to allow free discussion of any ideas. All policies are built around this principle. This doesn't mean you can post garbage, though: posts should actually contain ideas, and these ideas should be argued reasonably.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714769468
Hero Member
*
Offline Offline

Posts: 1714769468

View Profile Personal Message (Offline)

Ignore
1714769468
Reply with quote  #2

1714769468
Report to moderator
1714769468
Hero Member
*
Offline Offline

Posts: 1714769468

View Profile Personal Message (Offline)

Ignore
1714769468
Reply with quote  #2

1714769468
Report to moderator
stevenh512
Full Member
***
Offline Offline

Activity: 137
Merit: 100



View Profile
December 25, 2013, 07:44:20 AM
 #2

Since you know about paper wallets, I'm sure you probably know about bitaddress.org for BTC. There's a similar site, liteaddress.org for LTC. It's based on the same code as bitaddress, so you can save the page and run it offline for added security. Off the top of my head, I can't think of any paper wallet generators for the other coins you mentioned, but I wouldn't be too surprised if they're out there somewhere, it's extremely easy to edit the bitaddress code for other coins. I actually made one for an altcoin back in May (MinCoin.. which I was trading and making quite a bit of profit with at the time.. but it isn't worth much anymore), hardest part was editing the graphics.

This signature intentionally left blank.
jonanon (OP)
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
December 25, 2013, 08:39:32 AM
 #3

Since you know about paper wallets, I'm sure you probably know about bitaddress.org for BTC. There's a similar site, liteaddress.org for LTC. It's based on the same code as bitaddress, so you can save the page and run it offline for added security. Off the top of my head, I can't think of any paper wallet generators for the other coins you mentioned, but I wouldn't be too surprised if they're out there somewhere, it's extremely easy to edit the bitaddress code for other coins. I actually made one for an altcoin back in May (MinCoin.. which I was trading and making quite a bit of profit with at the time.. but it isn't worth much anymore), hardest part was editing the graphics.

Cool thanks. I know basically how paper wallets work but what may be easy for you 'editing the bitaddress code for other coins' sounds rather complicated for me  Wink How do I do this (without there being a chance of doing it wrong and loosing the coins)!

Thanks for you help!
stevenh512
Full Member
***
Offline Offline

Activity: 137
Merit: 100



View Profile
December 25, 2013, 10:20:31 AM
 #4

[disclaimer]
If you try this, be sure to try generating a couple paper wallets and actually importing the private keys into your altcoin wallet to verify that the private keys match the addresses. If you do the math right they should, but it's always best to be safe before sending money to one of these.
[/disclaimer]

Well, when I say easy, I mean easy for someone who knows a little Javascript (and I don't know a whole lot of Javascript) and don't mind looking at the source code for whatever coins you want.

The main things you'll need to edit are the network version byte and the private key prefix byte. To get the network version byte, look at the source code for whatever altcoin you're trying to make a paper wallet generator for (either a local downloaded copy of the source code, or just look on GitHub). You're looking for "src/base58.h" somewhere around like 280, you should see something like this:
PUBKEY_ADDRESS = 50

The number will be different for every coin, the example above is from the coin I made a paper wallet generator for since I'm looking right now at the changes I had to make.


The value you see for PUBKEY_ADDRESS is the network byte. Add 128 to that number to get the private key prefix, then (using Windows calculator or whatever method you prefer) convert both numbers to hexadecimal numbers. Again, for the coin I made a paper wallet generator for, the values would be:

Network version byte = 50 decimal = 32 hex (or 0x32)
Private key prefix = 178 decimal = b2 hex (or 0xb2)

Now, open bitaddress.org.html and search for the following two lines:
Bitcoin.Address.networkVersion = 0x00; // mainnet

and a little further down:
ECKey.privateKeyPrefix = 0x80; // mainnet 0x80    testnet 0xEF


Change both of these values to the version byte and private key prefix of your altcoin of choice.. again in my example, they would be:
Bitcoin.Address.networkVersion = 0x32; // mainnet

and
ECKey.privateKeyPrefix = 0xb2; // mainnet 0x80    testnet 0xEF


The last thing you need to do to make the code work (without editing the graphics) is to search for every occurrence of:
return (ECKey.privateKeyPrefix == 0x80)

and replace the 0x80 with the value you set for ECKey.privateKeyPrefix above. There should only be 2 or 3 places where you have to make this edit.

As far as making it work, that's really all there is to it, just do some simple math and change a couple numbers in the bitaddress code.

Editing the graphics is a bit more tricky since they're base64 encoded inline with the HTML. You'll need to create a graphic the right size for the paper wallet (or just find the SVG or PSD of the graphic bitaddress uses and edit that.. but I don't remember where I downloaded that), save it as a PNG file and find a way to base58 encode it. Then search for
<img id='papersvg'
in the HTML source code and replace the long and seemingly random string of text after
data:image/png;base64,
with the equally long and seemingly random string of text you got as a result of base64 encoding your PNG.

This signature intentionally left blank.
jonanon (OP)
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
December 25, 2013, 10:52:24 AM
 #5

Thanks very much!

I'll look in to this and see what I can fathom!

 Grin
hilariousandco
Global Moderator
Legendary
*
Offline Offline

Activity: 3794
Merit: 2616


Join the world-leading crypto sportsbook NOW!


View Profile
December 25, 2013, 11:00:15 AM
 #6

You could just write/print out the public and private keys.

  ▄▄███████▄███████▄▄▄
 █████████████
▀▀▀▀▀▀████▄▄
███████████████
       ▀▀███▄
███████████████
          ▀███
 █████████████
             ███
███████████▀▀               ███
███                         ███
███                         ███
 ███                       ███
  ███▄                   ▄███
   ▀███▄▄             ▄▄███▀
     ▀▀████▄▄▄▄▄▄▄▄▄████▀▀
         ▀▀▀███████▀▀▀
░░░████▄▄▄▄
░▄▄░
▄▄███████▄▀█████▄▄
██▄████▌▐█▌█████▄██
████▀▄▄▄▌███░▄▄▄▀████
██████▄▄▄█▄▄▄██████
█░███████░▐█▌░███████░█
▀▀██▀░██░▐█▌░██░▀██▀▀
▄▄▄░█▀░█░██░▐█▌░██░█░▀█░▄▄▄
██▀░░░░▀██░▐█▌░██▀░░░░▀██
▀██
█████▄███▀▀██▀▀███▄███████▀
▀███████████████████████▀
▀▀▀▀███████████▀▀▀▀
▄▄██████▄▄
▀█▀
█  █▀█▀
  ▄█  ██  █▄  ▄
█ ▄█ █▀█▄▄█▀█ █▄ █
▀▄█ █ ███▄▄▄▄███ █ █▄▀
▀▀ █    ▄▄▄▄    █ ▀▀
   ██████   █
█     ▀▀     █
▀▄▀▄▀▄▀▄▀▄▀▄
▄ ██████▀▀██████ ▄
▄████████ ██ ████████▄
▀▀███████▄▄███████▀▀
▀▀▀████████▀▀▀
█████████████LEADING CRYPTO SPORTSBOOK & CASINO█████████████
MULTI
CURRENCY
1500+
CASINO GAMES
CRYPTO EXCLUSIVE
CLUBHOUSE
FAST & SECURE
PAYMENTS
.
..PLAY NOW!..
stevenh512
Full Member
***
Offline Offline

Activity: 137
Merit: 100



View Profile
December 25, 2013, 02:01:19 PM
 #7

You could just write/print out the public and private keys.

That works too, but if you want an actual offline "cold storage" paper wallet you still need a way to generate those keys without adding them to your actual online wallet.. so you'd have to make a new wallet.dat (preferably on an offline machine) or use vanitygen (again, preferably on an offline machine).

BTW once you know the network version byte and the first letter/number of an address for your coin, it's simple to generate them with vanitygen without having to edit any code.. using my example above (network version byte = 50 and first letter = M) you can generate a random address with:
vanitygen -X 50 M

This should work for any coin.

This signature intentionally left blank.
Feri22
Hero Member
*****
Offline Offline

Activity: 748
Merit: 500


View Profile
January 20, 2015, 03:16:15 PM
 #8

Could you please describe the change of graphics little bit more? I changed the prefix successfully, but i don't know with the base encoding...
Feri22
Hero Member
*****
Offline Offline

Activity: 748
Merit: 500


View Profile
January 23, 2015, 05:46:37 PM
 #9

Could you please describe the change of graphics little bit more? I changed the prefix successfully, but i don't know with the base encoding...

Nevermind, i figured it out  Wink
Madness
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500


My goal is becaming a billionaire.


View Profile WWW
January 23, 2015, 05:56:59 PM
 #10

I am trying to find out how to make paper wallets for different coins, Anoncoin, Litecoin and Unobtanium.

Is this possible?

If so how?


You can simply print Private key & public key and that's it , couldn't be more simple Grin
Otherwise there is this website I found & there is about 78 supported Digital Currencies including Litecoin,Anoncoin & Unobtanium .
Here you go => https://walletgenerator.net/
One you finish moving your mouse and get the adresses , you will see a ComboBox on the right up side , choose your currency there .

LiteCoinGuy
Legendary
*
Offline Offline

Activity: 1148
Merit: 1010


In Satoshi I Trust


View Profile WWW
January 23, 2015, 06:08:21 PM
 #11

also visit:

https://litecointalk.org/

http://ltc.block-explorer.com/charts

PaulPierce
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
January 24, 2015, 01:43:27 AM
 #12

[disclaimer]
If you try this, be sure to try generating a couple paper wallets and actually importing the private keys into your altcoin wallet to verify that the private keys match the addresses. If you do the math right they should, but it's always best to be safe before sending money to one of these.
[/disclaimer]

Well, when I say easy, I mean easy for someone who knows a little Javascript (and I don't know a whole lot of Javascript) and don't mind looking at the source code for whatever coins you want.

The main things you'll need to edit are the network version byte and the private key prefix byte. To get the network version byte, look at the source code for whatever altcoin you're trying to make a paper wallet generator for (either a local downloaded copy of the source code, or just look on GitHub). You're looking for "src/base58.h" somewhere around like 280, you should see something like this:
PUBKEY_ADDRESS = 50

The number will be different for every coin, the example above is from the coin I made a paper wallet generator for since I'm looking right now at the changes I had to make.


The value you see for PUBKEY_ADDRESS is the network byte. Add 128 to that number to get the private key prefix, then (using Windows calculator or whatever method you prefer) convert both numbers to hexadecimal numbers. Again, for the coin I made a paper wallet generator for, the values would be:

Network version byte = 50 decimal = 32 hex (or 0x32)
Private key prefix = 178 decimal = b2 hex (or 0xb2)

Now, open bitaddress.org.html and search for the following two lines:
Bitcoin.Address.networkVersion = 0x00; // mainnet

and a little further down:
ECKey.privateKeyPrefix = 0x80; // mainnet 0x80    testnet 0xEF


Change both of these values to the version byte and private key prefix of your altcoin of choice.. again in my example, they would be:
Bitcoin.Address.networkVersion = 0x32; // mainnet

and
ECKey.privateKeyPrefix = 0xb2; // mainnet 0x80    testnet 0xEF


The last thing you need to do to make the code work (without editing the graphics) is to search for every occurrence of:
return (ECKey.privateKeyPrefix == 0x80)

and replace the 0x80 with the value you set for ECKey.privateKeyPrefix above. There should only be 2 or 3 places where you have to make this edit.

As far as making it work, that's really all there is to it, just do some simple math and change a couple numbers in the bitaddress code.

Editing the graphics is a bit more tricky since they're base64 encoded inline with the HTML. You'll need to create a graphic the right size for the paper wallet (or just find the SVG or PSD of the graphic bitaddress uses and edit that.. but I don't remember where I downloaded that), save it as a PNG file and find a way to base58 encode it. Then search for
<img id='papersvg'
in the HTML source code and replace the long and seemingly random string of text after
data:image/png;base64,
with the equally long and seemingly random string of text you got as a result of base64 encoding your PNG.

Oh!! well..I get it!! I read the whole thing for sure! Tongue

XBITCOIN
Member
**
Offline Offline

Activity: 128
Merit: 10


View Profile
May 04, 2015, 01:12:56 AM
Last edit: May 04, 2015, 03:13:33 AM by XBITCOIN
 #13

Ok, im still trying to figure out how exactly to determine the window.WIFPrefix and the window.compressedWIFPrefix??


case 'Bitcoin':   
     window.networkVersion = 0x00;
     window.privateKeyPrefix = 0x80;
     window.WIFPrefix = '5';
     window.compressedWIFPrefix = '[LK]';

     break;
   case 'Litecoin':
      window.networkVersion = 0x30;
      window.privateKeyPrefix = 0xb0;
      window.WIFPrefix = '6';
      window.compressedWIFPrefix = 'T';

      break;
   case 'Testnet':
      window.networkVersion = 0x6F;
      window.privateKeyPrefix = 0xEF;
      window.WIFPrefix = '9';
      window.compressedWIFPrefix = 'c';

      document.title = 'Bitcoin TESTNET paper wallet generator';
      break;

I am trying to set up an alt coin paper wallet generator and I havent been able to figure out how exactly to determine or find the value that needs to be place for the WIFPrefix and the compressedWIFPrefix?

Thanks,

Im Just forking this https://github.com/cantonbecker/bitcoinpaperwallet  and going to make wallets for my favorite Alts

XBITCOIN
Member
**
Offline Offline

Activity: 128
Merit: 10


View Profile
May 04, 2015, 03:00:30 AM
 #14

Well each coin will have to have their own paperwallet generator, I know Dash and Litecoin have one and if a coin because popular the devs usually develop one for them, I would check the mainsite of the altcoins to find out.

Once I am able to figure out how to determine the WIFPrefix I will be able to make a wallet for any coin so that Is why I am asking?

LFC_Bitcoin
Legendary
*
Offline Offline

Activity: 3528
Merit: 9542


#1 VIP Crypto Casino


View Profile
May 04, 2015, 11:58:35 AM
 #15

There is a lot of paranoia surrounding paper wallets.

Make sure you have a good anti virus, do a full scan before you do a paper wallet.
Make sure everything is ok then go to bitaddress.org, run it offline.
Create a paper wallet, print it on a dumb printer that doesn't use the internet then you're done.

I can probably count on one hand the number of issues I've ever seen reported using the above method.

.
.BITCASINO.. 
.
#1 VIP CRYPTO CASINO

▄██████████████▄
█▄████████████▄▀▄▄▄
█████████████████▄▄▄
█████▄▄▄▄▄▄██████████████▄
███████████████████████████████
████▀█████████████▄▄██████████
██████▀██████████████████████
████████████████▀██████▌████
███████████████▀▀▄█▄▀▀█████▀
███████████████████▀▀█████▀
 ▀▀▀▀▀▀▀██████████████
          ▀▀▀████████
                ▀▀▀███

.
......PLAY......
sat888com
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
May 04, 2015, 12:45:46 PM
 #16


https://bitcoinpaperwallet.com also offers generating paperwallets for Litecoin and Dogecoin
XBITCOIN
Member
**
Offline Offline

Activity: 128
Merit: 10


View Profile
May 04, 2015, 01:24:40 PM
 #17

I was able to figure out the compressedWIFPrefix is basically the Letter that the wallet generated private key starts with, in the case of Bitcoin it starts with either L or K which is why you see [LK] and Litcoin is T

The way that I determine the compressedWIFPrefix was by opening a wallet and typing in the console: dumpprivkey "The wallets address" Press enter and it will give you the compressed private key (52 digits), then you can see what letter the key starts with, Litecoin starts with T T77jSKLkPvX4SBgRN8v11jTdnHwb8ckrn7WLjXcNjLikug2dAhaP

To Determine the WIFPrefix I had to run the rest of the code with
window.networkVersion = 0x30;
      window.privateKeyPrefix = 0xb0;
      window.WIFPrefix = 'Put any Number in here to start';
      window.compressedWIFPrefix = 'T';

And the output automatically shows the Private Key Prefix as the first number of the 51 digit string using
https://github.com/cantonbecker/bitcoinpaperwallet


The Private Key WIF (Wallet Import Format) is a code that needs to be keep secret since it can be used to spend any funds that have been sent to the corresponding public key. Keys can be encoded in a number of different formats. The most popular encoding formats (WIF, WIFC, HEX, B64) are shown below.


Public Litecoin Address
LdZ2AU1oWfmqGopivVGG5fmmR4KyM42kva
Litecoin Address Compressed Format
LMvQWzsUppbdxq39JeMv3KqXantVSH2idr


Public Key (130 characters [0-9A-F]): 04C5CE09ABF9C5E1A0ACE700F7729FA996AB5115B05857D8EF550DB34F96A7E184C1BB8E00A07A0 6F3BF64FB3641A13A1618A8822B9791BEDC33AD40116BF68244
Public Key (compressed, 66 characters [0-9A-F]): 02C5CE09ABF9C5E1A0ACE700F7729FA996AB5115B05857D8EF550DB34F96A7E184

Private Key WIF
51 characters base58, starts with a '6'
6v3S2CrndTdGH8QS1Fw9cWZKJWfee52KytmiB687HPbPBdobUX9
Private Key WIF Compressed
52 characters base58, starts with a 'T'
T77jSKLkPvX4SBgRN8v11jTdnHwb8ckrn7WLjXcNjLikug2dAhaP



Private Key Hexadecimal Format (64 characters [0-9A-F]): 79480E439276C481E13799439A9A0BEC103E2701B17851A236650658F685C272
Private Key Base64 (44 characters): eUgOQ5J2xIHhN5lDmpoL7BA+JwGxeFGiNmUGWPaFwnI=

So, it works perfect now!

BillyBobZorton
Legendary
*
Offline Offline

Activity: 1204
Merit: 1028


View Profile
May 04, 2015, 02:49:12 PM
 #18

There is a lot of paranoia surrounding paper wallets.

Make sure you have a good anti virus, do a full scan before you do a paper wallet.
Make sure everything is ok then go to bitaddress.org, run it offline.
Create a paper wallet, print it on a dumb printer that doesn't use the internet then you're done.

I can probably count on one hand the number of issues I've ever seen reported using the above method.
How safe is to download the code anyway? even if you do that, your computer could still be compromised. I would ideally do that, but under Live OS running from a DVD where it's highly unlikely that your OS is compromised (literally only chance would be a man in the middle attack, in other words a compromised .iso file)
dothebeats
Legendary
*
Offline Offline

Activity: 3640
Merit: 1352


Cashback 15%


View Profile
May 04, 2015, 03:30:28 PM
 #19

There is a lot of paranoia surrounding paper wallets.

Make sure you have a good anti virus, do a full scan before you do a paper wallet.
Make sure everything is ok then go to bitaddress.org, run it offline.
Create a paper wallet, print it on a dumb printer that doesn't use the internet then you're done.

I can probably count on one hand the number of issues I've ever seen reported using the above method.
How safe is to download the code anyway? even if you do that, your computer could still be compromised. I would ideally do that, but under Live OS running from a DVD where it's highly unlikely that your OS is compromised (literally only chance would be a man in the middle attack, in other words a compromised .iso file)

Well I have created several paper wallets and I haven't downloaded any code from any website to produce one, instead, I directly print it once the necessary things are done. You need to run bitaddress.org offline so as to minimize the risk of having a compromised paper wallet in terms of security. Also, once you made the wallet, be sure to keep it safe. You don't want to have a wallet that's useless after all those safety precautions and cautious procedures, do you?

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
BitUsher
Legendary
*
Offline Offline

Activity: 994
Merit: 1034


View Profile
May 04, 2015, 04:43:16 PM
 #20

I am trying to find out how to make paper wallets for different coins, Anoncoin, Litecoin and Unobtanium.

Is this possible?

If so how?

Might be better to move this to altcoin section because they would be more familiar with it and it has nothing to do with bitcoin.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!