JSPM

@root/base58check

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q12569F
  • License SEE LICENSE IN LICENSE

Base58Check & WIF for PubKeyHash and PrivateKeys

Package Exports

  • @root/base58check
  • @root/base58check/base58check.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@root/base58check) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@root/base58check

Base58Check & WIF for Public Key Hash addresses and Private Keys

Usage

Can convert Public Key Hashes and Private Keys between Hex, Base58Check, and WIF.

CLI

npm install -g @root/base58check
# base58check <key> [version]

base58check XfMBLVNyzPxEELVUUsg7AJAHWKiV9do7Pj
# {
#   "version": "4c",
#   "pubKeyHash": "3320974335dc4888b501e965fe5ff3c4421c09c4"
# }

base58check 3320974335dc4888b501e965fe5ff3c4421c09c4 4c
# XfMBLVNyzPxEELVUUsg7AJAHWKiV9do7Pj

Node.js

npm install --save @root/base58check
let Base58Check = require("base58check").Base58Check;

let b58c = Base58Check.create();

// Public Key Hash
let pkh = `XfMBLVNyzPxEELVUUsg7AJAHWKiV9do7Pj`;
let parts = await b58c.verify(pkh);
/*
    {
      "version": "4c",
      "pubKeyHash": "3320974335dc4888b501e965fe5ff3c4421c09c4",
      "check": "9e5443ee"
    }
 */

// Private Key
let wif = "XE7KZ98bqtbomihJqkuRzi6DusLAXegQFBmnATDAUVSCxtcbigHb";
let parts = await b58c.verify(wif);
/*
    {
      "version": "cc",
      "privateKey": "543519e8a781d6986377df6ec18c76fceb270697f16f204408af72edc4fe70de",
      "compressed": true,
      "check": "24aeb2e6"
    }
 */

Options

You can enforce your instance of Base58Check to verify and generate a particular version of coin, or to use a different Base58 dictionary.

Base58Check.create({
  pubKeyHashVersion: `4c`, // Dash (`00` for Bitcoin)
  privateKeyVersion: `cc`, // Dash (`80` for Bitcoin)
  dictionary: `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`,
});

Base58Check Summary

  • 1 byte Version
  • 16 bytes "Compressed" Public Key Hash
  • 4 bytes Checksum
XxJ7EZT2VyJ821LeAzoT9aDDSuempCikd3

4c ed060e9316ea54396038b7ef703c0616025ddc55 03368b2e

{
  version: '4c',
  pubKeyHash: 'ed060e9316ea54396038b7ef703c0616025ddc55',
  check: '03368b2e'
}

WIF (Wallet Import Format)

  • 1 byte Version
  • 32 bytes Private Key
  • 1 byte (Optional) Has Compressed Public Key
  • 4 bytes Checksum
XJxvA5cC4zi3DYeMVUgHunF3nt5UajjXAvJaHnZRMunPNjyKmGfB

cc e51245e19bfc59800445c91d6623a8225f5e521d339fca2a5bbe71fb973dac0f (01) 90d16dc2

{
  version: 'cc',
  privateKey: 'e51245e19bfc59800445c91d6623a8225f5e521d339fca2a5bbe71fb973dac0f',
  compressed: true,
  check: '90d16dc2'
}