caffeinelabs/motoko

Simple high-level language for writing Internet Computer canisters

590

stars

6,247

commits

OCaml

primary language

Sep 6, 2026

updated

internet-computer
motoko
motoko-language
programming-language

README

Motoko · Release 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

Community Resources

Contributing

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

Contributors

(top 30 of 58)

nomeata

1,707 commits

crusso

910 commits

ggreif

678 commits

dfinity-bot

632 commits

caffeinelabs/motoko

Simple high-level language for writing Internet Computer canisters

590

stars

6,247

commits

OCaml

primary language

Sep 6, 2026

updated

internet-computer
motoko
motoko-language
programming-language

README

Motoko · Release 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

Community Resources

Contributing

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

Contributors

(top 30 of 58)

nomeata

1,707 commits

crusso

910 commits

ggreif

678 commits

dfinity-bot

632 commits

Languages

OCaml

47.3%

Swift

32.2%

Rust

16.0%

Haskell

1.3%