How to make a Darkcoin Paper Wallet

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,899
6,744
1,283
Aiahhh ….
i let you guys sort this out and wait until it is done and save !
 

flare

Grizzled Member
May 18, 2014
2,286
2,404
1,183
Germany
Well, I wouldn't. Use https://paper.darkcoin.io and check if the certificate matches that of https://www.darkcoin.io and if so, whitelist it. If you don't know how to do that, wait until they have sorted it out or accept the (fairly small) risk of being snooped upon when using http://paper.darkcoin.io.
https://paper.darkcoin.io is not even live, no need to compare certificates...

If tungfa needs the most secure solution: clone the source repo, disconnect your LAN and run it locally in your browser :D

 

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,899
6,744
1,283
too complicate !
sorry but i need a simple link or something I can post on social media !
1 click deal (for the normal population)
will this be sorted out in the future (?) or soon ?
 

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,899
6,744
1,283
Great translation !
Well done, thank you gentlemen
it is always a pleasure to be here !
Love this community !
 

ttbtc

New Member
Dec 10, 2014
1
0
1
Hi Guys

I create an encrypted paper wallet for test

how can I import this wallet to Darkcoin-Qt ? or how can I unlock the paper wallet?

I try using: walletpassphrase "Your Passphrase" "600" but do not work
 

oblox

Well-known Member
Aug 6, 2014
1,032
537
183
Hi Guys

I create an encrypted paper wallet for test

how can I import this wallet to Darkcoin-Qt ? or how can I unlock the paper wallet?

I try using: walletpassphrase "Your Passphrase" "600" but do not work
Assuming you already dumped your private key (dumpprivkey), you have to unlock the wallet you're importing into and then at the console:

importprivkey "PRIVATE KEY"
 

spartanblue

New Member
Jan 24, 2015
10
3
3
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:

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
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 ;)
 
  • Like
Reactions: tungfa

spartanblue

New Member
Jan 24, 2015
10
3
3
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.
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
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
 
  • Like
Reactions: spartanblue

spartanblue

New Member
Jan 24, 2015
10
3
3
I tested it a bunch of times with and without encrypting the private key and it works perfectly. Thanks again for your help!
 
  • Like
Reactions: UdjinM6

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,899
6,744
1,283
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
:)
 

darkred

Active Member
Feb 6, 2015
235
262
123
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:

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
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.
 
  • Like
Reactions: moli

darkred

Active Member
Feb 6, 2015
235
262
123
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...
 
  • Like
Reactions: moli

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
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)
 

darkred

Active Member
Feb 6, 2015
235
262
123
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:

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
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...
 

darkred

Active Member
Feb 6, 2015
235
262
123
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. :)
 
  • Like
Reactions: moli

darkred

Active Member
Feb 6, 2015
235
262
123
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!
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
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! :)
 

darkred

Active Member
Feb 6, 2015
235
262
123
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.
 

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,899
6,744
1,283
OMG is this complicated !!!
video when fixed ? redman , what do you think ?
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
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.