Skip to content
/ ic-js Public

Libraries for interfacing with the Internet Computer.


Notifications You must be signed in to change notification settings


Repository files navigation

📦 ic-js

A collection of library for interfacing with the Internet Computer.

Internet Computer portal Checks Status GitHub Latest Release)


  • nns: interfacing with the governance canisters of the Network Nervous System (NNS)
  • sns: interacting with a Service Nervous System (SNS) project
  • cmc: interfacing with the cmc canister of the IC
  • ledger-icp: interfacing with the ICP ledger
  • ledger-icrc: interacting with ICRC compatible ledgers
  • ckBTC: interfacing with ckBTC
  • ckETH: interfacing with ckETH
  • ic-management: interfacing with the IC management canister
  • utils: a collection of utilities and constants
  • nns-proto: the protobuf source used by nns-js to support hardware wallets


Install any library of this repo in your project from npm:

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. That is s why, to help tree-shaking and avoid duplication of code, the libraries of this project are referencing agent-js and utils as peer dependencies.

Therefore, be sure that the needed agent-js and utils dependencies are available in your project or install these as following:

npm i @dfinity/agent @dfinity/candid @dfinity/principal @dfinity/utils


Here are some useful links:

  • See the HACKING document for some information about local development