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.
- 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 forging is controlled by a particular monetary policy script. On the Cardano ledger there is a special currency called Ada which can never be forged and which is controlled separately.
The data field on script outputs in the Extended UTXO model.
- Extended UTXO Model
The ledger model which the Plutus Platform relies on.
This is implemented in the Goguen release of the Cardano blockchain. Notable differences from traditional UTXO ledgers are:
UTXOs carry an additional data output, called the datum
- Validators get to see a representation of the transaction being
validated, called the context
The validator script is provided with:
The datum on the spent output
The redeemer provided by the input
The context representing the transaction being validated
A transaction which forges tokens creates new tokens, providing that the corresponding monetary policy script is satisfied. The amount forged can be negative, in which case the tokens will be destroyed instead of created.
- forging context
A data structure containing a summary of the transaction being validated, and the current forging policy which is being run.
- forging policy script
A script which must be satisfied in order for a transaction to forge tokens of the corresponding currency.
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 Backend (PAB)
The component which manages contract applications 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:
The Plutus Application Backend
The Plutus SDK
The support for Plutus scripts on the Cardano chain
- 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.
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.
An “unspent transaction output”. Transactions produce these, and 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.
- 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.