The Plutus Pioneer Program (PPP) is a course delivered by the IOG Education team to recruit and train software developers in Plutus, the native smart contract language for the Cardano ecosystem.
This repository contains the lectures, code examples, homework, and installation guides for the new 4th cohort of this program. Smart contracts are written in the Haskell-based Plinth language. The aiken-fourth-iteration branch contains the same smart contracts translated into Aiken.
This documentation looks better in GitBook at the following link: https://iog-academy.gitbook.io/plutus-pioneers-program-fourth-cohort/
- Welcome and Introduction
- Setting up Our Development Environment
- Kuber Marketplace Demo
- Hashing & Digital Signatures
- The EUTxO-Model
- Homework
- Low-Level, Untyped Validation Scripts
- Using the Cardano CLI to Interact with Plutus
- High-Level, Typed Validation Scripts
- Summary
- Homework
- Script Contexts
- Handling Time
- A Vesting Example
- Parameterized Contracts
- Offchain Code with Lucid
- Reference Scripts
- Homework
- Summary
- On-chain VS Off-chain
- Off-chain Code with Cardano CLI and GUI
- Off-chain Code with Kuber
- Off-chain Code with Lucid
- Homework
- The State Monad in practice
- Introduction to the Plutus Simple Model library
- Unit Testing a Smart Contract
- Property Testing a Smart Contract
- Testing Smart Contracts with Lucid
- Double Spending and Homework
- Introduction
- Marlowe Playground Demo
- Homework
- Marlowe Starter Kit: Docker
- Marlowe Starter Kit: Preliminaries
- Marlowe Starter Kit: ZCB using the Marlowe Runtime command-line client
- Marlowe Starter Kit: ZCB using the Marlowe Runtime REST API
- Marlowe Starter Kit: ZCB using the Marlowe Runtime CLI
- Marlowe Starter Kit: Escrow using the Marlowe Runtime's REST API
- Marlowe Starter Kit: Swap contract using the Marlowe Runtime's REST API
- Creating our own Stablecoin Dapp
- Using our Stablecoin UI
- Stablecoin's Oracle
- Deploying Stablecoin's Reference scripts
- Minting Stablecoins
- Burning Stablecoins and Liquidating positions
- Testing our Stablecoin's scripts
- Homework
- Introduction
- Developing a Dapp with MeshJS and PluTs (Typescript)
- Developing smart contracts with PluTs (Typescript)
- Developing smart contracts with OpShin and PyCardano (Python)
- Developing smart contracts with Plutarch (Haskell)
- Developing smart contracts with Aiken
The most relevant directories of this repository are structured as follows:
-
In the .devcontainer directory, you'll find a Docker contained created by the IOG Education Team to create a local development environment for the lectures of this course.
-
In the docs directory, you'll find the lecture notes as they appear in GitBook.
-
In the code directory, you'll find the code for each lecture.
This work is licensed under a Creative Commons Attribution 4.0 International License.