morley: Developer tools for the Michelson Language

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

A library to make writing smart contracts in Michelson — the smart contract language of the Tezos blockchain — pleasant and effective.

[Skip to Readme]


Versions,,,,,, 0.2.0,, 0.3.0,, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9, 1.10.0, 1.11.0, 1.11.1, 1.12.0, 1.12.0, 1.13.0, 1.14.0, 1.15.0, 1.15.1, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.17.0, 1.18.0, 1.19.0
Change log
Dependencies aeson, aeson-casing, aeson-pretty, base (>=4.7 && <5), base58-bytestring, binary, bytestring, constraints (>=0.11), containers, cryptonite, data-default, first-class-families (>=, fmt, generic-deriving, gitrev, haskeline, hex-text, interpolate, lens, megaparsec (>=7.0.0), memory, morley, morley-prelude (>=0.3.0), mtl, named, optparse-applicative, parser-combinators (>=1.0.0), scientific, semigroups (>=0.19.1), show-type, singletons, syb, template-haskell, text, text-manipulate, th-lift, th-lift-instances, time, timerep, uncaught-exception, unordered-containers, vector, vinyl, with-utf8, wl-pprint-text [details]
License MIT
Copyright 2018 camlCase, 2019-2020 Tocqueville Group
Author camlCase, Serokell, Tocqueville Group
Maintainer Serokell <>
Category Language
Home page
Bug tracker
Source repo head: git clone
Uploaded by pasqu4le at 2021-01-29T14:24:44Z


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Readme for morley-1.12.0

[back to package description]

Morley: Developer tools for the Michelson Language


Morley aims to make writing smart contracts in Michelson pleasant and effective. It contains 3 major things:

  1. An executable that lets you perform various operations on Michelson smart contracts.
  2. A library with core Tezos and Michelson data types, and functions such as Michelson typechecker and interpreter.
  3. A superset of the Michelson language that we call the Morley language. It relaxes Michelson parser rules, adds some syntax sugar and simple features.

Morley executable

How to install

There are three ways to get Morley executable:


Morley executable does not interact with Tezos node and Tezos network. It works in emulated environment which is stored in a simple JSON file on disk. The following commands depend on environment and may modify it:

The following commands don't depend on environment:

You can get more info about these commands by running morley <command> --help. Run morley --help to get the list of all commands.

Morley library

Morley-the library is available on Hackage. It consists of the following parts:

Morley language

Morley-the-language is a superset of the Michelson language, which means that each Michelson contract is also a valid Morley contract but not vice versa. There are several extensions which make it more convenient to write Michelson contracts and test them. For example, one can write inline assertions in their contracts for testing. All the details can be found in the document about these extensions. A smart contract written in the Morley language can be transpiled to Michelson using the aforementioned morley print command.