# EUTxO

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 ➡️