- active endpoint
An endpoint that is active on a contract application instance. Indicates that the contract application instance is waiting for input. The set of active endpoints is part of the state of the contract application instance and changes over time.
The address of an UTXO says where the output is “going”. The address stipulates the conditions for unlocking the output. This can be a public key hash, or (in the Extended UTXO model) a script hash.
The blockchain system upon which the Plutus Platform is built.
- contract application
An application written against the contract application API, which runs in the PAB.
- contract application API
The API that provides an interface between a contract application and the PAB. Also allows the contract to declare contract endpoints that will be forwarded on to PAB clients via the application interface.
- contract application instance
A configured, running instance of a contract application. Configuration and initialization may require additional parameters to be set by the user. Has its state and lifecycle managed by the PAB.
- contract endpoint
An interface point exposed by a contract application as part of its own API. These are forwarded on by the PAB to the wallet frontend or other clients.
- contract executable
A compiled executable of a contract application. These are what are actually distributed to users and run by the PAB.
A class of token whose minting is controlled by a particular monetary policy script. On the Cardano ledger there is a special currency called Ada which can never be minted and which is controlled separately.
The data field on script outputs in the Extended UTXO model.
An in-process (single thread) emulated blockchain for testing and analysing Plutus apps.
A potential request made by a contract application for user input. Every endpoint has a name and a type.
- Extended UTXO Model
The ledger model which the Plutus Platform relies on.
This is implemented in the Alonzo hard fork of the Cardano blockchain.
See What is a ledger?.
A transaction which mints tokens creates new tokens, providing that the corresponding minting policy script is satisfied. The amount minted can be negative, in which case the tokens will be destroyed instead of created.
- minting context
A data structure containing a summary of the transaction being validated, and the current minting policy which is being run.
- minting policy script
A script which must be satisfied in order for a transaction to mint tokens of the corresponding currency.
A Layer 2 scalability solution for Cardano. See Chakravarty et al. .
- distributed ledger
See What is a ledger?.
A domain-specific language for writing financial contract applications.
A generic term for a ledger which supports multiple different asset types natively.
- off-chain code
The part of a contract application’s code which runs off the chain, usually as a contract application.
- on-chain code
The part of a contract application’s code which runs on the chain (i.e. as scripts).
- PAB client API
The API that the PAB provides to allow PAB clients to interact with contract application instances. Contract endpoints which are exposed by running instances can be called via the client API.
- PAB client
A program which interacts with a contract application instance via the PAB’s client API. Examples of PAB clients include:
Wallet frontends such as Daedalus.
Other user software which uses the contract application as part of a wider system.
- Plutus Application
An application written using the Plutus Application Framework.
- Plutus Application Backend (PAB)
The component which manages Plutus Applications that run on users’ machines. It handles:
Interactions with the node
Interactions with the wallet backend
Interactions with the wallet frontend
Tracking historical chain information
- Plutus Core
The programming language in which scripts on the Cardano blockchain are written. Plutus Core is a small functional programming language — a formal specification is available with further details. Plutus Core is not read or written by humans, it is a compilation target for other languages.
- Plutus IR
An intermediate language that compiles to Plutus Core. Plutus IR is not used by users, but rather as a compilation target on the way to Plutus Core. However, it is significantly more human-readable than Plutus Core, so should be preferred in cases where humans may want to inspect the program.
- Plutus Platform
The combined software support for writing contract applications, including:
Plutus Foundation, and
The Plutus Application Framework
- Plutus SDK
The libraries and development tooling for writing contract applications in Haskell.
- Plutus Tx
The libraries and compiler for compiling Haskell into Plutus Core to form the on-chain part of a contract application.
The argument to the validator script which is provided by the transaction which spends a script output.
The result of the local node switching to the consensus chain. See What is a rollback?
The set of all endpoints of a contract application.
A generic term for an executable program used in the ledger. In the Cardano blockchain, these are written in Plutus Core.
- script output
A UTXO locked by a script.
A generic term for a native tradeable asset in the ledger.
- transaction output
Outputs produced by transactions. They are consumed when they are spent by another transaction. Typically, some kind of evidence is required to be able to spend a UTXO, such as a signature from a public key, or (in the Extended UTXO Model) satisfying a script.
An unspent transaction output
- utxo congestion
- validator script
The script attached to a script output in the Extended UTXO model. Must be run and return positively in order for the output to be spent. Determines the address of the output.
- validation context
A data structure containing a summary of the transaction being validated, and the current input whose validator is being run.