Skip to content

CoinSpace/cashaddr

Repository files navigation

cashaddr

This is a JavaScript implementation for the CashAddr address format used in Bitcoin Cash. It serves as a glue to integrate the @scure/btc-signer library with Bitcoin Cash.

This library depends on and is heavily coupled with the @scure/base and @scure/btc-signer libraries.

Installation

npm install cashaddr

Usage

import { Address, NETWORK } from 'cashaddr';
import { hex } from '@scure/base';

const hash = hex.decode('f5bf48b397dae70be82b3cca4793f8eb2b6cdac9');

const address = Address(NETWORK).encode({
  format: 'cashaddr',
  type: 'pkh',
  hash,
});
console.log(address);
// bitcoincash:qr6m7j9njldwwzlg9v7v53unlr4jkmx6eylep8ekg2

const decoded = Address(NETWORK).decode('bitcoincash:qr6m7j9njldwwzlg9v7v53unlr4jkmx6eylep8ekg2');
console.log(decoded);
// { type: 'pkh', hash: Uint8Array(20) [...], format: 'cashaddr' }

const legacy = Address(NETWORK).encode({
  format: 'legacy',
  type: 'pkh',
  hash,
});
console.log(legacy);
// 1PQPheJQSauxRPTxzNMUco1XmoCyPoEJCp

const converted = Address(NETWORK).toCashAddress('1PQPheJQSauxRPTxzNMUco1XmoCyPoEJCp');
console.log(converted);
// bitcoincash:qr6m7j9njldwwzlg9v7v53unlr4jkmx6eylep8ekg2

License

MIT