/plutus

The Plutus language implementation and tools

Primary LanguageHaskellApache License 2.0Apache-2.0

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 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.

Development

How to develop and contribute to the project

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

How to submit an issue

Issues can be filed in the GitHub Issue tracker.

How to depend on the project from another Haskell project

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.

Documentation

User documentation

The main documentation is located here.

The haddock documentation is located here.

The documentation for the metatheory can be found here.

Talks

Specifications and design

Academic papers

Licensing

You are free to copy, modify, and distribute this software under the terms of the Apache 2.0 license.

See the LICENSE and NOTICE files for details.