Motoko 路
A safe, simple, actor-based programming language for authoring Internet Computer (IC) canister smart contracts.
User Documentation & Samples
- Building, installing, and developing on Motoko.
- Overview.
- Small samples.
- Language manual.
- Concrete syntax.
- Documentation sources.
- Base library documentation.
- Motoko-san: a prototypical deductive verifier.
Introduction
Motivation and Goals
-
High-level language for programming IC applications
-
Simple ("K.I.S.S.") design and familiar syntax for average programmers
-
Good and convenient support for actor model
-
Good fit for underlying Wasm and IC execution model
-
Anticipate future extensions to Wasm where possible
Key Design Points
-
Simple class-based OO language, objects 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
- Base library
- Vessel package manager
- Example projects
- Motoko Playground 路 (online IDE)
- Embed Motoko code snippets 路 (online interpreter)
- VS Code extension 路 (install)
- Browser and Node.js bindings 路 (npm package)
Community resources
- Awesome Motoko
- Blocks - an online low-code editor for Motoko
- MOPS - a Motoko package manager hosted on the IC
- Motoko Bootcamp 路 (YouTube channel)
- Motoko library starter template
Contribution
See our CONTRIBUTING and CODE OF CONDUCT to get started.