A lightweight (~6 KB) universal JavaScript digital signature and cryptokey utilty package for Antelope based blockchains.
- Generate sep256k1 signatures (SIG_K1) .
- Generate secp256k1 key pair (private and public keys).
- Derive public key from private key.
- Recover public key from siganture.
- Create and recover private key mnemonic (BIP39).
- Legacy key transformation utility functions.
For Node.js, to install antelope-ecc
run:
npm i antelope-ecc
Signing a packed transaction.
import sign_packed_txn from "antelope-ecc/sign_packed_txn.js";
sign_packed_txn({
chain_id: "2a02a0053…",
transaction_header: "fa123232…",
transaction_body: "fa45ffa2…",
wif_private_key: "PVT_K1_…",
}).then(console.log);
The logged output will be SIG_K1_…
Sign a message digest.
import sign_txn from "antelope-ecc/sign_txn.js";
import crypto from "crypto";
sign_txn({
hash: crypto
.createHash("sha256")
.update(Uint8Array.from([1, 2, 3, 4, 5]))
.digest()
.toString("hex"), // Uint8Array | string
wif_private_key: "PVT_K1_43…",
}).then(console.log);
The logged output will be SIG_K1…
An example of how to create a pair keys.
import new_keys from "antelope-ecc/new_keys.js";
new_keys().then(console.log);
The logged output will be an object containing PUB_K1 and PVT_K1 wif keys.
Recover public key from signature.
import recover_public_key from "antelope-ecc/recover_public_key.js";
const hash = Uint8Array.from(
crypto.createHash("sha256").update(Buffer.from("ff", "hex")).digest()
); // Data signed with private key
recover_public_key({
signature: "SIG_K1_…",
hash,
}).then(console.log);
The logged output will contain the public key “PUB_K1…” used to sign the hash.
Supported runtime environments:
- Node.js versions
>=16.0.0
. - Browsers matching the Browserslist query
> 0.5%, not OperaMini all, not dead
. - Deno version
^1.30.0
.
The npm package antelope-ecc
features optimal JavaScript module design, It doesn’t have a main index module, so use deep imports from the ECMAScript modules that are exported via the package.json
field exports
:
legacy_from_private_key.js
legacy_from_public_key.js
legacy_to_private_key.js
private_key_from_wif.js
private_key_to_wif.js
public_key_from_private_wif.js
public_key_from_wif.js
public_key_to_wif.js
validate_private_key.js
validate_public_key.js
mnemonic-create.js
mnemonic-recover.js
new_keys.js
sign_packed_txn.js
sign.js