awesome-internet-computer
A curated list of awesome projects and resources relating to the Internet Computer Protocol
https://github.com/dfinity/awesome-internet-computer
Last synced: 9 days ago
JSON representation
-
Blogs
-
Solana
- David dal Busco's blog - Blog with many hands-on articles on IC development.
- Kyle Peacocks's blog - Notes on IC development and more.
-
TON
- B.Lynnity - Ben Lynn's Blog about development on the IC using C.
- ICP Analysis - Kyle Langham's writings about data analysis on the IC ecosystem.
- Joachim Breitner's blog - Articles on IC development and Candid.
- mmapped - Roman Kashitsyn's blog about IC internals and development.
- icAcademy - Roland Bole's blog on Mastering Your Transition from Web 2.0 to Web 3.0.
- Kaia Peacocks's blog - Notes on IC development and more.
- David dal Busco's blog - Blog with many hands-on articles on IC development.
-
-
Bounties and Grants
-
Libraries
- DFINITY Developer Grants and Bounties - rfps/discussions) - Developer Grant and Bounty program provided by the DFINITY foundation.
-
Solana
- Requests for Startups - A list of ideas for startups to build on the Internet Computer.
- ICDevs Bounties - Code bounties by the ICDevs organization.
- Video: Overview of the Developer Grants Program - A video that explains the objective and the process of the DFINITY Developer Grants program.
-
TON
- DFINITY Developer Grants - Developer Grant program provided by the DFINITY foundation.
-
-
Candid
-
Candid implementations
- cdk-as candid - AssemblyScript library of Candid.
- ICP.NET candid - C# library of Candid.
- @dfinity/candid - JavaScript and TypeScript library for Candid.
- icpp-candid - C++ Candid Library.
- candid_dart - Dart library of Candid.
- ic-elm - A template for using Elm to develop frontend user interface for the Internet Computer.
- haskell-candid - Haskell library for Candid to Haskell.
- ic4j-candid - Java library for Candid.
- candid-parser-wasm - JavaScript/TypeScript bindings for "candid_parser", compiled to WebAssembly.
- candid-kt - Kotlin library for Candid.
- motoko_candid - Library that enables encoding/decoding of bytes to candid values.
- ICP.NET candid - C# library of Candid.
- ic_tools_dart - Dart library of Candid.
- candid - Elixir library for encoding/decoding Candid.
- ic-elm - A template for using Elm to develop frontend user interface for the Internet Computer.
- @dfinity/candid - JavaScript and TypeScript library for Candid.
-
Libraries / Frameworks
- Candid UI - Generates a front-end UI for any canister.
- Candid UI Web Component - Web component to easily embed Candid UI.
- didc - A multi-purpose tool for Candid.
- Candid GitHub Repo - The home of Candid.
- idl2json - Command line tool for converting Candid to JSON.
- Intellij Candid Plugin - A Candid language plugin for editing .did files.
- generate-did - A tool to generate Candid (.did) files for Internet Computer Rust canisters.
- Candid UI - Generates a front-end UI for any canister.
-
-
Canister Development Kits (CDKs)
-
AssemblyScript
- cdk-as - AssemblyScript CDK.
-
C/C++
- icpp-pro - C++ CDK.
- Chico - C/C++ CDK.
- Lucid (cdk-c) - Pure C canister development kit for the Internet Computer (no C++ runtime).
-
JavaScript/TypeScript
- Azle - TypeScript CDK.
-
Moonbit
- moonbit-ic-cdk - A lightweight, WebAssembly-native Canister Development Kit (CDK) for building smart contracts on the Internet Computer (ICP) with the MoonBit language.
-
Python
- Kybra - Python CDK.
-
Rust
- ic-cdk - Rust CDK maintained by DFINITY.
- ic-websocket-cdk - IC WebSocket CDK for canisters written in Rust.
- canister-sdk - SDK for writing and testing canisters for the Internet Computer in Rust.
- Rustic - Extension to ic-cdk, providing primitives familiar to Solidity developers.
- canister-sdk - SDK for writing and testing canisters for the Internet Computer in Rust.
-
Solidity
- bitfinity-evm - Provides the ability to create EVM-based smart contracts.
-
Swift
- CDK Framework - Framework to build CDKs which has been used for Azle and Kybra.
-
-
Chain Fusion
-
Bitcoin
- Bitcoin Integration - Landing page of the direct integration with the Bitcoin network.
- ckBTC - Canister-controlled BTC twin on ICP with 1:1 backing.
- Internet Computer Bitcoin Library - Utility libraries for Motoko/Rust to simplify building on the Bitcoin Integration.
- Multi-Subnet Bitcoin Wallet - Proof-of-Concept of multi-subnet Bitcoin custody for increased secruty.
- Loka - Trustless Non-Custodial Bitcoin Mining Platform built on ICP.
- Ordinals Canister - A canister that enables the retrieval of BTC ordinals and their corresponding inscriptions.
- Schnorr Canister - A canister to create Schnorr signatures compatible with Taproot.
- Inscription Canister - A canister to create Ordinal inscriptions.
- runes-indexer
- Bitcoin Metaprotocols Canister
- ordinals-indexer - An onchain ordinals indexer for querying stats and inscriptions.
-
Cosmos
-
Ethereum
- ChainSight - Composable cross-chain data oracles built on HTTPS Outcalls and Chain-key ECDSA.
- ckETH - Canister-controlled ETH twin on ICP with 1:1 backing.
- Gitcoin Passport Client - a sample app for securely retrieving Gitcoin Passport scores and store them into a DB.
- ic-eth-starter - An advanced starter project for interacting with Ethereum on the Internet Computer (Beta).
- CCAMP - General-purpose, modular, and custom data-driven Cross-chain Asset Management Protocol.
- ckNFT - A PoC to bridge ICRC-7 NFTs to ERC-1155 NFTs on EVMs.
- ERC20-ICP - Contracts and canisters enabling ICP tokens as ERC20 on Ethereum.
- EVM RPC Canister - Interact with EVM blockchains from the Internet Computer.
- Ethereum Canister - Ethereum Light Client (Helios) running inside a canister.
- EVM Utility Canister - Utility canister to create and parse EVM-compliant transactions.
- ic-solidity-bindgen - Generate Rust bindings for Solidity contracts from ABIs to use with the Internet Computer.
- ic-web3-rs - Utility library to interact with EVM networks.
- Oisy - A novel Ethereum wallet that is hosted on the Internet Computer, is browser-based, fully on-chain, and secured by Chain-key cryptography and Internet Identity.
- Omnic - Cross-chain messaging protocol to connect EVM-compatible chains via the Internet Computer.
- Orally - Cross-chain oracle factory built on HTTPS Outcalls and Chain-key ECDSA.
- Evm Rust Bridge - A seamless Rust-based starter template for integrating ICP canisters with EVM-based smart contracts.
- ic-alloy-basic-eth - A multiuser Ethereum wallet starter/template using the Alloy EVM support libraries.
- Ethereum-lightclient-canister - An Ethereum light client canister that is compatible with newer versions of the Ethereum RPC protocol and adapted from the Helios project.
- ic-test - Command-line tool that makes it easier to create a test project and includes the basic files and setup needed for both IC canisters and optionally EVM (Ethereum Virtual Machine) smart contracts.
- BOLD Autonomous Interest Rate Manager for Liquity v2 Troves
- Bitfinity EVM - An Ethereum Virtual Machine (EVM) on ICP.
- CCAMP - General-purpose, modular, and custom data-driven Cross-chain Asset Management Protocol.
- EVM RPC Canister - Interact with EVM blockchains from the Internet Computer.
-
General
- B3Wallet - A decentralized wallet supporting multiple blockchains, including Ethereum, Bitcoin, and ICP.
- SIWE starter - Login in to ICP using Metamask and other Ethereum wallets.
- Chain Fusion Signer - A canister that does nothing but sign transactions for use on other blockchains.
- ic-pub-key - A TypeScript library for client-side key derivation on ICP.
- Alloy Toolkit - Examples of interacting with Ethereum from a Rust canister using the Alloy EVM support libraries
- Chain Fusion Starter
- ic-evm-utils
- evm-rpc-canister-types
- evm_rpc_client - A Rust client for interacting with the EVM RPC canister.
- Chain-key ECDSA - Tech that allows creating transactions targeting various chains from canisters on the Internet Computer.
- B3Wallet - A decentralized wallet supporting multiple blockchains, including Ethereum, Bitcoin, and ICP.
- ic-pub-key - A Rust library for client-side key derivation on ICP.
-
Solana
- Galactic Bridge - Canister-controlled SOL bridge using Chain Fusion tech.
- Solana RPC Canister - Interact with Solana blockchain from the Internet Computer.
-
TON
- TON transaction in the Telegram mini app - A Telegram mini app for TON transaction, Threshold Schnorr signatures verification, and RPC submission.
-
-
Client Libraries (Agents)
-
C
- agent-unity - Wrapper of agent-rs to be used in unity projects.
- ICP.NET - Native Implementation in C# (Unity compatible).
-
C#
- ICP.NET - Native Implementation in C# (Unity compatible).
-
C++
- icp-client-cpp - C/C++ wrapper for agent-rs.
-
Dart/Flutter
- agent_dart - Framework to build mobile applications.
-
Elixir
- icp_agent - Agent for making ICP queries and calls from elixir.
-
Go
-
Java/Kotlin
- ic4j-agent - Libraries for interfacing with the IC using Java (Android compatible).
- ic4j-websocket - Library for interfacing with the IC via WebSocket using Java (Android compatible).
- Icp Kotlin Kit - kotlin library to interact with IC. Provides a candid file parser to parse candid files to kotlin and interact with canisters.
-
JavaScript/TypeScript
- ic-use-siwe-identity - React hook for easy frontend integration with SIWE (Sign in with Ethereum) enabled canisters.
- ic-reactor/core - Streamline agent and actor management, ensuring type-safe communication with canisters, and simplifies the interaction through a user-friendly API. Ideal for building efficient, scalable decentralized applications (dApps) with minimized boilerplate code.
- ic-reactor/react - Tailored specifically for React developers working on Internet Computer projects, this library integrates seamlessly with React's ecosystem to provide custom hooks and utilities for state management, authentication, and type-safe interactions with IC actors.
- agent-js - Collection of libraries to interact with the IC using JavaScript.
- ic-js - Collection of libraries for interfacing with the Internet Computer.
- ic-use-actor - React hook to make interacting with Internet Computer canisters more fun!
- ic-use-internet-identity - React hook that makes it easy to integrate IC Internet Identity into React applications.
- icblast - Communicate with IC directly using NodeJS. Automatic service discovery.
- node-ic0 - The ic0 package is a simple, straightforward way to interact with canisters running on the IC.
- ic-websocket-sdk - Library for interfacing with the IC via WebSocket using JavaScript.
-
Python
- ic-py - Library for interfacing with the IC using Python.
- icp-py-core - Library for interfacing with the IC using Python.
-
Ruby
- ic_agent - Basic modules to interact with the IC using Ruby.
-
Rust
-
Swift
- IcpKit - Native Swift library for interacting with IC on iOS/MacOS. Provides implementation for Ledger canister.
-
Tutorials and Samples
- Grant RFP
- Interactive Tutorial on Agents - A low-level interactive tutorial on the inner workings of an Internet Computer agent.
-
-
Communities and Communication
-
Libraries
- IC Developer Community Discord - Developer-oriented community Discord.
- ICP Discord - Multi-language server for the broader community.
-
Solana
- ICP League - Fostering a world-class community for Internet Computer Ecosystem.
- Internet Computer Academy - Open-source and community-driven knowledge base about the IC.
- ICP Discord - Developer-oriented community Discord where DFINITY hosts office hours for technical Q&A.
-
TON
- DFINITY Developer Forum - Main forum about the Internet Computer.
- IC Dev PR Handbook - PR support for devs and projects in the IC ecosystem.
- ICP Discord - Developer-oriented community Discord where DFINITY hosts office hours for technical Q&A.
-
-
Courses, Tutorials and Samples
-
Courses
- Web3, Blockchain and the Internet Computer - Youtube series (excerpt from The Complete Web Development Bootcamp).
- Dacade TypeScript Smart Contract 101 - Learn to build Dapps on the IC using TypeScript.
-
Tutorials and Samples
- Canister guard in Rust - Tutorial on the guard pattern for access control.
-
-
Courses, Tutorials, and Samples
-
Courses
- The Complete Web Development Bootcamp - Udemy course with a complete section on web3 development using the Internet Computer.
- AgorApp Motoko Course - Interactive course for Motoko beginners.
- Master Deployments of Static Websites on the Internet Computer - Learn to host a static website on the Internet Computer using Astro.
- Motoko Bootcamp - The DAO Adventure - Discover the Motoko language in this 7 day adventure and learn to build a DAO , on the Internet Computer.
- Web3 with TypeScript Bootcamp - Learn to build a DAO in 7 days, with TypeScript, on the Internet Computer.
- Motoko Bootcamp - The DAO Adventure - Discover the Motoko language in this 7 day adventure and learn to build a DAO , on the Internet Computer.
- Web3, Blockchain, and the Internet Computer - Youtube series (excerpt from The Complete Web Development Bootcamp).
- Web3, Blockchain, and the Internet Computer - Youtube series (excerpt from The Complete Web Development Bootcamp).
- Dacade TypeScript Smart Contract 101 - Learn to build Dapps on the IC using TypeScript.
-
Tutorials and Samples
- Internet Computer Developer Hub - The main entry point to documentation, guides and references.
- Internet Computer Sample Dapps - DFINITY-maintained and community-contributed samples and tutorials.
- Candid for Rust Canisters - How to automatically generate Candid files for canisters implemented in Rust.
- Considerations for NFT Developers - Discussion of best practices for NFT developers.
- Deploy Your First dApp on the IC in 10 Minutes! - Getting started video tutorial.
- Frontends on the Internet Computer - Video tutorial on hosting frontends using the asset canister.
- EmberJS Frontend for the Internet Computer - Getting started tutorial using the hello example.
- Intro to Building on the Internet Computer - Video introduction to building on the IC with Motoko and Rust.
- Languages on the IC - Guide on how to select the programming language for the IC.
- Make Oracles Obsolete in under 5 Minutes - Short video tutorial on HTTPS Outcalls in Motoko.
- Rust + React (Typescript) + Internet Identity - Tutorial on setting up a project with Rust, React and Internet Identity.
- C++ - Introduction to developing canisters in C++.
- Backup and Restore - Tutorial with code on backup and restore of canister state.
- Code native Bitcoin - Video tutorials on how to use the native Bitcoin integration.
- Environments - How to work with different environments (dev/staging/prod).
- Migration from Motoko to Rust - How to Migrate Canister Smart Contracts from Motoko to Rust.
- Converting ICP into Cycles - How to programmatically convert ICP into Cycles in NodeJS.
- Social Platform Previews and SEO - Tutorial on how to configure dapps for social platform previews and SEO.
- WebSockets on the Internet Computer: Getting Started - Tutorial on setting up a WebSocket connection from a frontend client to a canister.
- DFINITY Examples Repo - Code samples from DFINITY.
- Rust Modular Canister Template - An example canister with stable storage, HTTP outcalls, timers and more.
- Access control - Demonstrator for access control patterns on the IC.
- Cross-Chain ETH Payment and E-Commerce - A step-by-step guide to building a cross-chain payment and e-commerce platform on the Internet Computer using Ethereum.
- Hosting ERC 721 metadata - Tutorial on hosting metadata and assets for ERC-721 NFTs on the IC.
- React Native + JWT Authentication + Rust Canister demo - React Native (Expo) mobile app that uses the JWT minted from an authentication provider (Auth0 in this case) to authenticate on a Rust canister.
- Canister guard in Rust - Tutorial on the guard pattern for access control.
-
-
Cross-chain Infrastructure
-
Libraries
- Chain-key ECDSA - Tech that allows creating transactions targeting various chains from canisters on the Internet Computer.
- Bitfinity EVM - An Ethereum Virtual Machine (EVM) implemented as a canister.
-
-
DAO Frameworks
-
Protocols
- Service Nervous System - Framework inspired by the Network Nervous System.
- Axon - A multi-user, multi-neuron management canister.
- Threshold Canister - Threshold voting and execution for the IC.
- ICP Governance Canister - A fully-fledged single DAO governance solution inspired by the Compound smart contracts.
- Axon - A multi-user, multi-neuron management canister.
-
-
Dapp Development Platforms and Frameworks
-
Dashboards, Explorers and Registries
-
Libraries
- Canlista - Canister registry.
- Cyql - Curated project registry.
- ICLighthouse Explorer - Explorer.
- ICSCAN - Explorer.
- Internet Computer Dashboard - Live stats and explorer.
- Internet Computer Ecosystem Showcase - Curated project registry.
- Kinic - Front-end search engine.
- ICP Explorer - Explorer.
- ICLighthouse Explorer - Explorer.
- Bitcorn Explorer - Explorer.
- IC Explorer
-
-
Decentralized AI
-
Solana
- Tensorflow on ICP - An example that loads and uses a pre-trained model for predictions within a canister running on ICP using Azle.
- Rust-Connect-Py-AI-to-IC - A streamlined open-source tool for deploying Python AI models on ICP.
- Vectune - A lightweight vector database with incremental indexing based on FreshVamana for retrieval-augmented generation (RAG).
-
Programming Languages
Categories
Chain Fusion
50
Developer Tooling
43
Courses, Tutorials, and Samples
35
Client Libraries (Agents)
29
Decentralized AI
25
Candid
24
Decentralized Finance (DeFi)
20
Fungible and Non-fungible Tokens (NFTs)
20
Motoko
17
Wallets and Authentication
17
Storage and Databases
15
Canister Development Kits (CDKs)
14
Starters
12
Dashboards, Explorers and Registries
11
Blogs
9
Communities and Communication
8
Messaging
7
Game Development
7
Social Applications
6
Bounties and Grants
5
DAO Frameworks
5
How it works / Deep dives
5
ZK
5
Courses, Tutorials and Samples
3
MCP - Model Context Protocol
3
Infrastructure
3
Cross-chain Infrastructure
2
Internet of Things
2
Dapp Development Platforms and Frameworks
2
Sub Categories
TON
46
Tutorials and Samples
41
Candid implementations
34
Protocols
31
Ethereum
23
Libraries
23
Monitoring
20
Moonbit
18
Solana
16
Libraries / Frameworks
13
General
12
Bitcoin
11
Implementations
11
JavaScript/TypeScript
11
Courses
11
Testing
9
Analytical Methodologies
8
Exchanges
8
Frameworks and Tools
8
Interface Standards
7
Rust
7
Python
3
Java/Kotlin
3
C/C++
3
Go
2
Package Managers
2
IDEs
2
Benchmarking
2
CI/CD
2
C
2
Swift
2
Orchestrating
2
AssemblyScript
2
Cosmos
1
Ruby
1
C#
1
C++
1
Dart/Flutter
1
Oracles
1
Solidity
1
Faucets
1
Elixir
1
Keywords
internet-computer
53
dfinity
35
icp
33
motoko
14
canister
13
rust
12
blockchain
11
ic
9
internetcomputer
8
react
8
web3
8
ethereum
7
smart-contract
6
typescript
6
smart-contracts
6
dfx
5
agent
5
internet-computer-protocol
5
candid
4
javascript
4
dapp
4
vite
4
ai
3
python
3
wallet
3
nextjs
3
solana
3
android
3
cross-chain
3
unity
3
csharp
3
motoko-language
3
testing
3
canisters
3
llm
3
testing-tools
3
vector-database
2
education
2
dao
2
decentralized
2
defi
2
java
2
identity
2
integration-testing
2
testing-library
2
template
2
hook
2
dart
2
sdk
2
bitcoin
2