Get started with Plutus
Plutus is the smart contract platform of the Cardano blockchain. It allows you to write applications that interact with the Cardano blockchain.
Take a look at the Plutus Tutorial if you want to learn Plutus from the beginning or see Plutus resources, where you can find references to all Plutus-related repositories, documentation, and training materials. If you don't know Haskell yet, consider starting with Haskell.
Follow Chris Moreton's content updates. With a high effort he transcribes the lectures of the Plutus Pioneer Program.
The Plutus platform
In this Video Michael Peyton-Jones starts by walking us through working with Plutus. Plutus allows all programming to be done from a single Haskell library. This lets users build secure applications, forge new assets, and create smart contracts in a predictable, deterministic environment with the highest level of assurance. Furthemore, developers don’t have to run a full Cardano node to test their work.
Jann Müller then takes us through the Plutus Application Platform, where assets can be built and launched. He also demonstrates how tokens can be transferred using a smart contract. With Plutus you can:
- Forge new tokens in a lightweight environment
- Build smart contracts
- Support basic multi-sig scripts
The Plutus Playground is a code editor and simulator in one.
There is a written tutorial on how to compile and test a Plutus App or you can watch this video tutorial:
- Writing a basic Plutus app in the Plutus Playground
- Using Plutus Tx
- Writing basic validator scripts
- Writing basic minting policies
- Property-based testing of Plutus contracts
- How to export scripts, datums and redeemers
- How to write a scalable Plutus app
- How to handle blockchain events
- How to analyse the cost and size of Plutus scripts
Get started with Haskell
Haskell is the programming language for Plutus contracts. If you are looking for the best guide to Haskell and unsure where to start, we recommend you check out the book or website Learn You a Haskell for Great Good by Miran Lipovača.
Learning Haskell is made easy with this illustrated guide, one of the most engaging ways to learn this fascinating programming language.
Another great learning resource is the online course Haskell and Crypto Mongolia 2020 lectured by Andres Löh, co-founder of the Well-Typed consultancy and Dr. Lars Brünjes, Education Director at IOHK. The course is the suggested starting point for Plutus Pioneers at the beginning of the Plutus Pioneer Program. It's a 10-week, 40 hours/week deep dive into Haskell and Cryptocurrencies.
If you are coming from a Python background, there is an informative project py2hs that explains essential Haskell concepts using Python.
Get started with the Plutus pioneer program
The Plutus pioneer program was created in order to recruit and train developers in Plutus for the Cardano ecosystem. By entering the program, you will become part of a group with early access to a set of courses that teach you the core principles of how to code in both Haskell and Plutus. It will be highly interactive, with weekly videos, exercises, and Q&A sessions and exclusive access to the creators and key experts in the language.
This course is not for coding beginners. You do not need to be an expert in formal methods, but programming experience and a general aptitude for logical and mathematical thinking are highly advisable. We recommend to get started with Haskell before taking the course.
Prior knowledge of Haskell or functional programming is also recommended, as Plutus is heavily based on Haskell and includes advanced features like Template Haskell, type-level programming, and effect systems.
You can also check out the book "Plutus - Learning a smart-contract language" that follows the 3rd iteration of the Plutus pioneer programm and contains all code examples from the course. The book is availabe at this repository: https://github.com/LukaKurnjek/plutus-pioneer-program.