Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/intersectmbo/plutus
The Plutus language implementation and tools
https://github.com/intersectmbo/plutus
blockchain programming-language smart-contracts
Last synced: 3 days ago
JSON representation
The Plutus language implementation and tools
- Host: GitHub
- URL: https://github.com/intersectmbo/plutus
- Owner: IntersectMBO
- License: apache-2.0
- Created: 2016-11-15T22:38:43.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T09:28:05.000Z (about 2 months ago)
- Last Synced: 2024-10-29T09:36:25.562Z (about 2 months ago)
- Topics: blockchain, programming-language, smart-contracts
- Language: Haskell
- Homepage:
- Size: 237 MB
- Stars: 1,572
- Watchers: 116
- Forks: 479
- Open Issues: 218
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.adoc
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
= https://github.com/IntersectMBO/plutus[Plutus Core]
:email: [email protected]
:author: Input Output HK Limited
:toc: left
:reproducible:== Introduction
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 <>.
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 <>.
== Development
[[how-to-develop]]
=== How to develop and contribute to the projectRun `nix develop` to enter the development shell and you will be presented with a list of available commands.
**Please see link:CONTRIBUTING{outfilesuffix}[CONTRIBUTING] for comprehensive documentation on how to contribute to the project, including development and submitting changes*
=== How to submit an issue
Issues can be filed in the https://github.com/IntersectMBO/plutus/issues[GitHub Issue tracker].
=== How to depend on the project from another Haskell project
The `plutus` libraries are published via https://input-output-hk.github.io/cardano-haskell-packages/[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.== Documentation
=== User documentation
The main documentation is located https://plutus.cardano.intersectmbo.org/docs/[here].
The haddock documentation is located https://plutus.cardano.intersectmbo.org/haddock/latest[here].
The documentation for the metatheory can be found https://plutus.cardano.intersectmbo.org/metatheory/latest[here].
=== Talks
- https://www.youtube.com/watch?v=MpWeg6Fg0t8[Functional Smart Contracts on Cardano (2020)]: an overview of the ideas behind the Plutus Platform.
- https://www.youtube.com/watch?v=usMPt8KpBeI[The Plutus Platform (2020)]: an overview of the Platform as a whole (including the Application Framework) at the time.=== Specifications and design
- https://plutus.cardano.intersectmbo.org/resources/plutus-report.pdf[Plutus Technical Report (draft)]: a technical report and design document for the project.
- https://plutus.cardano.intersectmbo.org/resources/plutus-core-spec.pdf[Plutus Core Specification]: the formal specification of the core language.
- https://plutus.cardano.intersectmbo.org/resources/extended-utxo-spec.pdf[Extended UTXO Model]: a design document for the core changes to the Cardano ledger.=== Academic papers
- https://plutus.cardano.intersectmbo.org/resources/unraveling-recursion-paper.pdf[Unraveling Recursion]: a description of some of the compilation strategies used in Plutus IR (https://doi.org/10.1007/978-3-030-33636-3_15[published version]).
- https://plutus.cardano.intersectmbo.org/resources/system-f-in-agda-paper.pdf[System F in Agda]: a formal model of System F in Agda (https://doi.org/10.1007/978-3-030-33636-3_10[published version]).
- https://plutus.cardano.intersectmbo.org/resources/eutxo-paper.pdf[The Extended UTXO Model]: a full presentation of the EUTXO ledger extension (https://doi.org/10.1007/978-3-030-54455-3_37[published version]).
- https://plutus.cardano.intersectmbo.org/resources/utxoma-paper.pdf[UTXOma: UTXO with Multi-Asset Support]: a full presentation of the multi-asset ledger extension (https://doi.org/10.1007/978-3-030-61467-6_8[published version]).
- https://plutus.cardano.intersectmbo.org/resources/eutxoma-paper.pdf[Native Custom Tokens in the Extended UTXO Model]: a discussion of the interaction of the multi-asset support with EUTXO (https://doi.org/10.1007/978-3-030-61467-6_7[published version]).
- https://arxiv.org/abs/2201.04919[Translation Certification for Smart Contracts]: a certifier of Plutus IR compiler passes written in Coq.== Licensing
You are free to copy, modify, and distribute this software under the terms of the Apache 2.0 license.
See the link:./LICENSE[LICENSE] and link:./NOTICE[NOTICE] files for details.