Skip to content

Instantly share code, notes, and snippets.

@hrobeers
Last active February 3, 2021 10:39
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hrobeers/214b2a7199875c477f13f48e5f675c4a to your computer and use it in GitHub Desktop.
Save hrobeers/214b2a7199875c477f13f48e5f675c4a to your computer and use it in GitHub Desktop.
Generate compressed and uncompressed bitcoin addresses from a private key with bitcore.
var bitcore = require("bitcore-lib");
var Buffer = require("buffer").Buffer;
var value = new Buffer.from("test", "utf8");
var hash = bitcore.crypto.Hash.sha256(value);
// Compressed Key (nu skool)
var bn = bitcore.crypto.BN.fromBuffer(hash);
var privateKey = new bitcore.PrivateKey(bn);
var wif = privateKey.toWIF();
// Uncompressed Key (old skool)
var privateKey2 = bitcore.PrivateKey.fromBuffer(hash);
var wif2 = privateKey2.toWIF();
var publicKey1 = new bitcore.PublicKey(privateKey);
var publicKey2 = new bitcore.PublicKey(privateKey2);
var addr1 = publicKey1.toAddress(); //compressed - 19eA3hUfKRt7aZymavdQFXg5EZ6KCVKxr8
var addr2 = publicKey2.toAddress(); //uncompressed - 1HKqKTMpBTZZ8H5zcqYEWYBaaWELrDEXeE
console.log('Compressed');
console.log('WIF: ' + wif);
console.log('Address: ' + addr1);
console.log('');
console.log('Uncompressed');
console.log('WIF: ' + wif2);
console.log('Address: ' + addr2);
@stempelo
Copy link

stempelo commented Feb 3, 2021

Great example, thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment