Skip to main content


To write smart contracts for Tezos, one can either choose the official low-level language called Michelson, or a high-level language, such as Archetype, LIGO or SmartPy, which compiles into Michelson.

This module focuses on the Michelson language.

At the end of this module, you will be able to:

  • manipulate a stack-based language,
  • write basic smart contracts in Michelson,
  • understand the constitutive parts of a smart contract (entrypoints, storage, code),
  • test a smart contract.

This module is inspired from the official Michelson documentation available here and here.


Before you proceed, we recommend to set up a development environment on your computer to test your Michelson scripts. Install an IDE such as Visual Studio Code with the Michelson extensions vscode-michelson.

You can launch a sandbox node following the Deploy a node module or the official documentation here.

Once octez-client is installed and configured, you can run your smart contract with the following command:

octez-client run script on storage '0' and input '5'

It is also possible to verify whether the smart contract is well-formatted and respects the language's grammar using the following command:

octez-client typecheck script -v