Introducing LIGO: a new smart contract language for Tezos

Gabriel Alfour
Published in
2 min readMar 14, 2019


A (self-aware) prototype of the LIGO logo

Introduction to LIGO

In order to implement Marigold, a layer 2 solution for Tezos, we built a language that would let us write complex, yet efficient, smart contracts. Thus, LIGO was born. LIGO is still in early-stage development, but we’re excited to give you a sneak peek.

LIGO is a simple smart contract language designed for developing longer contracts than one would naturally write in Michelson. It is an imperative language that compiles down to clean Michelson code, featuring a Pascal-like syntax and a simple type system.

LIGO is being developed by Nomadic Labs developers, Georges Dupéron and Christian Rinderknecht, and the Marigold Project.

We are currently finishing the first prototype of LIGO. It features rich error messages, a small unit-testing framework and transpilation to Michelson. Over the next week, we will post a tutorial to install and play with it.

For those who can’t wait to learn more, below is a sample of the code: an entry point to a crowdfunding contract.

Entry point to a crowdfunding contract


On top of the prototype, we are working on editor integration. We are starting with VS Code, but LIGO should easily enable support for Emacs and other popular editors.

After we finish the prototype and basic editor integrations (syntax highlighting, type information and smart auto-completion), we’ll provide a user-guide, documentation for the compiler, as well as stabilize the command line interface.

Nomadic Labs will then work on formal verification and improve tooling. Meanwhile, The Marigold Project will focus on writing its smart-contracts for Layer-2 scaling in LIGO.


If you are interested in LIGO or Marigold, feel free to send an email at {}