Developer Resources

Internet Computer Interface Specification

Learn more about the Internet Computer Interface Specification that details how users and services communicate through the IC and how the community can build new development tools

IC Academy » Developer Resources » Internet Computer Interface Specification

Introducing the Internet Computer Interface Specification

Find out how voting rewards are calculated

Technical Documents about the Internet Computer

The Internet Computer Interface Specification details the technical properties of the IC blockchain. The document details how users, canisters, as well as external services communicate through the Internet Computer blockchain. The specification also explains how developers can build new developer tools targeting a wide variety of actions and interactions on the Internet Computer. With the help of the Internet Computer Interface Specification, developers will be able to write software compatible to the Internet Computer as well as the software libraries that enable others to do the same.

Internet Computer Interface Specification

Interface Specification at sdk.dfinity.org

What is the Internet Computer Interface Specification?

The technical specification provides developers with an overview of the Internet Computer’s lower-level external interfaces. It details the exposed HTTPS endpoints that are used to handle incoming requests. The spec also outlines how the bindings between the WebAssembly canister code interact with the system. A description of the expected behaviors when executing these transactions on the IC is also included in the document.

Application developers and end users that are interacting with a canister smart contract typically interact both with the system application and the underlying HTTPS handler interfaces. These lower-level interfaces can be seamlessly interacted with by using existing tools such as Rust Canister Development Kit https://github.com/dfinity/cdk-rs or the DFINITY Canister SDK https://smartcontracts.org/. However, developers wishing to create their own tooling to work and interact with canisters need to gain a deeper understanding about core functions of the system, such as:

The Interface Specification helps developers to gain a better understanding about aforementioned core functions.

Developing Specialized Agents

It is possible to interact with canisters from the outside using the libraries for JavaScript and Rust created by the DFINITY Developer Experience (DX) team. With the documentation of the Interface Spec, developers can create agents that connect existing services to the IC as well as agents that support the development of canisters.

APIs and Integrated Systems

Aside from learning to utilize specialized agents, developers can use the Interface Specification to gain a better understanding of the system’s APIs. This can help developers to create more integrated systems which interact with other services/canisters running on the Internet Computer.

Automatic voting

Maximize your staking rewards by enabling automatic voting in the NNS dApp

Enabling automatic voting

Submitting a Proposal

Find out how you can submit a governance proposal to the Network Nervous System (NNS)

Submit proposal