On Cardano's EUTXO model, smart contract logic lives in validators. A validator is a pure function that receives the datum stored with the output, the redeemer supplied by the spending transaction and the full transaction context, and answers true or false. If any validator in a transaction says no, the whole transaction is rejected and only the collateral is charged.
The same mechanism covers more than spending. A validator can guard minting and burning under a policy ID, stake certificates, reward withdrawals and, since Plutus V3, governance votes and proposals. Which purpose applies is part of the context the script sees.
Developers write validators in Plinth or Aiken, which compile to Plutus Core for execution. The hash of the compiled script becomes the script address or policy ID, so funds sent there can only move when the validator agrees. Simpler conditions such as multi-signature or time locks can also be expressed as native scripts, which need no Plutus at all.
Explore next
- Smart ContractSelf-executing code stored on a blockchain that automatically enforces and executes agreement terms when predefined conditions are met.View term
- PlutusCardano's smart contract platform. The name covers the Plutus Core language that runs on-chain and the tooling that compiles higher-level languages down to it.View term
- Plutus CoreCardano's on-chain smart-contract runtime. Higher-level languages (Plinth, Aiken) compile down to Plutus Core for execution.View term
- DatumA piece of data attached to a UTxO that a smart contract can read when deciding whether the UTxO can be spent.View term
- RedeemerData supplied by the spending transaction that tells a smart contract what action is being attempted.View term
- eUTXOCardano's extension of the UTXO accounting model; each output can carry datum and script logic, so smart contracts express rules without the shared mutable state used by account-based chains.View term
- Policy IDThe unique on-chain identifier of a native token's minting policy.View term
- CollateralAn ada amount a wallet locks aside when submitting a Plutus transaction, forfeited only if the script's on-chain validation fails.View term