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
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.
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.