Plutus Core is the scripting language embedded in the Cardano ledger and forms the basis of the Plutus Platform, an application development platform for developing distributed applications using the Cardano blockchain.
For more information about the projects, see the User documentation.
This repository contains:
-
The implementation, specification, and mechanized metatheory of Plutus Core
-
Plutus Tx, the compiler from Haskell to Plutus Core.
For people who want to use the project, please consult the User documentation.
Run nix develop
to enter the development shell and you will be presented with a list of available commands.
*Please see CONTRIBUTING for comprehensive documentation on how to contribute to the project, including development and submitting changes
Issues can be filed in the GitHub Issue tracker.
The plutus
libraries are published via CHaP.
See the information there for how to use CHaP.
After setting it up you should just be able to depend on the plutus
packages as normal and cabal will find them.
The main documentation is located here.
The haddock documentation is located here.
The documentation for the metatheory can be found here.
-
Functional Smart Contracts on Cardano (2020): an overview of the ideas behind the Plutus Platform.
-
The Plutus Platform (2020): an overview of the Platform as a whole (including the Application Framework) at the time.
-
Plutus Technical Report (draft): a technical report and design document for the project.
-
Plutus Core Specification: the formal specification of the core language.
-
Extended UTXO Model: a design document for the core changes to the Cardano ledger.
-
Unraveling Recursion: a description of some of the compilation strategies used in Plutus IR (published version).
-
System F in Agda: a formal model of System F in Agda (published version).
-
The Extended UTXO Model: a full presentation of the EUTXO ledger extension (published version).
-
UTXOma: UTXO with Multi-Asset Support: a full presentation of the multi-asset ledger extension (published version).
-
Native Custom Tokens in the Extended UTXO Model: a discussion of the interaction of the multi-asset support with EUTXO (published version).
-
Translation Certification for Smart Contracts: a certifier of Plutus IR compiler passes written in Coq.