Liquidity is a Smart-Contract Language for Tezos


Liquidity is a high-level typed language for Tezos that strictly complies to Michelson security restrictions. A formal verification framework for it is under development.

Learn More Try Online Documentation Github Repo

About Liquidity


Liquidity is a high-level language to program Smart Contracts for Tezos. It is a fully typed functional language, it uses the syntax of OCaml, and strictly complies to Michelson security restrictions.

A formal-method framework for Liquidity is under development, to prove the correctness of smart-contracts written in Liquidity.

The Liquidity language provides the following features:

  • full coverage of the Michelson language: Anything that can be written in Michelson can be written in Liquidity,
  • local variables instead of stack manipulations: values can be stored in local variables. The only restriction is that local variables do not survive to Contract.call, following the philosophy of Michelson to force explicite storage of values to limit reentrancy bugs,
  • high-level types: types like sum-types and record-types can be defined and used in Liquidity programs.

Liquidity already covers 100% of the Michelson features, and contracts generated with Liquidity can be submitted on the current alphanet.


Liquidity Online


Liquidity editors will soon be available to program online and submit contracts on Tezos testnet. For now, you can use our Try Liquidity Site to get a taste of the upcoming environment.


Documentation & Examples


Liquidity Documentation is available in the Github project documentation. Examples are also available in the Github project, or in the online editor.

A typical example is:

  [%%version 0.1]

  let%entry main
    (parameter : string)
    (storage : (string, int) map)
    [%return : unit] =

    let amount = Current.amount () in
    if amount < ("5.00" : tez) then
      Current.fail ()
    else
      match Map.find parameter storage with
        | None -> Current.fail ()
        | Some x ->
            let storage = Map.update parameter (Some (x+1)) storage in
            ( (), storage )

Liquidity Team


Alain Mebsout
Çağdaş Bozman
Fabrice Le Fessant
Michael Laporte
Mohamed Iguernlala

Liquidity Roadmap


The current roadmap is:

  • Development of an online editor for Liquidity
  • Development of a verification framework for Liquidity contracts
This website uses the creative template of startbootstrap.com
The background image is licensed under CC0
© 2017 OCamlPro SAS, All rights reserved.
Get it touch with us
Legal