Motoko ·
A safe, simple, actor-based programming language for building Internet Computer (ICP) canister smart contracts.
- Introduction
- Basic concepts and terms
- Sample code
- Language manual
- Concrete syntax
- Documentation sources
- Base library documentation
- Motoko-san: a prototypical deductive verifier
-
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
-
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
- 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)
- 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
See our contribution guidelines and code of conduct to get started.