Marlowe
A special purpose language designed to allow anyone to write and execute P2P financial contracts on any blockchain.
About Marlowe
Marlowe is:
- A domain specific language for finance
- Designed for people who are experts in the field of contracts or business, but do not have the programing skills and experience to code smart contracts
- A small language with a handful of different constructs that, for each contract, describe behaviour involving a finite set of roles
- A peer-to-peer language that users can use to create self executing smart contracts that do not rely on a centralized entity
- Embedded in both Javascript and Haskell, offering a choice of editors depending on the user’s skillset
- Blockchain agnostic and can be used with both eUTXO and account-based blockchains
- Designed as an industry scale solution and embodies example from the ACTUS taxonomy and standard for financial contracts
Marlowe can:
- Be built using a visual editor without ever viewing the underlying code
- Not wait indefinitely for an action to take place i.e. eventually the contract will timeout and take remedial action, such as refunding any funds
- Interact with oracles i.e. utilize off-chain data
Roles in the Marlowe contracts are represented by a token on-chain and this means that roles can be transferred or traded during contract execution
Marlowe Run
Marlowe Run is a client application for Marlowe contracts running on Cardano. Marlowe Run runs in your browser as a distributed application and makes use of the Plutus Application Backend in its execution.
In Marlowe Run users will be able to run their own, self created contract (from in Marlowe Build) or pre-created contracts found on the Marlowe Marketplace.
There are smart contracts templates ready for use on the testnet. Currently available are contracts are called:
- Loan
- Purchase
- Contract for Differences (a bet on outcomes)
Marlowe Build
Marlowe Build is a sandbox environment where users can simulate, build, and develop Marlowe contracts step-by-step, using a visual builder without writing or seeing a single line of code.
This playground allows the user to formally verify and test a smart contract for warnings and errors without running the contract at all.
There are 3 options for writing smart contracts in Marlowe Build:
- Write directly in Marlowe text
- Use the visual Blockly programing tool to create contract
- Use the embedded Haskell or Javascript editor to describe contracts
Marlowe Market
The Marlowe market is yet to be released but once Marlowe is released to the mainnet the Market will function as a smart contract template library, allowing users to come and pick an already built and tested smart contract that fulfills their needs.