A curated list of amazingly awesome Plutus libraries, resources and shiny things.
Plutus is the new smart contract language for the Cardano blockchain.
This is intended to give the first waves of Plutus developers the best and most comprehensive information and tools for using plutus as fast as possible.
Q: Where can I find haskell libraries I can use with plutus. A: We recommend https://hoogle.haskell.org - which allows you to search for functions by type. Please keep in mind that Plutus on-chain code will only support a subset of haskell. You might also want to take a look at awesome-haskell
Q: How can I write/run plutus code today? A: (As of may 19, 2021) - currently plutus does not have a public test net, plutus can run in a simulated chain using the Plutus Application backend, or PAB, which is available in the plutus monorepo.
- Plutus Monorepo - the place to get started, depend on this repo to start a Plutus project
- The Plutus Playground - allows a Plutus script to be compiled and evaluated online
- Official Plutus Tutorial - a great starting place to get the foundations of Plutus
- Plutus GHC Plugin Errors - Troubleshooting guide - the official guide to troublshooting Plutus plugin & Plutus Core generation issues.
- How to Use Hoogle with the Plutus Monorepo - allows you to run Haskell's searchable documentation database, with the plutus library included
- The UTXO model explained with examples - since the Plutus smart contract platform uses an extended UTXO model, it is good to have a solid understanding of how this model works and how it is different from the Ethereum Account model.
- Introduction to the Cardano blockchain ledger and smart contracts - a general introduction to the mechanics of smart contracts in the Cardano ecosystem
- Plutus Pioneer Program Lectures - this is the first formal education program intended for the first wave of plutus developers
- Plutus Use Cases - the first toy applications developed in plutus as proof of concept for industrial projects. a great reference including example test suites
the plutus monorepo currently provides two libraries that can be used to write effective tests for your plutus contract:
- Wallet Emulator - can easily run tests in an emulated environment.
- PAB Simulator - can easily run tests or live interaction via http with a simulated local blockchain which supports Plutus
- The EUTXO Spec - specification for extensions on the UTXO model, as used in Cardano, defines many of the base data types used in Plutus
- The Plutus Platform Technical Report (DRAFT) - a general overview of Plutus as a language and smart contract platform.
- Plutus Core Formal Specification - the specification for the serializable core language built on system F which is used for the on-chain portion of Plutus.