Skip to content
Encodes and decodes address formats for various cryptocurrencies
TypeScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Add DASH Support Nov 4, 2019
.gitignore Initial commit Oct 14, 2019
.prettierrc Initial commit Oct 14, 2019
.travis.yml Don't use stages in travis Oct 22, 2019
LICENSE Create LICENSE Oct 14, 2019
README.md Add DASH Support Nov 4, 2019
jestconfig.json Initial commit Oct 14, 2019
package-lock.json Add XLM Address format support Nov 2, 2019
package.json Add XLM Address format support Nov 2, 2019
tsconfig.json Initial commit Oct 14, 2019
tslint.json Initial commit Oct 14, 2019

README.md

address-encoder

This typescript library encodes and decodes address formats for various cryptocurrencies.

Text-format addresses are decoded into their native binary representations, and vice-versa. In the case of Bitcoin-derived chains, this means their scriptPubKey; for Ethereum-derived chains this is their hash.

This library was written for use with EIP 2304, but may be useful for anyone looking for a general purpose cryptocurrency address codec.

Installation

Using NPM

npm install --save @ensdomains/address-encoder

Usage

import { formatsByName, formatsByCoinType } from '@ensdomains/address-encoder';

const data = formatsByName['BTC'].decoder('1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa');
console.log(data.toString('hex')); // 76a91462e907b15cbf27d5425399ebf6f0fb50ebb88f1888ac
const addr = formatsByCoinType[0].encoder(data);
console.log(addr); // 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Supported cryptocurrencies

This library currently supports the following cryptocurrencies and address formats:

  • BTC (base58check P2PKH and P2SH, and bech32 segwit)
  • LTC (base58check P2PHK and P2SH, and bech32 segwit)
  • DOGE (base58check P2PKH and P2SH)
  • MONA (base58check P2PKH and P2SH)
  • DASH (base58check P2PKH and P2SH)
  • ETH (checksummed-hex)
  • ETC (checksummed-hex)
  • RSK (checksummed-hex)
  • XRP (base58check-ripple)
  • BCH (base58check and cashAddr; decodes to cashAddr)
  • BNB (bech32)
  • XLM (ed25519 public key)

PRs to add additional chains and address types are welcome.

You can’t perform that action at this time.