Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: about 2 hours ago
JSON representation

  • Blogs

  • Client Libraries (Agents)

    • JavaScript/TypeScript

      • 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 core canisters on the Network Nervous System (NNS).
      • 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.
      • ic-use-siwe-identity - React hook for easy frontend integration with SIWE (Sign in with Ethereum) enabled canisters.
    • Rust

      • agent-rs - Collection of libraries and tools for interfacing with the IC using Rust.
      • dfx - Commandline tool to interact with the IC written in Rust.
    • Python

      • ic-py - Library for interfacing with the IC using Python.
    • Dart/Flutter

      • agent_dart - Framework to build mobile applications.
      • ic_tools - IC Tools supporting Dart & Flutter on the Web and Linux.
      • ic_tools_web - Library with specific tools for Flutter on the Web.
    • Go

      • agent-go - Libraries for interfacing with the IC using Go.
      • ic-go - Libraries for interfacing with the IC using Go.
      • ic-go - Libraries for interfacing with the IC using Go.
    • C#

      • agent-unity - Wrapper of agent-rs to be used in unity projects.
      • ICP.NET - Native Implementation in C# (Unity compatible).
    • C++

    • Java

      • ic4j-agent - Libraries for interfacing with the IC using Java (Android compatible).
      • ic4j-websocket - Library for for interfacing with the IC via WebSocket using Java (Android compatible).
    • Ruby

      • ic_agent - Basic modules to interact with the IC using Ruby.
    • Swift

      • IcpKit - Native Swift library for interacting with IC on iOS/MacOS. Provides implementation for Ledger canister.
    • Tutorials and Samples

  • How it works / Deep dives

  • Courses, Tutorials, and Samples

  • Starters

    • Tutorials and Samples

  • Canister Development Kits (CDKs)

    • Swift

      • CDK Framework - Framework to build CDKs which has been used for Azle and Kybra.
    • 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.
      • ic-cdk - Rust CDK maintained by DFINITY.
      • ic-websocket-cdk - IC WebSocket CDK for canisters written in Rust.
    • JavaScript/TypeScript

      • Azle - TypeScript CDK.
    • Python

    • C/C++

    • AssemblyScript

      • cdk-as - AssemblyScript CDK.
    • Solidity

      • bitfinity-evm - Provides the ability to create EVM-based smart contracts.
  • Dapp Development Platforms and Frameworks

    • AssemblyScript

      • Ego - Framework to build wallet apps, i.e. user-controlled canisters.
      • Juno - Build Web3 at Lightning Speed.
  • Developer Tooling

    • AssemblyScript

      • 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
      • Developer Tooling Landing page - Overview of tooling in the Internet Computer ecosystem.
      • IC Inspector - Chrome extension to decode IC requests and responses.
      • Internet Base - VSCode extension to run Blast notebooks.
    • Testing

      • 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.
      • pocket-ic - A canister testing library that supports deterministic, programmatic canister testing in Rust.
    • Benchmarking

      • canbench - A benchmarking framework for canisters, allowing you to analyze your code's use of instructions and memory.
    • CI/CD

      • Launchtrail - Simple and Secure Release Management for Internet Computer Projects.
      • ICPipeline - CI/CD framework to simply IC release management.
    • Monitoring

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

    • Monitoring

    • Package Managers

      • Vessel - Package manager for the Motoko programming language.
      • MOPS - Package manager for Motoko with fully on-chain package registry.
    • Libraries / Frameworks

      • 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-websocket-cdk - IC WebSocket CDK for canisters written in Motoko.
  • Candid

  • 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.
  • 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 build-in idempotency support written in Rust.
  • Fungible and Non-fungible Tokens (NFTs)

  • Messaging

    • Analytical Methodologies

      • OpenChat - An open chat app.
      • W3NS - An Internet Computer service for notifications.
      • Messity - An open and nonproprietary decentralized messaging protocol.
  • Decentralized Finance (DeFi)

    • Exchanges

      • DeSwap Orderbook - An Order Matching Engine Module for Dex in Motoko.
      • Spinner - Private transactions using zkSNARKs.
      • BrownFi - Simple AMM with high Capital Effifiency
      • Sonic LBP - Fair launch token sales and raise funds using Liquidity Bootstraping Pool.
      • 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.
    • 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.
    • Oracles

    • Protocols

      • Elliptic - Bitcoin-backed Stablecoin inspired by Liquity protocol.
      • BeamFi - Autonomous Money Streaming Protocol for Micro Payments DeFi applications.
  • Social Applications

    • Protocols

      • Formyfi - Decentralized & fully on-chain Q&A Forms.
      • Proton DApp - A social DApp totally based on the Actor model.
      • Formyfi - Decentralized & fully on-chain Q&A Forms.
      • 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.
  • DAO Frameworks

  • Game Development

    • Protocols

      • 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)
      • WebGL Sample - Example of how to host a WebGL game on the IC.
  • Wallets and Authentication

    • Protocols

      • ICRC-1 Wallet - Canister-based wallet for ICRC-1 compliant tokens.
      • Internet Identity - Pseudoymous authentication system for the Internet Computer.
      • 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.
      • Plug - Chrome extension and mobile wallet.
      • Stoic - Web wallet.
      • Bitfinity - Chrome extension.
    • 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.
  • Chain Fusion

    • General

    • Bitcoin

    • Ethereum

      • 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-eth-starter - An advanced starter project for interacting with Ethereum on the Internet Computer (Beta).
      • 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.
      • ChainSight - Composable cross-chain data oracles 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.
      • 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.
    • Solana

      • Galactic Bridge - Canister-controlled SOL bridge using Chain Fusion tech.
  • Decentralized AI

    • Solana

      • ArcMind AI - LLM-powered autonomous agent that uses Chain of thoughts for reasoning, taking actions, and completing goals. [Try the app here](https://arcmindai.app)
      • ArcMind Vector DB - A Vector DB with similarity search supporting text, image, and audio embeddings, based on k-d tree, useful for AI applications like recommendation and Retrieval-Augmented Generation.
      • DataPond.ai integration with ICP - ICP-enabled Retrieval Augmented Generation (RAG) tool for transparent AI data feeding and data tracing on the ICP network [Try it here](https://icp-prod.datapond.ai).
      • DeVinci - AI chatbot running in user's browser based on open-source LLM and served from the Internet Computer. [Try it here](https://x6occ-biaaa-aaaai-acqzq-cai.icp0.io/).
      • ICGPT - dApp with React front-end & C/C++ back-ends running LLMs fully on chain. [Try it here](https://icgpt.icpp.world/).
      • ic-mnist - MNIST (considered to be `hello world` of machine learning) running on IC using [burn](https://github.com/tracel-ai/burn) crate. [Try it here](https://jsi2g-jyaaa-aaaam-abnia-cai.icp0.io/).
      • Tensorflow on ICP - An example that loads and uses a pre-trained model for predictions within a canister running on ICP using Azle.
      • MotokoLearn - A Motoko package meant to facilitate on-chain training and inference of machine learning models where having a large GPU is not a requirement.
      • Tract-IC-AI - An ICP version of Tract, a tiny, no-nonsense, self-contained, Tensorflow and ONNX inference toolkit.
      • 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).
      • Cipher AI Vault - Azle-based PoC with in-memory VectorDB & LLM, secure asset & data storage, cycles topup, and multi-wallet authentication, showcasing fully-sandboxed AI on the Internet Computer. [Try it here](https://qehbq-rqaaa-aaaan-ql2iq-cai.icp0.io/)
      • yllama - An on-chain Llama 3 inference engine optimized for real-world workloads using non-quantized 8b parameters Llama models.
      • DeAI Technical Working Group - Repo of the ICP DeAI WG with weekly call summaries and additional resources.
      • ELNA AI - Fully on-chain Al agent creation platform & marketplace, supporting on- and off-chain LLMs, vector DB and tools. [Try it here](https://dapp.elna.ai/)
  • ZK

    • Solana

      • 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.
      • 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.
  • Courses, Tutorials and Samples

  • Dashboards, Explorers and Registries

  • 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.
  • Internet of Things

    • Solana

      • 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.
  • Communities and Communication

  • Bounties and Grants

  • AI

    • Libraries

      • ArcMind AI - LLM-powered autonomous agent that uses Chain of thoughts for reasoning, taking actions and completing goal