Coder Social home page Coder Social logo

awesome-motoko's Introduction

Awesome Motoko Awesome

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.

Contents

Applications

Fully functional smart contract.

Canister tools

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

Cryptocurrencies

  • 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.
  • icrc1-token-canister - Implementation of ICRC1 token canister
  • 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.
  • icrc7_motoko - An ICRC-7 standard implementation in Motoko.
  • icrc7-mo - A Class+ ICRC-7 Library for building NFT Canisters.
  • 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.

Games

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

Mining Platform

  • loka - Trustless Non-Custodial Bitcoin Mining Platform built on IC

Realestate

  • ber - Blockchain estate register with IC

Social

  • LinkedUp - An open professional network on Internet Computer.

Storage

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

Utilities

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

Video

  • cancan - A scalable video-sharing service.

Development tools

Build system

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

IDEs

Testing

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

Libraries

Algorithms

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

Cryptography

  • ecdsa-motoko - ECDSA for Motoko.
  • ecdsa_poc - Prototype implementation of ECDSA, only for learning.
  • 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.

Data structures

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

Encoding

Graphics

Logging

  • ic-logger - Motoko library to help create an append-only logger actor.
  • motoko-pretty - A pretty printer library for Motoko.

Storage

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

Templates

Text processing

  • Format - Implements conversions to and from textual representations of basic data types.
  • motoko-regex - Simple regex matching for Motoko Text.

Web Programming

  • Http Request Parser - A http request parser for parsing url, search query, headers and form data.

Registries

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.

Resources

  • Learning

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0

awesome-motoko's People

Contributors

flyq avatar byronbecker avatar domwoe avatar letmejustputthishere avatar c-b-elite avatar tomijaga avatar iefrstudio avatar perlets9 avatar vxyagr avatar sideffect0 avatar rvanasa avatar web3nl avatar ccyanxyz avatar riccardobiosas avatar panindustrial-dev avatar fifteen42 avatar av1ctor avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.