https://github.com/pur3miish/antelope-ecc
A universal JavaScript ECC digital signature and key utility package for Antelope based blockchains
https://github.com/pur3miish/antelope-ecc
antelope antelopeio-blockchain blockchain-technology crypto cryptography javascript sign-transactions signature signature-generation signature-verification
Last synced: about 1 month ago
JSON representation
A universal JavaScript ECC digital signature and key utility package for Antelope based blockchains
- Host: GitHub
- URL: https://github.com/pur3miish/antelope-ecc
- Owner: pur3miish
- License: mit
- Created: 2021-01-11T06:15:19.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-25T07:30:16.000Z (3 months ago)
- Last Synced: 2025-04-05T07:17:45.036Z (about 1 month ago)
- Topics: antelope, antelopeio-blockchain, blockchain-technology, crypto, cryptography, javascript, sign-transactions, signature, signature-generation, signature-verification
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/antelope-ecc
- Size: 214 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README

# Antelope ECC
[](https://www.npmjs.org/package/antelope-ecc) [](https://github.com/pur3miish/antelope-ecc/actions) [](https://github.com/pur3miish/antelope-ecc/blob/main/LICENSE)
A lightweight (\~6 KB) [universal](https://en.wikipedia.org/wiki/Isomorphic_JavaScript) JavaScript digital signature and cryptokey utilty package for Antelope based blockchains.
## About
antelope-ecc package is designed as an ESM (ECMAScript Module), leveraging modern JavaScript features like static imports, exports, and tree-shaking.
## Requirements
Supported runtime environments:
- [Node.js](https://nodejs.org) versions `>=18.0.0`.
- Browsers matching the [Browserslist](https://browsersl.ist) query [`> 0.5%, not OperaMini all, not dead`](https://browsersl.ist/?q=%3E+0.5%25%2C+not+OperaMini+all%2C+not+dead).## Installation
For [Node.js](https://nodejs.org), to install [`antelope-ecc`](https://npm.im/antelope-ecc) run:
```sh
npm i antelope-ecc
```_Ways to import in ESM_
```js
import { sign } from "antelope-ecc"; // Tree shaking capabilities.
```_As default exports_
```js
import AntelopeECC from "antelope-ecc";
```_Ways to require/import in Common JS_
```js
const AntelopeECC = import("antelope-ecc");
AntelopeECC.then(({ sign }) => {
// As import is async
});
```**Sign a message digest.**
```js
import { sign } from "anteope-ecc";
import { createHash } from "crypto";await sign({
hash: 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.**
```js
import { new_keys } from "antelope-ecc";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.**
```js
import { recover_public_key } from "antelope-ecc";const hash = Uint8Array.from(
crypto.createHash("sha256").update(Buffer.from("ff", "hex")).digest()
); // Data signed with private keyrecover_public_key({
signature: "SIG_K1_…",
hash,
}).then(console.log);
```> The logged output will contain the public key “PUB_K1…” used to sign the hash.
## Exports
ECMAScript modules deep exports are avaialble via [`package.json`](./package.json) field [`exports`](https://nodejs.org/api/packages.html#exports):
- [`legacy_from_private_key.js`](./keys/legacy_from_private_key.js)
- [`legacy_from_public_key.js`](./keys/legacy_from_public_key.js)
- [`legacy_to_private_key.js`](./keys/legacy_to_private_key.js)
- [`private_key_from_wif.js`](./keys/private_key_from_wif.js)
- [`private_key_to_wif.js`](./keys/private_key_to_wif.js)
- [`public_key_from_private_wif.js`](./keys/public_key_from_private_wif.js)
- [`public_key_from_wif.js`](./keys/public_key_from_wif.js)
- [`public_key_to_wif.js`](./keys/public_key_to_wif.js)
- [`validate_private_key.js`](./keys/validate_private_key.js)
- [`validate_public_key.js`](./keys/validate_public_key.js)
- [`mnemonic-create.js`](./mnemonic-create.js)
- [`mnemonic-recover.js`](./mnemonic-recover.js)
- [`new_keys.js`](./new_keys.js)
- [`sign_packed_txn.js`](./sign_packed_txn.js)
- [`sign.js`](./sign.js)