IC Orientation
gm!
You find yourself in the home of documentation and developer resources for the Internet Computer (IC). The IC hosts special smart contracts, called canisters which are bundles of WebAssembly bytecode logic and memory pages. Dapps on the IC are created from one or more canisters.
To download the Internet Computer SDK, run the following command in a Linux or macOS terminal:
sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)"
Installing the SDK provides more detailed installation instructions, including how to run the SDK on Windows using the Windows Subsystem for Linux (WSL).
Throughout this site, we have made an effort to organise information in a way that addresses different needs at different times. In the left navigation, you will see four different categories of documents, styled in different colors when active. Click through the tabs below to find an overview of each category.
- Developer Docs
- References
- Concepts
- DAOs & Tokenomics
- Sample Code
A tour through the docs
The Developer Docs category contains all the information you will need get started and advance in building applications on the the IC. It is styled in blue, so whenever you see blue active links, you'll know you're in the Docs category. The structure is intended to guide you from getting started with canisters, to deploying and managing full projects on the IC.
Quickstart → Buidling on the IC → Integrating Functionality → Updates & Releases
Quickstart
The quickstart gives a brief overview of a default dapp running on the IC. There, you will learn the basics about canisters, how to fuel them with cycles, and how to deploy to the IC.
Building on the IC
Moving on from the quickstart you may want to start building your own dapps. In doing that, there are a number of considerations that need to be made, all of which are described in the 'building' section. Here, you will learn about the SDK, considerations that need to be made during the project setup, and how to choose a language to develop in. When these preliminaries are decided, then you'll see tutorials that help structure and build the backend of your project, how to think about frontend and hosting on chain.
Integrate Functionality
Knowing how to set up a project, having picked your programming language of choice, and establishing a front and backend, you may want to add some extra functionality. This section outlines how to use the Rosetta API, how to integrate a ledger, and how to add authentication via Internet Identity.
Updates & Releases
This section contains release notes for new versions of the SDK, as well as some other news to stay up to date.
Glossary
Finally, the Glossary is, well, a glossary. It's ever-growing and we encourage you to add to it (either via the edit button on the page, or by cloning the github repo) and keep it growing.
References and Resources
The Reference category contains reference documentation for various IC components and languages. It is styled in purple, so whenever you see purple active links, you'll know you're in the References category.
dfx
References → Motoko Base Library → Rust CDK Reference → Candid Reference → Ledger Canister → Internet Identity → IC Interface Specification → Security Best Practices
This is the place to come if you wanted to know the signature for a particular method, or which functions are offered in an SDK, or, if you are so inclined, simply to browse and get a better picture of the components that make up the Internet Computer. It is likely a place that you will come often once you are confident that you can code canisters, but just need to quickly check a reference.
Foundational ideas underlying the IC
The Concepts category will guide you through the more foundational story underlying core parts of the IC. It is styled in pink, so whenever you see pink active links, you'll know you're in the Concepts category
What is the IC → Nodes & Subnets → Data Centres → Canisters & Code → Trust in Caninsters → Token & Cycles → Neurons & Governance
The topics in this section introduce key components and terminology to help you understand the architecture and operation of the IC. The concepts here are not necessarily needed for dapp development, but rather knowledge development. Read an overview of the IC and the nodes and data centers that power it. You can learn more about canisters, how and why they allow to build decentralized apps hosted fully on chain, and why we should place our trust in them. We can see more about how canisters are powered by tokens and cycles and how the Internet Computer is governed and developed in a decentralized manner.
DAOs & Tokenomics
The DAOs and tokenomics category is aimed at founders, developers and DAO communities. If you want to tokenize and dectentralized the governance of your dapp, this is the place to start. It is styled in orange, so whenever you see orange active links, you'll know you're in the tokenomics section.
Network Nervous System (DAO of the IC) → Service nervous system (DAO of your dapp?) → NNS dapp Quickstart
The NNS section is the best place to get an overview of the NNS and how to get involved in the governance of the IC, while the SNS section explains the first steps to decentralizing your own dapp. The Identity & Authentication section is the best place to understand how to interact with the IC without the need for holding tokens. The Token Holders section gives advice on how to manage tokens if you do obtain them. The NNS Quickstart gives a quick introduction to decentralised governance on the IC, and some of the benefits you may gain by being a token holder.
Sample Code
Finally, you can find documentation relating to Sample dapps and community projects. This section is styled in yellow, so whenever you see yellow active links, you'll know you're in the tokenomics section.
a quick hello world app to show the basics → host a static website → signing with threshold ECDSA → send and receive bitcoin on the IC
All the sample code projects are listed on the samples page where you can filter by level, language, and theme to discover the exact code to help get your project off the ground.
Dive further down the rabbithole
We hope that you find most of the information you need here, but if not, or if you simply want more, there are many other resources for learning about the IC outside of this developer portal.
To get a first view
If you are new to the IC and want to get a first overview, these are some of the best places to start:
Primer to the Internet Computer, a high-level overview of the Internet Computer in under 10 minutes
Follow the official DFINITY Twitter for the latest ecosystem updates and at the DFINITY Devs
To engage with the developer community
If you are a developer and you want to engage more with the community, the following are the best places to join:
Developer Discord, our official Discord for the developer community
Developer Forum, a welcoming space for technical discussions about building on the Internet Computer
You can follow us on the DFINITY Developer Twitter for the latest developer-specific updates.
To go deep
The Internet Computer is created by the Internet Computer Protocol (“ICP”), which has formed the world’s first web-speed, web-serving public blockchain. The Internet Computer is self-governing and can grow its capacity as required. It combines special node machines run en masse by independent data centers all around the world. Like all blockchains, it is unstoppable, and the code it hosts is tamperproof.
To learn more about the Internet Computer Protocol, check out the following resources:
Technical Library, for in-depth videos by our world-class R&D team explaining components of the Internet Computer Protocol. Worth noting in particular:
- Chain Key Cryptography, one of the fundamental breakthroughs enabling the Internet Computer to scale to millions of nodes. The most notable innovation of Chain Key cryptography is that the Internet Computer has a single public key, which enables any device to verify the authenticity of artifacts generated by the Internet Computer, even smart watches and mobile phones.
Interface Specification, for a deeply technical document that provides an overview of the lower-level external interfaces of the Internet Computer
Internet Computer Dashboard, to monitor real-time metrics around the Internet Computer blockchain