Skip to content

Prototype implementation of domain-specific language for the design of smart-contracts over cryptocurrencies

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

input-output-hk/marlowe

Repository files navigation

Logo
Marlowe Language Specifications

Beta

Important

This Marlowe repository will soon be moved to https://github.com/marlowe-lang. The new repositories will be administered by an independent vehicle, a not-for-profit organization currently being set up by the transition team.
This will allow us to ensure community representation and stewardship. Future developments and support for Marlowe are transitioning to a community-driven model initially led by Simon Thompson, Nicolas Henin and Tomasz Rybarczyk.
See here for details.

This repository contains the specification of Marlowe, a domain-specific language (DSL) for describing financial smart contracts that can be enforced by scripts deployed on a blockchain, as well as some tools for analysing and simulating the execution of contracts written in the DSL. To use Marlowe on the cardano blockchain please refer to the marlowe-cardano repository

Learning about Marlowe and its ecosystem

The Marlowe tutorials introduce Marlowe and the Marlowe Playground.

The Marlowe website and Marlowe docs site explain what Marlowe is and the different tools available.

Versions of Marlowe

The master branch contains the latest version of Marlowe, version 3.

An earlier version of Marlowe is described in a paper that was presented at ISoLA 2018. This version is tagged v1.3 and a minor update on this is tagged v1.3.1.

Developer environment

This repository uses nix and nix-flakes to provide a reproducible developer environment to all users. Follow the instructions to install the nix package manager on your OS and then use nix to install nix-flakes.

Once both tools are installed, download the repository and get in the development environment using

$ git clone git@github.com:input-output-hk/marlowe.git
$ cd marlowe
$ nix develop .

Isabelle proofs

To Build the tests, you can run the following command inside the development environment.

[nix-develop] $ build-marlowe-proofs

To open the Isabelle IDE to modify or explore the proofs, use the following command

[nix-develop] $ edit-marlowe-proofs

To generate the specification and cheatsheet pdfs you can use the following command:

[nix-develop] $ build-marlowe-docs

the results will be available in the papers folder.

Restriction on Pull Requests

If you are proposing a change to the Marlowe domain-specific language (DSL), pursue the Marlowe Improvement Proposal (MIP) process by starting a MIP discussion of the proposed change. Pull requests for DSL changes will be rejected unless they have previously been approved via the MIP process.

About

Prototype implementation of domain-specific language for the design of smart-contracts over cryptocurrencies

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Packages

No packages published