Nomenclature Predictably Misunderstood

    ecpair
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.0 • Public • Published

    ecpair

    Github CI NPM code style: prettier

    A library for managing SECP256k1 keypairs written in TypeScript with transpiled JavaScript committed to git.

    Example

    TypeScript

    import { Signer, SignerAsync, ECPairInterface, ECPairFactory, ECPairAPI, TinySecp256k1Interface } from 'ecpair';
    import * as crypto from 'crypto';
    
    // You need to provide the ECC library. The ECC library must implement 
    // all the methods of the `TinySecp256k1Interface` interface.
    const tinysecp: TinySecp256k1Interface = require('tiny-secp256k1');
    const ECPair: ECPairAPI = ECPairFactory(tinysecp);
    
    // You don't need to explicitly write ECPairInterface, but just to show
    // that the keyPair implements the interface this example includes it.
    
    // From WIF
    const keyPair1: ECPairInterface = ECPair.fromWIF('KynD8ZKdViVo5W82oyxvE18BbG6nZPVQ8Td8hYbwU94RmyUALUik');
    // Random private key
    const keyPair2 = ECPair.fromPrivateKey(crypto.randomBytes(32));
    // OR (uses randombytes library, compatible with browser)
    const keyPair3 = ECPair.makeRandom();
    // OR use your own custom random buffer generator BE CAREFUL!!!!
    const customRandomBufferFunc = (size: number): Buffer => crypto.randomBytes(size);
    const keyPair4 = ECPair.makeRandom({ rng: customRandomBufferFunc });
    // From pubkey (33 or 65 byte DER format public key)
    const keyPair5 = ECPair.fromPublicKey(keyPair1.publicKey);
    
    // Pass a custom network
    const network = {}; // Your custom network object here
    ECPair.makeRandom({ network });
    ECPair.fromPrivateKey(crypto.randomBytes(32), { network });
    ECPair.fromPublicKey(keyPair1.publicKey, { network });
    // fromWIF will check the WIF version against the network you pass in
    // pass in multiple networks if you are not sure
    ECPair.fromWIF('wif key...', network);
    const network2 = {}; // Your custom network object here
    const network3 = {}; // Your custom network object here
    ECPair.fromWIF('wif key...', [network, network2, network3]);

    LICENSE MIT

    Written and tested by bitcoinjs-lib contributors since 2014.

    Install

    npm i ecpair

    DownloadsWeekly Downloads

    9,329

    Version

    2.1.0

    License

    MIT

    Unpacked Size

    24.4 kB

    Total Files

    13

    Last publish

    Collaborators

    • junderw