Copy and paste the above into the Public Key field in the Vanity Pool Website.
+
+
+ Private Key:
+
+
Copy and paste the above Private Key field into a text file. Ideally save to an encrypted drive.
+ You will need this to retrieve the Bitcoin Private Key once the Pool has found your prefix.
+
+
+
+
+
Enter Private Key (previously saved):
+
+
Enter Private Key (from Vanity Pool):
+
+
+
+
+
+
+ Private Key (WIF):
+ -
+
The above is the Private Key to load into your wallet.
+
+
+
+ New Address:
+ -
+
The above is your new address that should include your required prefix.
+
+
+
+
+
@@ -4301,6 +4354,35 @@
}
},
+ generateKeyPair: function (idPostFix) {
+ idPostFix = idPostFix || "";
+ try {
+ var key = new Bitcoin.ECKey(false);
+ var publicKey = Crypto.util.bytesToHex(key.getPub()).toString().toUpperCase();
+ //var halfWayIndex = Math.floor(publicKey.length / 2);
+ //var pubKeyFirstHalf = publicKey.substr(0, halfWayIndex);
+ //var pubKeySecondHalf = publicKey.substr(halfWayIndex, publicKey.length - halfWayIndex);
+ //publicKey = pubKeyFirstHalf + " " + pubKeySecondHalf;
+ var privateKey = Crypto.util.bytesToHex(key.getBitcoinPrivateKeyByteArray()).toString().toUpperCase();
+ }
+ catch (e) {
+ alert(e);
+ publicKey = false;
+ }
+
+ if (publicKey) {
+ document.getElementById("vanitypubkey" + idPostFix).innerHTML = publicKey;
+ document.getElementById("vanityprivatekey" + idPostFix).innerHTML = privateKey;
+
+ }
+ // browsers that failed to generate keys
+ else {
+ document.getElementById("vanitypubkey" + idPostFix).innerHTML = "error";
+ document.getElementById("vanityprivatekey" + idPostFix).innerHTML = "error";
+ }
+ document.getElementById("vanitykeyarea").style.display = "block";
+ },
+
qrCode: {
// determine which type number is big enough for the input text length
@@ -4835,10 +4917,45 @@
document.getElementById("detailqrcodeprivate").innerHTML = "";
document.getElementById("detailqrcodeprivatecomp").innerHTML = "";
}
- }
+ },
+ vanitykey: {
+ open: function () {
+ for (var wType in ninja.walletType) {
+ ninja.wallets[wType].close();
+ }
+ document.getElementById("vanityarea").style.display = "block";
+ document.getElementById("vanitykeycommands").style.display = "block";
+ },
+
+ close: function () {
+ document.getElementById("vanityarea").style.display = "none";
+ document.getElementById("vanitykeyarea").style.display = "none";
+ document.getElementById("vanitykeycommands").style.display = "none";
+ },
+ addKeys: function () {
+ var privateKeyWif = false;
+ var bitcoinAddress = false;
+ //document.getElementById("vanityadditionalarea").style.display = "block";
+ try{
+ var privateKeyString=document.getElementById("vanityprivkey").value;
+ var privatePoolKeyString=document.getElementById("vanitypoolprivkey").value;
+ var privateKey=BigInteger.fromByteArrayUnsigned(Crypto.util.hexToBytes(privateKeyString));
+ var privatePoolKey=BigInteger.fromByteArrayUnsigned(Crypto.util.hexToBytes(privatePoolKeyString));
+ var n=EllipticCurve.getSECCurveByName("secp256k1").getN();
+ var newPrivateKey=new Bitcoin.ECKey(privateKey.multiply(privatePoolKey).mod(n));
+ bitcoinAddress = newPrivateKey.getBitcoinAddress();
+ privateKeyWif = newPrivateKey.getBitcoinWalletImportFormat();
+ } catch (e) {
+ alert(e);
+ }
+ document.getElementById("vanityprivatekeyWIF").innerHTML = privateKeyWif;
+ document.getElementById("vanityAddress").innerHTML = bitcoinAddress;
+ },
+
+ },
},
- walletType: { "singlewallet": "singlewallet", "paperwallet": "paperwallet", "bulkwallet": "bulkwallet", "brainwallet": "brainwallet", "detailwallet": "detailwallet" },
+ walletType: { "singlewallet": "singlewallet", "paperwallet": "paperwallet", "bulkwallet": "bulkwallet", "brainwallet": "brainwallet", "detailwallet": "detailwallet","vanitykey":"vanitykey" },
getQueryString: function () {
var result = {}, queryString = location.search.substring(1), re = /([^&=]+)=([^&]*)/g, m;
@@ -4863,4 +4980,5 @@
setTimeout(ninja.wallets.singlewallet.forceGenerate, ninja.seedLimit * 20);