Home / Wiki / P / Plutus (Cardano)

Plutus (Cardano)

Cryptocurrency and Digital AssetsUpdated 13 Nov 2026

Plutus is the smart contract platform of Cardano. It includes Plutus Core, the low-level language that Cardano nodes actually execute, and a set of developer tools, historically centred on Plutus Tx, that let programmers write contract logic in Haskell and compile it to Plutus Core. Plutus scripts decide whether a transaction may spend funds or mint tokens, enabling decentralised exchanges, lending protocols, NFT projects and other applications on Cardano.

Plutus was developed by IOHK, now known as Input Output, and went live on Cardano's main network with the Alonzo hard fork in September 2021. It reflects Cardano's emphasis on functional programming and formal methods, and it works with Cardano's extended version of the UTXO model rather than the account model used by Ethereum. That design choice shapes how contracts are written and is the main thing that sets Plutus apart from platforms built on Solidity.

01

Plutus in plain terms

On many blockchains, a smart contract is like a vending machine with its own internal till: users send money in, and the machine updates its balance and decides what to pay out. On Cardano, a Plutus script works more like a lock on a box. Money sits in boxes on the ledger, and each box can be fitted with a lock that states the conditions for opening it, such as "only if the right person signs and the price is at least this much".

When someone wants to open the box, they build a transaction showing what they want to do, and the lock checks it. If the conditions are met, the box opens and its contents move; if not, the transaction is rejected. Because the outcome can be checked before submission, a wallet can usually spot a transaction that would fail before it is ever sent.

02

How Plutus works

  • Validators. A Plutus script is a function that returns success or failure. It guards outputs locked at a script address, or controls the minting of tokens.
  • Datum. Each locked output can carry a piece of data, called a datum, that holds the contract's state, such as an order's price or a loan's terms.
  • Redeemer. The spender supplies a redeemer, an input that tells the script which action is being taken.
  • Script context. The script can inspect the whole transaction, including its inputs, outputs, signatures and validity period, before deciding.

Because transactions in this model are deterministic, users can calculate in advance whether a transaction will succeed and what it will cost. Off-chain code, often run in a wallet or web application, builds the transactions that the on-chain scripts then validate.

03

Versions and tooling

Plutus has been upgraded through Cardano hard forks. The second version, introduced with the Vasil upgrade in 2022, added features such as reference inputs and reference scripts that let transactions read data and reuse scripts without spending them, reducing costs and easing congestion. A third version followed with the Chang upgrade in 2024, adding new built-in cryptographic functions and supporting Cardano's on-chain governance. Alongside the Haskell-based tools, developers now commonly use other languages that compile to Plutus Core, such as Aiken, which many find simpler to learn. For financial agreements, Cardano also offers Marlowe, a specialised language for contracts written by non-programmers, and for scaling it has Hydra, which can run Plutus scripts off the main chain.

04

Uses

Plutus scripts power Cardano's decentralised exchanges, lending markets, stablecoin protocols, NFT marketplaces and minting policies, as well as tools for staking and governance. Because the extended UTXO model lets a single transaction touch many outputs at once, Plutus applications can batch actions efficiently, although this requires careful design.

05

Criticism and challenges

When Plutus launched, developers found that the extended UTXO model made it hard for many users to interact with the same contract at once, since each locked output can be spent only once per block. Early decentralised exchanges had to build batching and order-matching systems to work around this, and some launches suffered delays. Critics also pointed to Haskell's steep learning curve, a smaller pool of experienced developers than for Solidity, and limited early tooling, all of which slowed the growth of Cardano's application ecosystem compared with rivals. Supporters argue that the model's predictability and the use of functional programming reduce certain classes of bugs, and that newer languages and upgrades have addressed many early complaints. Plutus remains central to Cardano's smart contract ecosystem as of November 2026.

Last updated 13 Nov 2026