Skip to content
/ motoko Public

Simple high-level language for writing Internet Computer canisters

License

Notifications You must be signed in to change notification settings

dfinity/motoko

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 5, 2025
8621c37 · Apr 5, 2025
Apr 3, 2025
Aug 26, 2024
Feb 5, 2025
Apr 4, 2025
Feb 26, 2025
Apr 5, 2025
Apr 4, 2025
Sep 13, 2022
Oct 29, 2019
Apr 4, 2025
Apr 4, 2025
Feb 7, 2024
Oct 29, 2019
Feb 23, 2023
Dec 2, 2024
Feb 3, 2025
Apr 4, 2024
Apr 4, 2025
Nov 8, 2024
Jan 17, 2020
Mar 21, 2025
Aug 23, 2021
Jul 11, 2023
Mar 31, 2025
Aug 26, 2024
Mar 31, 2025
Nov 25, 2019

Repository files navigation

Motoko · GitHub license Tests PRs Welcome

A safe, simple, actor-based programming language for building Internet Computer (ICP) canister smart contracts.

Motoko Logo

User Documentation & Samples

Introduction

Motivation and Goals

  • High-level programming language for ICP smart contracts

  • Simple design and familiar syntax

  • Convenient support for the actor model

  • Good fit for underlying Wasm and ICP execution model

Key Design Points

  • Object-based language with actors, classes, modules, etc. as closures

  • Classes can be actors

  • Async construct for direct-style programming of asynchronous messaging

  • Structurally typed with simple generics and subtyping

  • Overflow-checked number types, explicit conversions

  • JavaScript/TypeScript-style syntax but without the JavaScript madness

  • Inspirations from Java, C#, JavaScript, Swift, Pony, ML, Haskell

Related Repositories

Community Resources

Contributing

See our contribution guidelines, code of conduct and build instructions to get started.