• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

How to make a Darkcoin Paper Wallet

Hey Everyone,

Could someone tell me how I decrypt the BIP38 encrypted password so I can enter it into the Client?
Thanks!
 
Last edited by a moderator:
Hey Everyone,

Could someone tell me how I decrypt the BIP38 encrypted password so I can enter it into the Client?
Thanks!

Not sure if I understand you question correctly but if you actually mean BIP38 encrypted private key and not password you can try this:

https://walletgenerator.net/?currency=Darkcoin
Click "Wallet Details" -> paste BIP38 encrypted private key in "Enter Private Key" -> click "View Details" ("Enter BIP38 Passphrase" appears) -> Enter BIP38 Passphrase and click Decrypt BIP38 -> look for "Private Key WIF 51 characters Base58"

NOTE: I would do this in offline incognito mode just in case ;)
 
Thanks UdjinM6!

That did it, I think? After getting the Private WIF 51 I uploaded it without issue. It did the "scanning" think. What my question now is where do I see that the small amount I had 0.01 dark got added to my wallet? Again, really appreciate the help as I learn how to use the software.
 
Thanks UdjinM6!

That did it, I think? After getting the Private WIF 51 I uploaded it without issue. It did the "scanning" think. What my question now is where do I see that the small amount I had 0.01 dark got added to my wallet? Again, really appreciate the help as I learn how to use the software.
Not sure what you mean by "uploading" Private WIF 51... You should keep it secret and never share with anybody.
What you actually need to do after you got it is to open Darkcoin wallet, go to "Tools" -> "Debug console" and enter in the text field there "importprivkey PrivateWIF51". Replace PrivateWIF51 with your actual key of course. If your wallet is fully synced and this service actually works as intended (so privatekey is valid and match the one you had before) then you should see you coins on "Overview" tab in the top left corner, next to "Available" and also some line(s) on "Transaction" tab. It might also require to close your wallet after importing private key and to re-open it again to force wallet to give you correct balance/transactions list.

PS. I never made a real BIP38 encrypted wallet for myself to be honest, I just know how it should work and I just never had problems with another type of wallets on waletgenerator.net
 
FYI, the updated link is: http://paper.dashpay.io/

It still shows "Darkcoin" for the background image. (paper_background.png) or the direct link is: http://paper.dashpay.io/paper_background.png

Source is here: https://github.com/internetape/paperwallet (or more directly, here: https://github.com/internetape/paperwallet/blob/master/paper_background.png)

Anyone want to help out and update the background with DASH logo?

I get you that file by the end of the week
Thanks for the ping
:smile:
 
Hmm... I must be doing something wrong. I cannot import the private key into Dash-QT.

I typed this in:
importprivkey 6Pf...ML6

