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

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

  • Blogs

  • Bounties and Grants

  • Candid

  • 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

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

    • 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
    • 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.
      • Chain-key ECDSA - Tech that allows creating transactions targeting various chains from canisters on the Internet Computer.
    • Solana

    • TON

  • 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++

    • Dart/Flutter

      • agent_dart - Framework to build mobile applications.
    • Elixir

      • icp_agent - Agent for making ICP queries and calls from elixir.
    • 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.
    • 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

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

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

  • Communities and Communication

  • Courses, Tutorials and Samples

  • Courses, Tutorials, and Samples

  • 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

  • Dapp Development Platforms and Frameworks

    • Moonbit

      • Juno - Build Web3 at Lightning Speed.
      • Ego - Framework to build wallet apps, i.e. user-controlled canisters.
  • Dashboards, Explorers and Registries

  • 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).
      • Rust-Connect-Py-AI-to-IC - A streamlined open-source tool for deploying Python AI models on ICP.
    • TON

      • 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/)
      • 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/).
      • 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.
      • 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.
      • 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/)
      • llama_cpp_canister - llama.cpp for the Internet Computer. (Note: used as a backend for [ICGPT](https://icgpt.icpp.world/))
      • ICSoccerWorld Trainer - Flashlight multilayer perceptron deep learning used for training soccer agents on ICP.
      • Blueband - An on-chain vector DB for semantic search and document retrieval, optimized for static datasets.
      • ICP Agent Kit - ICP Agent Kit is a comprehensive TypeScript SDK that brings natural language processing (via LangChain) to Internet Computer blockchain operations.
      • Vectune - A lightweight vector database with incremental indexing based on FreshVamana for retrieval-augmented generation (RAG).