Blockchain & Cryptocurrency Glossary

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • search-icon Clear Definitions
  • search-icon Practical
  • search-icon Technical
  • search-icon Related Terms

Plutus

1 min read
Pronunciation
[ploo-tuhs]
Analogy
Imagine different blockchains are like different countries, each with its own official language for writing laws (smart contracts). Plutus is the highly structured, mathematically precise official language of Cardano. It's like a language designed by logicians to ensure laws are unambiguous and behave exactly as intended.
Definition
The native smart contract language and platform for the Cardano blockchain. Plutus is based on Haskell, a functional programming language, and is designed to enable the development of secure and formally verifiable smart contracts.
Key Points Intro
Plutus is Cardano's Haskell-based smart contract language, emphasizing security and formal verification.
Key Points

The smart contract development platform for the Cardano blockchain.

Plutus Core is the low-level compiled language that runs on the Cardano chain.

Plutus Tx is the Haskell-based language that developers write in, which compiles to Plutus Core.

Emphasizes functional programming principles and aims for high assurance through formal methods.

Utilizes an Extended UTXO (EUTXO) model for smart contracts.

Example
Developers use Plutus to build decentralized applications (dApps) on Cardano, such as decentralized exchanges, NFT marketplaces, or lending protocols. The code is written in a Haskell-like syntax and then compiled to run on the Cardano network.
Technical Deep Dive
Plutus contracts run off-chain (in the Plutus Application Backend - PAB, or similar environments) and on-chain (Plutus Core scripts). The on-chain part primarily consists of validator scripts that determine if a transaction attempting to spend a UTXO is valid. The EUTXO model means that validator scripts are associated with outputs, and they decide if those outputs can be spent by a given transaction. This differs from Ethereum's account-based model. Plutus's functional nature and strong typing aim to reduce bugs and enable easier reasoning about contract behavior.
Caveat
Developing in Plutus requires familiarity with functional programming concepts and Haskell, which can have a steeper learning curve for developers accustomed to imperative languages like Solidity. The EUTXO model also presents a different paradigm for dApp development compared to account-based models.

Plutus - Related Articles

No related articles for this term.