bech32.ts

Fork of bech32: no dependencies, cross-platform, refactored.

Usage no npm install needed!

<script type="module">
  import bech32Ts from 'https://cdn.skypack.dev/bech32.ts';
</script>

README

bech32.ts

Bech32 rewritten in Typescript:

  • Removed all dependencies
  • Works in browser now, with Uint8Arrays
  • Made the code much more readable by refactoring

Unfortunately, the original authors don't want these changes.

The new homepage is https://github.com/paulmillr/bech32.ts


A BIP173 compatible Bech32 encoding/decoding library.

Example

let bech32 = require('bech32')

bech32.decode('abcdef1qpzry9x8gf2tvdw0s3jn54khce6mua7lmqqqxw')
// => {
// 	 prefix: 'abcdef',
// 	 words: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
// }

let words = bech32.toWords(Buffer.from('foobar', 'utf8'))
bech32.encode('foo', words)
// => 'foo1vehk7cnpwgry9h96'

Advanced

BIP173 enforces a limitation of 90 characters, if extend the LIMIT parameter beyond this, be aware that the effectiveness of checksum decreases as the length increases.

It is highly recommended NOT exceed 1023 characters, as the module could only guarantee detecting 1 error.

Credits

  • Peter Wuille for the reference JavaScript implementation, and for authoring the Bech32 BIP173.

License MIT