motoko icon indicating copy to clipboard operation
motoko copied to clipboard

Simple high-level language for writing Internet Computer canisters

Motoko · GitHub license Tests PRs Welcome

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

Community resources

Contribution

See our CONTRIBUTING and CODE OF CONDUCT to get started.