Overview
Take a look at some sample dapps below and see the possibilities of building on the IC. All samples and further projects can be found in the Samples repo. Additional resources can be found in the Awesome Dfinity repo (a curated set of open-source projects and examples from our community) or Hackathon projects!
Hello world
The dapp equivalent of hello world, with a separate backend and frontend canister serving a web page.
Motoko • Rust • See running • Technical docs
Static website
This tutorial shows how to quickly set up a static website structure, add content and basic styling, and deploy to the IC.
Technical docs • Video guide
Basic DEX
To enable DEFI applications on the IC, canisters need to interact with token canisters and the ledger canister. This example dapp illustrates these interactions by showing how to enable an Exchange to take custody of funds, update an internal balance book as users trade, and give custody back to the user as funds are withdrawn.
Motoko • Rust • See running • Technical docs • YouTube
NFT minting
This NFT minting dapp showcases how easy it can be to create a user generated NFT and share it. This dapp uses the DIP721 NFT standard.
Rust • Technical docs • YouTube
Basic DAO
Decentralised governance is higlight of the IC and is illustrated by the basic DAO sample code. It illustrates how to initialize a set of accounts and corresponding tokens, how account owners can sumit proposals for other account owners to vote on, and how a proposal is executed given enough favorable votes.
Motoko • Rust • Technical docs • YouTube
Encrypted note-taking
Create/access/modify confidential notes from multiple devices using Internet Identity service and end-to-end encryption. The sample code relies upon the web-serving and storage capabilities of the IC, and highlights two key functionalities: (1) client-side, end-to-end encryption and (2) multi-user and multi-device support.
Motoko • Rust • See running • Technical docs • YouTube
ICP transfer
This sample code demonstrates how a dapp can transfer ICP to its most active users.
Motoko • Rust • Technical docs
Unity WebGL
The example shows how to deploy a simple Unity WebGL build on the IC, sample code can be found at Samples repo.
Technical docs
Explore further Samples in Motoko
This is a collection of repo-links to additional code samples written in Motoko. Most are also available in the Motoko playground. The playground provides the simplest environment for trying out pure Motoko samples without having to download and learn to use the SDK, but does not support dapps with frontends.
Basic
This is collection of basic getting-started Motoko samples, which demonstrate basic concepts of the IC and the Motoko language.
Actor_reference shows the IC management canister as an actor (reference).
Counter shows a basic (stable) variable demo.
Echo gives a basic query function demo.
Factorial shows a basic factorial demo.
Hello_cycles illustrates how to receive and transfer cycles and check a balance.
Whoami is a simple canister that reports the Principal of its caller.
Intermediate
The intermediate samples demonstrate how to use some of the basic concepts in common use cases. The samples show how to build simple backend functionalities in Motoko.
Classes shows a dynamic actor (class) instantiation.
Pub-sub shows multiple canisters, with publisher-subscriber inter-canister calls.
Quicksort shows how to sort an array, via Quick Sort, in Motoko.
Simple-to-do is a CRUD-like demo service, sans a front end; see also: phone-book and superheroes.
Calc is a more advanced version of counter demo.
Minimal frontend
These two samples show how to create simple frontends in JavaScript. Where the previous samples did not provide a frontend, these two samples provide both a frontend and a backend.
Random_maze is a random maze generation, with IC-based randomness.
Cert_var shows a simple certified variable (a single 32-bit number), with client-side certificate validation.
Full stack
These samples demonstrate how to build dapps on the IC, with frontends based on React and TypeScript.
Life demonstrates Conway’s Game of Life, running in a Motoko Canister. Demonstrates upgrades among three versions and state migration using stable variables.
Phone-book is a CRUD-like demo service.
Superheroes is a simple CRUD dapp.
Auth Client Demo is a simple authentication with Internet Identity.
IC-Avatar is a full-stack Motoko + React with more advanced authentication, image uploads, and optimistic updates.
Advanced
Large samples contributed by the community and not necessarily up-to-date:
QR code generator with accompanying Medium article.
IC Vault demonstrates end-to-end content encryption.
Certified asset canister and forum post demonstrates a larger application of Internet Computer certified variables.
Video Guides for Building Dapps
These videos from the community conversations series cover an introduction to building dapps in Rust, and best practices for building dapps in Rust.
Community conversations | overview of building a dapp in Rust
Community conversations | best practices for canisters in Rust
Additional useful video series can be found at Coding with Kyle.