Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
December 7, 2023 09:31
October 29, 2019 10:12
December 7, 2023 09:31
December 7, 2023 09:31
February 23, 2023 21:54
September 11, 2023 12:06
July 11, 2023 10:05
November 25, 2019 16:33

Motoko · GitHub license Tests PRs Welcome

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

User Documentation & Samples


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


See our CONTRIBUTING and CODE OF CONDUCT to get started.