An awesome list of Motoko code and resources curated by the community.
The Motoko programming language is a new, modern and type safe language for developers who want to build the next generation of distributed applications to run on the Internet Computer blockchain network.
Fully functional smart contract.
- candid-spaces - A general-purpose candid data lake for canisters' data on the IC.
- Canister Tip Jar - Donate cycles to your favorite canisters on the Internet Computer and keep them live and healthy.
- iCAN - A Canister Management Platform, which helps you create canisters in random subnet and manage canisters status efficiently and conveniently.
- ic-blackhole - Once a canister sets its only controller to a black hole, it becomes immutable.
- motoko_top_up_canister - Implementation of a canister called periodically by a Node.js service; that top-up automatically user-defined canisters with cycles.
- extendable-token - This token standard provides a ERC1155/multi-token-like approach with extensions that can add additional functionality based on the purpose of the token.
- extendable token standard - Extendable Token Standard.
- icrc7_motoko - An ICRC-7 standard implementation in Motoko.
- icrc7-mo - A Class+ ICRC-7 Library for building NFT Canisters.
- icrc30-mo - A Class+ ICRC-30 Library for providing Approve/TransferFrom to ICRC-7 NFT Canisters.
- icrc3-mo - A Class+ ICRC-3 Library for adding transaction logs and archives to your canister.
- icrc-nft-mo - A Sample NFT combining icrc7-mo, icrc30-mo, icrc3-mo.
- ic-nft - A NFT standard implementation for the Internet Computer, the interfaces mainly follow the ERC721 standard.
- ic-token - An ERC-20 style token standard implements for Motoko.
- motoko-token - This package implements a simple ERC-20 style token.
- non-fungible-token - The goal for this project is to develop a non-fungible token standard which leverages the unique properties of the IC and enables builders to create entire experiences from a single contract.
- token faucet - A token faucet for ic-token.
- reversi - Multiplayer Reversi Game on Internet Computer.
- revo - A drawing game on Internet Computer.
- superheroes - A simple example that demonstrates how to build a CRUD application on the Internet Computer using Motoko and React.
- LinkedUp - An open professional network on Internet Computer.
- motoko-bucket - A K-V Database lib that uses stable memory to store data.
- motoko-cdn - A simple storage auto-scaling solution across multiple canisters. Ie: mini-bigmap.
- motoko-dht - This canister implements a distributed hash table.
- motoko-document-db
- motoko-ICSP - Internet Computer Storage Protocol. This lib supports many features, such as auto-scale storage, HTTP Redirect, cycle monitor and top up self automatically.
- cleansheets - A spreadsheet-like application for the Internet Computer, written in Motoko.
- motoko-certified-http - A motoko canister that does HTTP asset certification.
- relay - Managed events infrastructure by Departure Labs.
- cancan - A scalable video-sharing service.
- dfx - The DFINITY command-line execution environment (dfx) is the primary tool for creating, deploying, and managing the dapps you develop for the Internet Computer blockchain.
- Vessel package manager - Add and manage packages, libraries, and dependencies for your Motoko programs.
- Blocks - An open source visual Motoko smart contract editor.
- IntelliJ IDEA Motoko support - Adds support for the Motoko language from Dfinity.
- motoko-playground - A playground for the Internet Computer's native Motoko language.
- Visual Studio Code
- Motoko - Motoko language support maintained by official.
- ic-mini-terminal - Minimal keyboard input (⌨) and graphical output (📺) for programs on the Internet Computer.
- motoko-bigtest - Long-running tests as/for IC services, via a Motoko-based DSL.
- motoko-color - A Motoko library for rendering color schemes and graphics to the terminal, based on the ANSI ASCII standard.
- motoko-matchers - Composable assertions for unit testing.
- ic101 - This repository demonstrates how to use the matchers library to unit test canisters on the Internet Computer.
- chronosphere - A time library for the Motoko programming language.
- motoko-adapton - Dynamic dependence graph and memoization techniques in Motoko.
- motoko-qr - A QR-code generator for the Motoko programming language.
- motoko-scc - A Strongly Connected Component library for Motoko.
- motoko-splay - The splaying algorithm for Motoko.
- mo-parsec - A Parsec-based parser combinator library for Motoko.
- Parser Combinators - Based on Monadic Parser Combinators by Graham Hutton and Erik Meijer.
- Sorted - Data structures in which each element is sorted in numerical, alphabetical, or some other order.
- ecdsa-motoko - ECDSA for Motoko.
- evm-txs - EVM transactions creation, encoding, and decoding library in pure Motoko.
- libsecp256k1.mo - Motoko port of libsecp256k1.
- motoko-bitcoin - Bitcoin-related libraries (Base58, RIPMED160, HMAC).
- motoko-crc - This package implements cyclic redundancy checks for the Motoko programming language.
- motoko-CRC32 - Implements the 32-bit cyclic redundancy check, or CRC-32, checksum.
- motoko-sha2 - All hash functions from the SHA2 family (sha224, sha256, sha512-224, sha512-256, sha384, sha512).
- motoko-sha - This package implements secure hash algorithms for the Motoko programming language.
- motoko-SHA - SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
- motoko-sha224 - A Sha224 implements for Motoko.
- rand - Pseudo Random Number Generators.
- array - Extended Array Package for Motoko.
- motoko-base - The Motoko base library, commonly used data structures and algorithms, maintained by the official.
- motoko-bigsearch - A search service in Motoko, inspired by indexing and search systems like Apache Lucene.
- motoko-BiMap - A bimap (or "bidirectional map") is a map that preserves the uniqueness of its values as well as that of its keys.
- motoko-crud - A framework for constructing CRUD services in Motoko for the Internet Computer.
- motoko_datetime - Datetime library. Support for UTC, local timezones, locales and basic datetime operations/structures
- motoko-MerkleTree - A simple merkle tree data structure for Motoko. It provides a key-value store, where both keys and values are of type Blob.
- motoko-Queue - A collection of elements that are maintained in a sequence, a FIFO Queue.
- motoko-sequence - Cache-friendly, persistent sequential data for Motoko.
- motoko-StableMap - Stable Map for the Motoko.
- MotokoStableBTree – Stable Memory Based BTree.
- motoko-text-map - A Motoko Hashmap that fixes its key type to Text.
- mutable-queue.mo - Motoko module of a mutable queue data structure.
- Principal - Provides a wrapper around the base principal module.
- Stable BTree Map - Stable (Heap-based) BTreeMaps in Motoko.
- Stable Buffers - Stable (Heap-based) Buffers in Motoko.
- Stable Data Struct - Stable (Heap-based) Hashmap implements.
- Stable HashMaps - Functional & Class-Based (Heap-based) stable Hashmaps in Motoko.
- Stable LinkedList - (Heap-based) Stable, mutable singly & doubly linked lists in Motoko.
- Stable Red-Black Trees - (Heap-based) Stable Red-Black Trees in Motoko.
- Account.mo – ICRC1 Account En/Decoding
- json package - JSON for Motoko.
- lexicographic-encoding - Lexicographic (string sortable) integer encoding in Motoko.
- motoko-base32 - Base32 coding/decoding for Motoko.
- motoko_candid - CANDID encoding/decoding library
- motoko_cbor - CBOR encoding/decoding library
- motoko-Encode - Base32, Hex and Binary Library for the Motoko.
- motoko-hex - This package implements hexadecimal encoding and decoding routines for the Motoko programming language.
- motoko-json - Json parser in Motoko.
- motoko-UUID - Generation of UUIDs based on RFC 4122.
- motoko_xml - XML encoding/decoding library
- motoko-graph - Graphical data models for Motoko.
- motoko-redraw - 2D graphics and layout algorithms for Motoko.
- motoko-SVG Generator - A SVG generator for the Motoko.
- ic-logger - Motoko library to help create an append-only logger actor.
- motoko-pretty - A pretty printer library for Motoko.
- Asset Storage - Interface of the Asset Storage Canister.
- motoko-GraphQL - GraphQL is a query language designed to build client applications and system for describing their data requirements and interactions.
- Bucket - A data bucket library that use stable memory to store files bytes and assist developers to build http response.
- motoko-library-template - A template for creating Motoko libraries.
- Format - Implements conversions to and from textual representations of basic data types.
- motoko-regex - Simple regex matching for Motoko Text.
- Http Request Parser - A http request parser for parsing url, search query, headers and form data.
A registry allows you to publish your Rust libraries as crate packages, to share them with others publicly and privately.
- io package - Basic Interfaces for I/O Primitives.
- MOPS - A package manager for Motoko with on-chain package registry.
- Package Set - Aviate-labs package-set for Motoko libraries to use with vessel.
- Vessel Package Set - The official package-set for Motoko libraries to use with vessel.
- Learning
- AgorApp - AgorApp is an online interactive coding platform that provides courses and coding challenges on all-things-web3 engineering and Internet Computer development.
- DFINITY Education - Lessons about blockchain, cryptocurrencies and protocol of Internet Computer.
- Introducing the Internet Computer - A comprehensive series of documents that introduce Internet Computer.
- Motoko Bootcamp - Lectures and resources from the Motoko Bootcamp.
- motoko by example - An officially maintained collection of short Motoko examples.
- The Motoko Programming Language Book - A guide for writing Web3 Software on the Internet Computer.
Contributions welcome! Read the contribution guidelines first.