This section aims to provide a simple way for users to find links to information and essential resources related to Plutus. This includes Plutus repositories, talks, documentation, community resources, training materials, example projects, and references to the Plutus Pioneer Program.
Plutus developer resources
Plutus Core is the scripting language embedded in the Cardano ledger. It forms the basis of the Plutus Platform – an application development platform for developing decentralized applications (DApps) on the Cardano blockchain.
- Plutus Core GitHub repository: includes the implementation, specification, and mechanized metatheory of Plutus Core as well as Plutus Tx – the compiler from Haskell to Plutus Core.
Plutus Tools is a collection of off-chain infrastructure resources built for external developers. The Plutus Tools SDK repository supports the necessary underlying resources for writing applications using Plutus in Haskell.
Plutus Tools also provide libraries for working with the Plutus Application Framework (PAF) – the off-chain part of the Plutus Platform that enables DApp development and interaction with smart contracts.
- Plutus Tools GitHub repository: includes libraries that implement the PAF, a selection of end-to-end use cases written with the PAF, and details about Plutus Playground.
Official Haskell language server implementation
Haskell language server implementation is an implementation of a server for the Language Server Protocol (LSP). A language server talks to a client, who can ask the server to perform various operations, such as reporting errors or providing code completions.
Plutus Core, Cardano’s scripting language, is written in Haskell. To use Plutus, it is essential to know the basics of Haskell. To help with the onboarding journey, IOG's education team created the Haskell course for beginners. You can find the repository with explainers, links to lectures, and more below.
Cardano node API documentation
- Cardano node API documentation: the Haddock-generated documentation for the Cardano node API.
Plutus user documentation
This section includes references to Plutus user documentation such as explanations, tutorials, how-to guides, etc.
Plutus Core and Plutus Tx User Guide: introduces the Plutus Core programming language and programming with Plutus Tx. Documentation includes explanations, tutorials, how-to instructions, troubleshooting, and reference information:
Plutus Tools SDK user guide: this user guide is intended for developers who are authoring DApps by using smart contracts on the Cardano blockchain:
Video presentation on the Plutus Platform: in this session from the 2020 Cardano Summit, Michael Peyton-Jones walks us through working with Plutus, while 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.
Plutus Pioneer Program
- Plutus Pioneer Program: includes lectures, examples, and exercises
- Plutus Pioneer Program notes and documentation
- Latest 'plutus-pioneer-program' questions on Cardano Stack Exchange
- Plutus Pioneer Discord
Plutus Pioneer community notes:
- How to prepare for the Plutus Pioneer Program
- Essential Resources and Documentation for the Plutus Pioneer Program
- Plutus Pioneer Program Part 1: Understanding the eUTXO Model and Coding the first Smart Contract
- Plutus Pioneer Program - Part 2: How to “deploy” a Smart Contract in Cardano
- Plutus Pioneer Program - Part 3: How to Mint and Burn Tokens and NFTs in Cardano
- Plutus Pioneer Program - Part 4: State Machine with Plutus (1/2)
- Plutus Pioneer Program - Part 5: State Machine with Plutus (2/2)
Plutus community resources
This section provides links to Plutus community resources.
If you are a community member engaged with Plutus development, please raise a pull request to add more relevant links and information.
Discussions & support:
There are different tools that developers can use to evaluate and deploy smart contracts on Cardano:
An extended list of community-built developer tools on Cardano: includes NFT creation tools, smart contract platforms, software libraries, APIs, interfaces, SDKs, digital product platforms, data services, blockchain integration, automation tools, decentralized protocols, enterprise apps, stake pool tooling, and more.
Windows Subsystem for Linux
- Windows/WSL2 (2nd alternative) - Plutus Community Docs
- How to uninstall WSL2 on Windows 10
- How to install WSL2 (Windows Subsystem for Linux 2) on Windows 10 - Pureinfotech
- Running Plutus on WSL - Create Cardano (ADA) Contracts on Windows 10 - YouTube
- Plutus Smart Contract Development: Running Plutus on Windows with WSL - YouTube
- Alternative Haskell Infrastructure for Nixpkgs
- Plutus Community Docs - Nix environment setup for Linux (Ubuntu & Linux Arch)
- Nix Flakes, Part 1: An introduction and tutorial - Tweag
- Flakes - NixOS Wiki
- episode 0 - Why Nix? - YouTube
Video content for developers
- Plutus Office Hours with Lars - announced on Discord
- NerdOut - YouTube Playlist For Cardano Developers by Andrew Westberg
- Loxe Inc. - Cardano Builders Check-In
- Cardano - DApp360 Workforce LLC - School for Cardano Developers
Blog posts about Plutus on IOHK blog
Please note that the blog posts are presented starting with the most recent ones:
- Simple property-based tests for Plutus validators
- Plutus fee estimator: find out the cost of transacting on Cardano
- Slow and steady wins the race: network evolution for network growth
- Architecting DApps on the EUTXO ledger
- Plutus Application Backend (PAB): supporting DApp development on Cardano
- Concurrency and all that: Cardano smart contracts and the EUTXO model
- No-surprises transaction validation on Cardano
- No-surprises transaction validation on Cardano: part 2
- Strategic partners pave way for Plutus smart contracts
- Plutus: what you need to know
- Everything you need to know about our new Plutus Pioneer Program
- Introducing the new Plutus Playground