Extended UTxO (EUTxO) as the name suggests, extends the U nspent Tx ransaction O utput model to enable Smart Contracts on Cardano through:
- Transactions propagating and encapsulating state (arbitrary data) in addition to tokens
- A new address type derived from turing-complete scripts. These scripts are executed to validate that a UTxO can be spent by a transaction
This approach fits perfectly with the pure functional paradigm that Cardano is based on, however it also requires a shift in thinking compared to the RPC-like request/response smart contract implementations of other Blockchains with complex global state.
We will start with pure functions which are conceptually similar to mathematical functions. Given a known input, a pure function will always produce the same output with no side-effects when the function is executed. A basic example is the function
add(x, y) when given x=1 and y=1, the output will always be 2.
As mentioned in our guide on UTxO, transactions simply take inputs to produce new outputs in a deterministic model based on simple arithmetic (i.e. sum of all inputs must be equal to the sum of all outputs minus the fee, plus stake reward withdrawals, plus/minus minted tokens). However if we extend this to add a pure function in the form of a turing-complete script and allow the propagation of state and we can now represent much more complex forms of computation within the blockchain.
🚧 More content coming soon
Set up a Local Development Environment
Continue on to Smart Contracts Fundamentals: Local Development ➡️