https://github.com/dfinity/ic-js
Libraries for interfacing with the Internet Computer.
https://github.com/dfinity/ic-js
dfinity internet-computer javascript typescript
Last synced: 7 days ago
JSON representation
Libraries for interfacing with the Internet Computer.
- Host: GitHub
- URL: https://github.com/dfinity/ic-js
- Owner: dfinity
- License: apache-2.0
- Created: 2021-11-26T08:14:29.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-08T09:36:24.000Z (8 days ago)
- Last Synced: 2025-04-08T10:32:56.291Z (8 days ago)
- Topics: dfinity, internet-computer, javascript, typescript
- Language: JavaScript
- Homepage:
- Size: 4.48 MB
- Stars: 78
- Watchers: 32
- Forks: 18
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-internet-computer - ic-js - Collection of libraries for interfacing with the Internet Computer. (Client Libraries (Agents) / JavaScript/TypeScript)
README
# 📦 ic-js
A collection of library for interfacing with the Internet Computer.
[](https://internetcomputer.org)
[](https://github.com/dfinity/ic-js/actions/workflows/checks.yml)
[](https://github.com/dfinity/ic-js/releases)## Libraries
- [nns](/packages/nns): interfacing with the **governance** canisters of the Network Nervous System (NNS)
- [sns](/packages/sns): interacting with a Service Nervous System (SNS) project
- [cmc](/packages/cmc): interfacing with the **cmc** canister of the IC
- [ledger-icp](/packages/ledger-icp): interfacing with the **ICP** ledger
- [ledger-icrc](/packages/ledger-icrc): interacting with **ICRC** compatible ledgers
- [ckBTC](/packages/ckbtc): interfacing with **ckBTC**
- [ckETH](/packages/cketh): interfacing with **ckETH**
- [ic-management](/packages/ic-management): interfacing with the **IC management canister**
- [utils](/packages/utils): a collection of utilities and constants
- [zod-schemas](/packages/zod-schemas): a collection of reusable Zod schemas and validators for common data patterns in ICP applications
- [nns-proto](/packages/nns-proto): the protobuf source used by `nns-js` to support hardware wallets## Installation
Install any library of this repo in your project from [npm](https://www.npmjs.com):
```bash
npm i @dfinity/utils
npm i @dfinity/ledger-icp
npm i @dfinity/ledger-icrc
npm i @dfinity/nns
npm i @dfinity/sns
npm i @dfinity/cmc
npm i @dfinity/ckbtc
```You may be using all libraries in your project - as we do in [NNS-dapp](https://github.com/dfinity/nns-dapp/).
That is s why, to help tree-shaking and avoid duplication of code, the libraries of this project are referencing [agent-js](https://github.com/dfinity/agent-js) and [utils](/packages/utils) as peer dependencies.Therefore, be sure that the needed `agent-js` and [utils](/packages/utils) dependencies are available in your project or install these as following:
```bash
npm i @dfinity/agent @dfinity/candid @dfinity/principal @dfinity/utils
```## Links
Here are some useful links:
- See the [HACKING](/HACKING.md) document for some information about local development