(note the ... is showing that there are other characters in there... but just didn't want to share with the world what they are; I did not manually type the address in, rather I scanned it)

And I got this:
Invalid private key encoding (code -5)

echo -n 6Pf...L6 | wc -c
58

BIP38 is "A method is proposed for encrypting and encoding a passphrase-protected Bitcoin private key record in the form of a 58-character Base58Check-encoded printable string. " Well, it is 58 characters.

Note: I tried it without the BIP38 option checked and that was successful.

Steps:
I went to paper.dashpay.io, moved mouse, clicked on the "paper wallet" tab, checked "hide art", checked "BIP38 encrypt", entered a password, then clicked "generate".

I have tried with "set listen=1" and "set listen=0". Same results. I saw early versions of BTC paper wallets needed listen, but not sure if we need that for DASH paper wallet.

Also, I tried to validate the public key, but it did not validate either:

validateaddress XyUwGpGLUifYzaDRZdLKAyVUurKsyeqibo
{
"isvalid" : true,
"address" : "XyUwGpGLUifYzaDRZdLKAyVUurKsyeqibo",
"ismine" : false
}

not-so-ninja-edit: the public key did validate, but is dependent on the importprivkey working.

Anyone have any ideas?
 
Last edited by a moderator:
Hmm... I must be doing something wrong. I cannot import the private key into Dash-QT.

I typed this in:
importprivkey 6Pf...ML6

(note the ... is showing that there are other characters in there... but just didn't want to share with the world what they are; I did not manually type the address in, rather I scanned it)

And I got this:
Invalid private key encoding (code -5)

echo -n 6Pf...L6 | wc -c
58

BIP38 is "A method is proposed for encrypting and encoding a passphrase-protected Bitcoin private key record in the form of a 58-character Base58Check-encoded printable string. " Well, it is 58 characters.

Note: I tried it without the BIP38 option checked and that was successful.

Steps:
I went to paper.dashpay.io, moved mouse, clicked on the "paper wallet" tab, checked "hide art", checked "BIP38 encrypt", entered a password, then clicked "generate".

I have tried with "set listen=1" and "set listen=0". Same results. I saw early versions of BTC paper wallets needed listen, but not sure if we need that for DASH paper wallet.

Also, I tried to validate the public key, but it did not validate either:

validateaddress XyUwGpGLUifYzaDRZdLKAyVUurKsyeqibo
{
"isvalid" : true,
"address" : "XyUwGpGLUifYzaDRZdLKAyVUurKsyeqibo",
"ismine" : false
}

Anyone have any ideas?
Importing bip38 privkeys is not supported by wallet, you need to decrypt it first. And sadly that part is broken on paper.dashpay.io :sad: so use https://walletgenerator.net/?currency=Darkcoin# instead:
Go to Wallet Detail tab, enter bip38 privkey, click View Details button, enter bip38 password, click Decrypt BIP38 button, grab "Private Key WIF 51 characters Base58" and use it in inportprivkey command. Do all of this offline to be more safe.
 
Nevermind. moli and UdjinM6 answered this on another thread. If you see a BIP38 encrypted private key, you have to decrypt it first. https://walletgenerator.net/?currency=Darkcoin, click on "Wallet details", enter the encrypted value, wait, then copy the "Private Key WIF Compressed 52 characters Base58" value. Argh. Not very intuitive.

Ha! UdjinM6 responded before I could finish typing this...
try "Private Key WIF 51 characters Base58" not the "Private Key WIF Compressed 52 characters Base58" as I think most of encoders use uncompressed privkeys (I should've fix that post, will do now)
 
Would it be difficult to add importencprivkey <bip38key> ?

Edit: What I mean is to add another command (like import encrypted private key) that would take the encrypted key and process it. It feels like it would be 'safer'. However, I am not sure how much effort/work that would be. I don't think this feature is used often.
 
Last edited by a moderator:
Nevermind. moli and UdjinM6 answered this on another thread. If you see a BIP38 encrypted private key, you have to decrypt it first. https://walletgenerator.net/?currency=Darkcoin, click on "Wallet details", enter the encrypted value, wait, then copy the "Private Key WIF Compressed 52 characters Base58" value. Argh. Not very intuitive.

Ha! UdjinM6 responded before I could finish typing this...
LOL... Udjin is our hero...
I need to try out this paper wallet to see for myself... on my list next...
 
Weird. The import "worked" for the "52" above, but it did not validate the address. Trying the "51" address now.

moli You could wait a week or so. I was learning so we (tungfa and buster) could create a video to show others. :)
 
Yep, that worked!

21:18:56

validateaddress XyUwGpGLUifYzaDRZdLKAyVUurKsyeqibo


21:18:56

{
"isvalid" : true,
"address" : "XyUwGpGLUifYzaDRZdLKAyVUurKsyeqibo",
"ismine" : true,
"isscript" : false,
"pubkey" : "04ab9fdd0a78b062f7d0efbf93446c54b9fcfea906b4284de86e05e2a1b385bf1ef8276cc1dfc6a8567ce0be595b6369fec46ed3a26eb4934001073fd97ce94954",
"iscompressed" : false,
"account" : ""
}


Kewl!
 
Weird. The import "worked" for the "52" above, but it did not validate the address. Trying the "51" address now.

moli You could wait a week or so. I was learning so we (tungfa and buster) could create a video to show others. :)
yes, it work for both because actually it's the same private key BUT you get 2 different "versions" of public key for it and 2 different addresses respectively. And to tell wallet which one to use you need to use the right "version" of private key.

EDIT: congrats! :)
 
I don't even know how to *test* this.

git diff src/rpcdump.cpp
diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp
index 1171965..e45f6c5 100644
--- a/src/rpcdump.cpp
+++ b/src/rpcdump.cpp
@@ -95,6 +95,12 @@ Value importprivkey(const Array& params, bool fHelp)
EnsureWalletIsUnlocked();

string strSecret = params[0].get_str();
+ // Without this check, a valid "Private Key WIF Compressed 52 characters Base58" will be imported, but it will not
+ // work as the user expected.
+ if (strSecret.length() != 51) {
+ throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid private key encoding - Expected Private Key WIF 51 characters Base58");
+ }
+
string strLabel = "";
if (params.size() > 1)
strLabel = params[1].get_str();

It compiles. LOL

I cannot even say, "it works on my machine!" ROFL

I don't have a Dash-Qt.
 
OMG is this complicated !!!
video when fixed ? redman , what do you think ?
 
I don't even know how to *test* this.

git diff src/rpcdump.cpp
diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp
index 1171965..e45f6c5 100644
--- a/src/rpcdump.cpp
+++ b/src/rpcdump.cpp
@@ -95,6 +95,12 @@ Value importprivkey(const Array& params, bool fHelp)
EnsureWalletIsUnlocked();

string strSecret = params[0].get_str();
+ // Without this check, a valid "Private Key WIF Compressed 52 characters Base58" will be imported, but it will not
+ // work as the user expected.
+ if (strSecret.length() != 51) {
+ throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid private key encoding - Expected Private Key WIF 51 characters Base58");
+ }
+
string strLabel = "";
if (params.size() > 1)
strLabel = params[1].get_str();

It compiles. LOL

I cannot even say, "it works on my machine!" ROFL

I don't have a Dash-Qt.

There is no need for that check, wif compressed 52 is a valid format (and wif 51 is actually an obsolete one). You just get another address with that and that's why validation for the one you expected failed. But once again - both of them are valid.
 
Back
Top