Plutus Core and Plutus Tx User Guide Logo

Explore Plutus

  • Explanations
    • What is the Plutus Platform?
      • Applications
      • The Plutus Platform
      • Further reading
    • What is a ledger?
      • Account-based and UTXO-based ledgers
      • Scripts and the Extended UTXO Model
      • Different kinds of scripts
      • Further reading
    • What is Plutus Foundation?
      • Plutus Core
      • Plutus Tx
      • Further reading
    • What are Plutus language versions?
  • Simple example
    • Plutus script for an auction smart contract
      • Overview
    • The EUTXO model, datum, redeemer and script context
    • Auction properties
    • Plutus Tx code
      • Data types
      • Main validator function
    • Life cycle of the auction smart contract
      • Initial UTXO
      • The first bid
      • The second bid
      • Closing the auction
    • Libraries for writing Plutus Tx scripts
    • Alternatives to Plutus Tx
    • Off-chain code
    • Further reading
      • The EUTXO model
  • Tutorials
    • Using Plutus Tx
      • Template Haskell preliminaries
      • Writing basic Plutus Tx programs
      • Functions and datatypes
      • Typeclasses
      • The Plutus Tx Prelude
      • Lifting values
      • Plutus Tx Compiler Options
    • Writing basic validator scripts
      • Validator arguments
      • The Data type
      • Signaling failure
      • Validator functions
      • Plutus script context versions
    • Writing basic minting policies
      • Minting policy arguments
      • Plutus script context versions
      • Writing minting policies
      • Other policy examples
  • How-to guides
    • How to export scripts, datums and redeemers
    • How to profile the budget usage of Plutus scripts
      • Compiling a script for profiling
      • Acquiring an executable script
      • Running the script
      • Analysing the results
  • Troubleshooting
    • Plugin errors
      • Haddock
      • Non-INLINABLE functions
    • Haskell Language Server issues
      • Wrong version
    • Error codes

Architectural decision records

  • Architectural decision records
    • ADR 1: Record architectural decisions
      • Authors
      • Status
      • Context
      • Decision
      • Implications
        • ADR template
    • ADR 2: Steppable CEK machine
      • Authors
      • Status
      • Context
      • Decision
        • Abstracting out the computation to “steps”
        • Coroutines in Haskell
        • Argument: coroutine system
      • Implications
    • ADR 3: Sharing code between the production and debugging CEK machine
      • Authors
      • Status
      • Context
      • Decision: Polymorphic compute/return steps
        • Detailed description with code snippets
      • Implications
    • ADR 4: Deferred unlifting in Plutus Core
      • Authors
      • Status
      • Context
      • Decision
      • Argument
      • Alternatives
        • 1. Status quo
        • 2. Support both versions forever
      • Implications
      • Notes

Reference

  • Reference
    • Writing scripts
      • Plutus Tx Compiler Options
      • Optimization techniques for Plutus scripts
        • Identifying problem areas
        • Using strict let-bindings to avoid recomputation
        • Specializing higher-order functions
        • Common sub-expression elimination
        • Using error for faster failure
      • Examples
      • Common weaknesses
        • Double satisfaction
        • Hard limits
    • Plutus on Cardano
      • Plutus language changes
        • Language versions
        • Examples
        • Built-in functions and types
      • Upgrading to Vasil and Plutus script addresses
        • A Plutus V2 script will not have the same hash value as a Plutus V1 script
        • A Plutus V1 script will not necessarily have the same hash value when recompiled with a later version of the Plutus Compiler
        • When to export and save the output of a compiled script
      • Cost model parameters
    • Glossary
    • Bibliography
Plutus Core and Plutus Tx User Guide
  • »
  • Explanations
  • Edit on GitHub

Explanations

  • What is the Plutus Platform?
  • What is a ledger?
  • What is Plutus Foundation?
  • What are Plutus language versions?
Previous Next

© Copyright 2022, IOHK. Revision 848ec58d.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
latest
stable
Downloads
On Read the Docs
Project Home
Builds