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: 18 days ago
JSON representation

Blogs

Solana

TON

Bounties and Grants

Libraries

Solana

TON

Candid

Candid implementations

Libraries / Frameworks

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
  • Bitfinity EVM - An Ethereum Virtual Machine (EVM) on ICP.

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.

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

Libraries

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

Courses, Tutorials and Samples

Courses

Tutorials and Samples

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

Protocols

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

Libraries

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
  • ArcMind AI - LLM-powered autonomous agent that uses Chain of thoughts for reasoning, taking actions, and completing goals. Try the app here
  • 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.
  • DeVinci - AI chatbot running in user's browser based on open-source LLM and served from the Internet Computer. Try it here.
  • ICGPT - dApp with React front-end & C/C++ back-ends running LLMs fully on chain. Try it here.
  • ic-mnist - MNIST (considered to be hello world of machine learning) running on IC using burn crate. Try it here.
  • 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
  • llama_cpp_canister - llama.cpp for the Internet Computer. (Note: used as a backend for ICGPT)
  • 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.