Skip to main content

Functionality Integrations

While previous sections guide you to start building canisters on the IC, here you can see how to integrate various (sometimes advanced) extra functionality to your dapp. From identity to ledger integrations, to integrating with other blockchains, to communicating from the IC to the outside world, and even decentralizing control of your dapp, it's all here.

Service Nervous System (SNS)

Similar to how the NNS is the open tokenized DAO that controls the IC, SNSs are algorithmic DAOs that allow developers to create decentralized, token-based governance systems for their dapps. This section provides an overview of the SNS documentation, sorted by the target group that it aims at, and then provides the documentation aimed at developers. The latter contains

Bitcoin Integration

Integrate directly with the Bitcoin network allowing canisters on the IC to receive, hold, and send Bitcoin, all directly with transactions on the Bitcoin network. I.e., canisters can act exactly like regular users holding bitcoin on the Bitcoin network.

Threshold ECDSA

A threshold ECDSA implementation on a blockchain can be viewed as the on-chain pendant to a hardware security module (HSM) that stores private keys securely and issues signatures on request of the eligible entities, and only to those. It is particularly important to facilitate direct integration with (ECDSA-based) blockchains.

HTTPS Outcalls

HTTP(S) outcalls on the IC enable canisters to directly make calls to HTTP(S) servers external to the blockchain and use the response in the further processing of the canister such that the replicated state can safely be updated using those inputs. A first in blockchain history, and alleviates the need for oracles.

  • HTTPS outcalls gives an overview of how the IC can communicate with the world outside
  • How it works to dive further into the details and gives a comparison against oracles

Internet Identity

Internet Identity allows users to create sessions with Web3 services and dapps, and sign traditional blockchain transactions.

ICP Ledger

The Internet Computer Protocol (ICP) implements management of ICP using a specialized canister, called the ledger canister. There is a single ledger canister which runs alongside other canisters on the NNS subnet. The ledger canister is a smart contract that holds accounts and transactions.

  • Ledger overview to get a view of the ICP ledger basics
  • Interact shows the commands and protocol flows to interact with the ICP ledger
  • Local Setup shows how to experiment with the ledger in your local environment
  • Deploy New Token describes how to deploy a new token and connect to Rosetta

Rosetta

Rosetta is an open standard introduced by Coinbase to simplify the integration of blockchain-based tokens in exchanges, block explorers, and wallets. This documentation might help if you want to deploy a token on the IC that aims to be tradable on CeFi exchanges or if you are working on a block explorer or wallet.

  • The Rosetta page describes how to set up a Rosetta node and answers some FAQs
  • transfers details how to transfer ICP using the Rosetta Construction API
  • neuron lifecycle gives an overview of neurons (IC assets allowing controllers to participate in the governance of the network by submitting and voting on proposals)
  • staking support specifies extensions of the Rosetta API enabling staking funds and managing governance neurons on the IC
  • staking tutorial walks through the process of creating a neuron
  • hotkeys explains how to generate a hotkey for neuron management