Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

bs58

cryptocoinjs13mMIT6.0.0TypeScript support: included

Base 58 encoding / decoding

base58, bitcoin, crypto, crytography, decode, decoding, encode, encoding, litecoin

readme

bs58

build status

JavaScript component to compute base 58 encoding. This encoding is typically used for crypto currencies such as Bitcoin.

Note: If you're looking for base 58 check encoding, see: https://github.com/bitcoinjs/bs58check, which depends upon this library.

Install

npm i --save bs58

API

encode(input)

input must be a Uint8Array, Buffer, or an Array. It returns a string.

example:

import bs58 from 'bs58'

const bytes = Uint8Array.from([
    0, 60,  23, 110, 101, 155, 234,
   15, 41, 163, 233, 191, 120, 128,
  193, 18, 177, 179,  27,  77, 200,
   38, 38, 129, 135
])
const address = bs58.encode(bytes)
console.log(address)
// => 16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS

decode(input)

input must be a base 58 encoded string. Returns a Uint8Array.

example:

import bs58 from 'bs58'

const address = '16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS'
const bytes = bs58.decode(address)
// See uint8array-tools package for helpful hex encoding/decoding/compare tools
console.log(Buffer.from(bytes).toString('hex'))
// => 003c176e659bea0f29a3e9bf7880c112b1b31b4dc826268187

Browser

You can use this module in the browser. Install Browserify:

npm install -g browserify

then run:

browserify node_modules/bs58/cjs/index.cjs -o bs58.bundle.js --standalone bs58

Hack / Test

Uses JavaScript standard style. Read more:

js-standard-style

Credits

License

MIT

changelog

5.0.0 / 2022-02-17

  • decode and decodeUnsafe now return a Uint8Array.

4.0.0 / 2016-12-3

3.0.0 / 2015-08-18

  • refactored module into generic base-x.

2.0.1 / 2014-12-23

  • performance boost in encode() #10

2.0.0 / 2014-10-03

1.2.1 / 2014-07-24

1.2.0 / 2014-06-29

1.1.0 / 2014-06-26

  • user Buffer internally for calculations, providing cleaner code and a performance increase. Daniel Cousens

1.0.0 / 2014-05-27

  • removed binstring dep, Buffer now only input to encode() and output of decode()
  • update bigi from ~0.3.0 to ^1.1.0
  • added travis-ci support
  • added coveralls support
  • modified tests and library to handle fixture style testing (thanks to bitcoinjs-lib devs and Daniel Cousens)

0.3.0 / 2014-02-24

  • duck type input to encode and change output of decode to Buffer.

0.2.1 / 2014-02-24

  • removed bower and component support. Closes #1
  • convert from 4 spaces to 2

0.2.0 / 2013-12-07

  • renamed from cryptocoin-base58 to bs58

0.1.0 / 2013-11-20

  • removed AMD support

0.0.1 / 2013-11-04

  • initial release