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: 2 days ago
JSON representation
-
Decentralized AI
-
TON
- anda
- Tensorflow on ICP - An example that loads and uses a pre-trained model for predictions within a canister running on ICP using Azle.
-
-
Decentralized Finance (DeFi)
-
Exchanges
- Sonic LBP - Fair launch token sales and raise funds using Liquidity Bootstraping Pool.
- DeSwap Orderbook - An Order Matching Engine Module for Dex in Motoko.
- Spinner - Private transactions using zkSNARKs.
- BrownFi - Simple AMM with high Capital Effifiency
- ICPEx Adapter - Used for quick access to the ICPEx, enabling fast execution of swap, create token, create pool, and other functions.
- Fomowell - FomoWell is an innovative fair launch platform tailored for Web3 projects.
- SSS DeFi - A fully on-chain trading system on ICP with orderbook-style trading, limit orders, visual liquidity management, and unified balances.
-
Frameworks and Tools
- ICTC - Distributed transaction framework for DeFi applications.
- ICSI - Simplify ICRC token tracking and management within sub-accounts using the ICP Sub-Account Indexer.
- ICSpore DCA - Payment solution for automated DCA purchases
-
Oracles
- Exchange Rate Canister - Oracle service for cryptocurrency and fiat currency exchange rates.
-
Protocols
-
-
Developer Tooling
-
AssemblyScript
- IC Inspector - Chrome extension to decode IC requests and responses.
-
Benchmarking
- canbench - A benchmarking framework for canisters, allowing you to analyze your code's use of instructions and memory.
-
CI/CD
- ICPipeline - CI/CD framework to simply IC release management.
- Launchtrail - Simple and Secure Release Management for Internet Computer Projects.
-
IDEs
- ICP Ninja - A browser IDE for creating Internet Computer (ICP) smart contracts. Write and deploy entire applications directly onchain from the browser.
-
Monitoring
- Canistergeek - Open-source tool to track your project canisters cycles and memory status.
- CycleOps - Proactive, automated, canister cycles management with email notifications and a no-code integration.
- Cycle.Express - Buy cycles at a steep discount by paying fiat money (credit cards, etc).
- Cycles.watch - Dashboard for canister cycles consumption overview with local notifications
- Metrics encoder - Library to encode metrics in Prometheus text exposition format.
- Canister monitoring - Example of using Prometheus to collect metrics from a canister.
- Cycles Manager - A library for index canisters that want to manage the cycles of their child canisters.
- ic-blackhole - Canister to publicly expose canister status information.
- Cycles.watch - Dashboard for canister cycles consumption overview with local notifications
-
Moonbit
- Developer Tooling Landing page - Overview of tooling in the Internet Computer ecosystem.
- Internet Base - VSCode extension to run Blast notebooks.
- dfxvm - The dfx version manager that lets you easily switch between dfx versions.
- ic-nix - Build IC projects with Nix.
- canister-tools - Take snapshots of the canister-data and download/upload snapshots. Simple upgrades. Common tools for Rust canisters.
- wasi2ic - Convert WASI binaries into binaries runnable on the IC.
- setup-dfx
- ICP Support - VS Code extension for deploying and interacting with canisters directly from within the editor.
- Canister DNS - A tool to easily connect your custom domain to your canister URL, supporting both main domains and subdomains.
- pluto
- liminal - based framework for serving HTTP from a canister.
- Ice.ts - Typescript-native tooling & deployments for the Internet Computer. A task runner like hardhat.
- Canister DNS - A tool to easily connect your custom domain to your canister URL, supporting both main domains and subdomains.
- IC Inspector - Chrome extension to decode IC requests and responses.
-
Orchestrating
- Canic - A Rust toolkit for orchestrating Internet Computer (IC) canisters at scale.
-
Testing
- pocket-ic - A canister testing library that supports deterministic, programmatic canister testing in Rust.
- pocketic-py - A canister testing library that supports deterministic, programmatic canister testing in Python.
- pic-js - A TypeScript/JavaScript library for testing canisters with support for PocketIC.
- canister-profiling - Code & scripts for collecting performance data for canisters.
- ic-repl - A REPL environment to communicate with canisters. Allows to write E2E integration tests.
- lightic - Write & Run tests for any canister in JS/TS. Canisters will be run inside nodejs environment, no DFX.
- pic-js - A TypeScript/JavaScript library for testing canisters with support for PocketIC.
- ic-mockery - IC-Mockery is a procedural macro framework that transforms async Result methods into HTTP outcalls, enabling seamless Internet Computer canister testing with PocketIC without changing production code.
- ic-repl - A REPL environment to communicate with canisters. Allows to write E2E integration tests.
-
-
Fungible and Non-fungible Tokens (NFTs)
-
Analytical Methodologies
- OutRank-Rarity - Implementation of mathematical code to calculate rarity within NFT collections in Python and Rust
-
Faucets
- ledger-faucet - Minter implementation of the [official faucet](https://faucet.internetcomputer.org) for testing purposes on ICP mainnet. It enables devs and users to claim tokens on the [TESTICP](https://dashboard.internetcomputer.org/canister/xafvr-biaaa-aaaai-aql5q-cai) and [TESTICRC1](https://dashboard.internetcomputer.org/canister/3jkp5-oyaaa-aaaaj-azwqa-cai) ledgers.
-
Implementations
- ICRC-7 Rust implementation
- ICRC-7 Motoko - NFT reference implementation by Pan Industrial.
- ICRC-7 Rust Launchpad - NFT launchpad example implementation by `tuminfei`.
- ICRC-7 Motoko Launchpad - NFT launchpad example implementation by `letmejustputthishere`.
- ICRC-7 Rust - NFT launchpad example implementation by `pramitgaha21`.
- ICRC-7 Rust - NFT launchpad example implementation by `tuminfei`.
- EXT Motoko - NFT implementation for the EXT standard by `flowerpowerdao`.
- ICRC-1/2/3 Rust - Fungible token reference implementation by DFINITY.
- ICRC-7 Rust - NFT reference implementation by ORIGYN.
- ICRC-1/2/3 Motoko - Fungible token reference implementation by Pan Industrial.
-
Interface Standards
- ICRC-1 - Base fungible token standard.
- ICRC-2 - Extension to support `approve` and `transfer_from`.
- ICRC-7 - Base NFT Standard.
- DIP20 - Fungible token standard inspired by the ERC20 standard.
- DIP721 - NFT standard inspired the ERC721 standard.
- EXT - The extendable token standard inspired by ERC1155.
- Origyn NFT - Origyn NFT standard.
-
-
Game Development
-
Protocols
- WebGL Sample - Example of how to host a WebGL game on the IC.
- BoomDAO World Protocol - An on-chain game server protocol weaving together ICP games into one universally accessible database.
- BoomDAO Unity template - Unity template with wallet integration and NFT fetching.
- Internet Computer GameKit - Toolkit for building games on the IC.
- Unity Play To Earn Sample - Example of how to deploy a Unity play to earn game on the IC.
- Wheel of Fortune - Example of II authentication, self-controlling canister (waits for players and chooses winner randomly) and ICP coin transferring (sub-account creation for participants and withdrawal functionality)
- ICPGameKit by Morgan Page - A drop-in solution for adding achievements, and game and user data saves on-chain using ICP.
-
-
How it works / Deep dives
-
Solana
- How it works - Learn how the IC realizes the vision of the World Computer.
-
TON
- Internet Computer for Geeks - Whitepaper written by the DFINITY team.
- Internet Computer Wiki - General knowledge resource about the Internet Computer.
- Constellation Book - Explains the underlying principles of IC in a simple and easy-to-understand manner.
- Internet Computer Learn Hub - Learn how the IC realizes the vision of the World Computer.
-
-
Infrastructure
-
Candid implementations
- IC WebSocket Gateway - Gateway that enables clients to open WebSocket connections with canisters. This is the [HTTP Gateway](https://internetcomputer.org/docs/current/references/http-gateway-protocol-spec/) counterpart for WebSockets.
- Idempotent Proxy - Reverse proxy server with built-in idempotency support written in Rust.
- Join Proxy - Reverse proxy server with built-in idempotency support written in Rust.
-
-
Internet of Things
-
TON
- Omnia Network - A platform that enables canisters to access any IoT device through a uniform HTTP interface.
- Staex VTS - Staex Vehicle Tracking System (VTS) - infrastructure to track and invoice vehicles.
-
-
MCP - Model Context Protocol
-
TON
- ic-rmcp - A lightweight Rust SDK for implementing MCP servers on the Internet Computer.
- motoko-sdk - A comprehensive, robust, and developer-friendly Motoko SDK for building MCP compliant servers on the Internet Computer.
- prometheus-protocol - A decentralized app store for community-verified MCP servers on the Internet Computer.
-
-
Messaging
-
Analytical Methodologies
- Messity - An open and nonproprietary decentralized messaging protocol.
- OpenChat - An open chat app.
- W3NS - An Internet Computer service for notifications.
- dMsg - A decentralized end-to-end encrypted messaging app.
- Diode - Decentralized team collaboration app for mobile & desktop
- ic-telegram-bot - A telegram bot on the Internet Computer
-
-
Motoko
-
Libraries / Frameworks
- ic-websocket-cdk - IC WebSocket CDK for canisters written in Motoko.
- IC Certification - Merkle Tree and support for certified variables and assets.
- Server - An Express-style http framework for serving certified http responses from canisters.
- IC-TEE - A framework to make Trusted Execution Environments (TEEs) work with the Internet Computer.
- motoko_regex
-
Monitoring
- Embed Motoko - Embed an interactive Motoko code snippet on your website.
- Motoko Playground - An online playground environment for Motoko.
- Motoko VS Code extension - Motoko language support for Visual Studio Code.
- Motoko.js - Compile and run Motoko in Node.js and the browser.
- Awesome Motoko - Awesome list focused on Motoko.
- Blocks - Online low-code editor for Motoko.
- Motoko Dev Server - A live reload development server for Motoko smart contracts.
- Motoko Formatter - A configurable Prettier plugin for Motoko.
- Motoko GitHub Repository - The home of the Motoko language.
-
Orchestrating
- Motoko Zed extension - Motoko language support for Zed.
-
Package Managers
-
-
Social Applications
-
Protocols
- Formyfi - Decentralized & fully on-chain Q&A Forms.
- Proton DApp - A social DApp totally based on the Actor model.
- RatersApp - A blockchain-powered SocialFi platform for movie lovers enhanced with ICP for transparent and secure movie reviews. Developed with React.js, Next.js, TypeScript, PHP (Laravel), Node.js, and Azle for canister building.
- RuBaRu DApp - The Fully On-Chain Content Creator-Consumer Platform Powered by DeAI : Own Your Profile, Own Your Content, and Earn Fair Incentives!
- RatersApp - A blockchain-powered SocialFi platform for movie lovers enhanced with ICP for transparent and secure movie reviews. Developed with React.js, Next.js, TypeScript, PHP (Laravel), Node.js, and Azle for canister building.
- AT Protocol PDS - Personal Data Server implementation for the AT Protocol (Bluesky) network written in Motoko.
- Formyfi - Decentralized & fully on-chain Q&A Forms.
-
-
Starters
-
Tutorials and Samples
- icp-dev-env
- create-ic - A simple command line tool to quickly create projects for the IC.
- create-ic-app - Modern, unopinionated templates for React, Vue & Svelte powered by [Vite](https://vitejs.dev/).
- ic-rust-starter - Starter for a Rust backend-only canister project.
- vite-react-motoko - Full-Stack React/Motoko starter with live reload.
- vite-sveltekit-motoko-ii - Stack SvelteKit/Motoko start with Internet Identity Integration and live reload.
- nextjs-ic-starter - Next.js Internet Computer Starter Template.
- IC in Dev Container - Run a local replica inside a Docker container with NNS in VS Code or GitHub Codespaces.
- IC Rust NextJS Starter - A starter kit for building applications with Rust and Next.js on the Internet Computer.
- Azle + NextJS Starter - Build Full-stack Dapp on IC with Typescript CDK and NextJS.
-
-
Storage and Databases
-
Candid implementations
- CanDB - Flexible, performant, and horizontally scalable non-relational multi-canister database built in Motoko.
- ic-oxigraph - An RDF database for the IC, that enables on-chain knowledge graphs.
- ic-sqlite - SQLite on the IC.
- ic-stable-memory - Stable memory collections for Rust.
- stable-structures - A collection of scalable and upgrade-safe data structures for Rust maintained by DFINITY.
- Sudograph - A GraphQL database for the IC.
- Certified Blockchain - Certified blockchain log on on the IC. This can be validated using only the NNS public key: [Validation](https://github.com/Factland/certified-blockchain-verification).
- ic-oss - A decentralized Object Storage Service on the IC.
- rusqlite
- ic-cose - A decentralized COnfiguration service with Signing and Encryption on the IC.
- rusqlite
- IcyDB - Scalable DB/ORM written in Rust, battle tested and constantly updated.
- ic-dbms - An Internet Computer framework which provides an easy way to implement a database canister by just providing the database schema
- Memory-Collection - Stable Memory collections for Motoko, includes a B+Tree, Buffer and Queue.
- ZenDB - Embedded Document DB with MongoDB style queries for large datasets for Motoko.
-
-
Wallets and Authentication
-
Libraries
- artemis
- ic-siwe - Authentication library to enable SIWE (Sign in with Ethereum) functionality for ICP applications.
- ic-siws
- connect2ic - A frontend auth library & toolkit for the Internet Computer.
- Plug-n-Play - agnostic, wallet adapter that implements ICRC auth standards.
- ic-siwb
- ic-sis
-
Protocols
- AstroX Me - Canister-based mobile/web multi-chain wallet.
- Bitfinity - Chrome extension.
- NFID - Digital identity for signing in to applications privately and securely.
- NNS Dapp - Stake ICP in neurons, participate in governance and decentralization sales.
- Stoic - Web wallet.
- Bitfinity - Chrome extension.
- ICRC-1 Wallet - Canister-based wallet for ICRC-1 compliant tokens.
- Internet Identity - Pseudoymous authentication system for the Internet Computer.
- Plug - Chrome extension and mobile wallet.
- Payments Wallet - A Wallet installed into user's canister for maximum security. Supports payment thresholds. Will support in-app payments.
-
-
ZK
-
Solana
- Pado zkAttestations - A The main functionalities provided by zkAttestations are creating attestations from the PADO extension, and recording attestations on the IC network. In addition, the basic attestation framework created in this project supports developers in creating their attestation-based dApps.
-
TON
- icp-zk-maze - ZK Maze is a ZK coprocessor developed by zCloak. ZK coprocessor offloads intensive Zero-Knowledge (ZK) computations from traditional blockchains, enabling the creation and verification of Zero-Knowledge Proofs (ZKPs) without revealing private information.
- Jolt Verifier Canister - A Canister which can verify the proof generated by [Jolt](https://github.com/a16z/jolt) zkVM.
- Gnark Plonk Verifer - A Canister that can verify proofs generated by [gnark](https://github.com/Consensys/gnark) on the BN254 curve.
-
Programming Languages
Categories
Chain Fusion
40
Developer Tooling
38
Courses, Tutorials, and Samples
33
Client Libraries (Agents)
30
Decentralized AI
23
Candid
21
Fungible and Non-fungible Tokens (NFTs)
19
Motoko
17
Wallets and Authentication
17
Storage and Databases
15
Decentralized Finance (DeFi)
14
Canister Development Kits (CDKs)
13
Dashboards, Explorers and Registries
11
Starters
10
Blogs
9
Social Applications
7
Game Development
7
Communities and Communication
7
Messaging
6
How it works / Deep dives
5
Bounties and Grants
4
DAO Frameworks
4
ZK
4
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
41
Tutorials and Samples
39
Candid implementations
32
Protocols
31
Libraries
23
Ethereum
20
Monitoring
18
Moonbit
17
Solana
16
Libraries / Frameworks
12
Bitcoin
11
JavaScript/TypeScript
11
Implementations
10
Courses
9
Testing
9
Interface Standards
7
Exchanges
7
Analytical Methodologies
7
Rust
6
General
5
Python
3
Go
3
Java/Kotlin
3
C/C++
3
Frameworks and Tools
3
Package Managers
2
C
2
Swift
2
Orchestrating
2
AssemblyScript
2
CI/CD
2
Oracles
1
IDEs
1
Benchmarking
1
Cosmos
1
Ruby
1
C#
1
C++
1
Dart/Flutter
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