Skip to content

This repository contains lessons for using Marlowe via REST and at the command line. It is meant to be used with demeter.run or with a Docker deployment of Marlowe Runtime.

License

Notifications You must be signed in to change notification settings

functionally/marlowe-starter-kit

 
 

Repository files navigation

Starter Kit for Marlowe PRs Welcome

Start learning how to build on Marlowe with minimal configuration. This repository contains a series of Jupyter notebooks that will run through a progression of lessons in the browser.

You can ask questions about Marlowe in the #ask-marlowe channel on the IOG Discord or post problems with any lesson or notebook to the issues list for the Marlowe Starter Kit github repository.

Quick Overview

If you've worked with Docker and containers before and want to run Marlowe services locally, follow the Docker instructions. Nix users can also use Docker in their environment.

Otherwise, demeter.run provides a free, limited-use hosted environment to run this starter kit entirely in the browser. This is highly recommended for newer users.

Each lesson contains a notebook with helper scripts to verify a working installation of required dependencies. The lessons gradually introduce new concepts about using Marlowe using smart contracts.

While these examples are shown using testnet, please review how to use Marlowe safely if running on mainnet.

Contents

Lesson Duration Prerequsites Video
1 - Using Marlowe Runtime's CLI 30 mins Preliminaries video
2 - Using Marlow Runtime's REST API 30 mins Preliminaries video
3 - Zero-Coupon Bond Using Marlowe's CLI 20 mins Preliminaries, Lesson 1 video
4 - Escrow Using Marlowe Runtime's REST API 35 mins Preliminaries, Lesson 2 video
5 - Swap of Ada for Djed using Marlowe Runtime's Rest API 20 mins Preliminaries, Lesson 2 video
6 - Simple web application using a CIP-30 wallet 5 mins Preliminaries, Lesson 5 video
7 - Checking the safety of a Marlowe contract 10 mins Preliminaries
8 - Experimental web application using a CIP-45 wallet 10 mins Preliminaries video
9 - Minting with Marlowe Tools 25 mins Preliminaries video
10 - Open Roles 27 mins Preliminaries video

Under the Hood

Marlowe Tools

Three alternative workflows are available for running Marlowe contracts:

  1. Marlowe CLI (marlowe-cli) for lightweight experiments with Marlowe transactions.
  2. Marlowe Runtime CLI (marlowe-runtime-cli) for non-web applications that use the Marlowe Runtime backend services.
  3. Marlowe Runtime Web (marlowe-web-server) for web applications that use Marlowe Runtime backend services.

Marlowe Runtime provides a variety of transaction-building, UTxO management, querying, and submission services for using Marlowe contracts: this makes it easy to run Marlowe contracts without attending to the details of the Cardano ledger and Plutus smart contracts. On the contrary, Marlowe CLI does not support querying and UTxO management, so it is best suited for experienced Cardano developers.

Tools for Running and Querying Marlowe Contracts

Marlowe Runtime

Marlowe Runtime consists of several backend services and work together with a web server. See the Marlowe documentation for more information on Marlowe Runtime.

The architecture of Marlowe Runtime

Additional Resources

  1. Marlowe Documentation
  2. Cardano's Extended UTxO Model
  3. Using Marlowe Safely
  4. Marlowe Playground
  5. MarloweScan
  6. Marlowe within the Cardano ecosystem

Licensing

You are free to copy, modify, and distribute Marlowe under the terms of the Apache 2.0 license. See the link: LICENSE for details.

About

This repository contains lessons for using Marlowe via REST and at the command line. It is meant to be used with demeter.run or with a Docker deployment of Marlowe Runtime.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 85.2%
  • JavaScript 5.3%
  • Shell 4.1%
  • HTML 2.9%
  • Nix 2.3%
  • CSS 0.2%