I have previously published a Casascius Bitcoin Utility... I have added a feature where you can generate your own paper wallets from a passphrase. This is for Windows, GUI application, written in C#.

With all the crap going on with bitcoin banks, the ability for the average joe to safely obtain and use paper wallets and private keys on paper needs to become more advanced. That includes the need to not trust anybody - including me as a provider of pre-printed ones.

Paper Bitcoin Wallet. Keep private, do not lose, do not allow anyone to make a copy.Anyone with the passphrase or private keys can steal your funds.

Passphrase was:Sample passphrase that should not be used for any real Bitcoin money transactions.Freely give out the Bitcoin address. The private key after each address is the key needed tounlock funds sent to the Bitcoin address.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.

The passphrase idea is such that I could sell a cheap arduino based gadget or similar that does the same thing, and this utility could be used as a reference implementation to confirm that the gadget produced key pairs according to the published algorithm.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.

Update: This can be compiled without needing any development tools installed. All you need is the .NET Framework, which is almost certainly already on your machine if you run any recent version of Windows.

When you install the .NET Framework, there should be a compiler at C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe (Framework instead of Framework64 if you're using 32-bit Windows)

Here is the command line to compile from source. Put all the .cs files from github in the same directory, along with BouncyCastle.crypto.dll. Run this from the command line. It will create bitcoinutility.exe.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.

...when i run the program it seems to work okay until i push generate wallet

It's throwing a fit over not having a resource file compiled in. I am looking up what else needs to be on the command line for that to happen.

EDIT: I have pushed a new commit to remove the dependency on the resource file. The resource file only had one text string I just moved into the code instead. The csc.exe compiler may not be able to handle resource files without installing other tools. Update source and try again.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.

...when i run the program it seems to work okay until i push generate wallet

It's throwing a fit over not having a resource file compiled in. I am looking up what else needs to be on the command line for that to happen.

EDIT: I have pushed a new commit to remove the dependency on the resource file. The resource file only had one text string I just moved into the code instead. The csc.exe compiler may not be able to handle resource files without installing other tools. Update source and try again.

casascius: don't take me wrong. i've read your previous threads and puzzles and i think you're an awesome coder who's doing great things for the community. its just that non tech GUI users like me can't utilize complicated command line scripts like you're writing. its really too bad b/c i love the outcomes of what you're doing.

casascius: don't take me wrong. i've read your previous threads and puzzles and i think you're an awesome coder who's doing great things for the community. its just that non tech GUI users like me can't utilize complicated command line scripts like you're writing. its really too bad b/c i love the outcomes of what you're doing.

I could compile it and give binaries but then I run the risk of people saying don't trust it because they can't verify it. And for good reason. They would point out that if I were a scammer I could just put a trojan in the binaries and rip you guys off, and with all the ripoffs lately, how can you blame them? I suppose one thing that sets me apart is I give out my real name and address, but the doubters will be the first to chime in that it could be "fake".

As you recognize, there's a gap between secure, convenient, and cheap. If you trust me, I sell paper bitcoin wallets in the mail. That's convenient and cheap, and only insecure to the extent that you're trusting me to not rip you off, otherwise they bulletproof.

If I were to write this program to run on a gadget I could sell you that printed your addresses on a roll of paper, then it'd be secure and convenient, but not cheap.

And of course, compiling these programs is secure and cheap (free), but not convenient.

The closer these three points of the triangle come together, the sooner Bitcoin will take off into the stratosphere.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.

build in some sort of way to generate an actual wallet.dat file. it would probably be easier than trying to edit in an existing wallet.dat. and would probably be safer. also what does WIF mean and what exacly do the arrows do, i type some stuff into the 1st fied and push an arrow and it gives a .net error i guess you call it. otherwise people would just use vanitygen, it makes thousands of addresses a second.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.

build in some sort of way to generate an actual wallet.dat file. it would probably be easier than trying to edit in an existing wallet.dat. and would probably be safer. also what does WIF mean and what exacly do the arrows do, i type some stuff into the 1st fied and push an arrow and it gives a .net error i guess you call it. otherwise people would just use vanitygen, it makes thousands of addresses a second.

Yeah I just don't know how to do that. Not familiar with working with the Berkeley DB. And I have heard there's multiple versions of this file format - not sure how much that matters. I have been using a patched bitcoind I downloaded from BitBills.com to re-import private keys.

WIF = Wallet Import Format = the private key made into a 51-character base58 string that starts with a 5 and contains a checksum to guard against typos. The format required by the utility from BitBills.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable. I never believe them. If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins. I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion. Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice. Don't keep coins online. Use paper wallets instead.