The foundation of Ergo's advanced smart contract capabilities
Extended UTXO combines Bitcoin's proven security model with powerful smart contract functionality, enabling parallel execution and eliminating entire classes of vulnerabilities.
Each UTXO is a 'box' containing value, data, and a guarding script that defines spending conditions.
Boxes are immutable — once created, they cannot be modified, only consumed and new ones created.
The UTXO model eliminates re-entrancy attacks by design — no mutable state to exploit.
Transactions touching different boxes can execute in parallel, improving scalability.
Smart contracts only need to verify their own inputs, not global blockchain state.
Complex DeFi protocols built from simple, reusable box patterns.
| Aspect | eUTXO Model | Account Model | Advantage |
|---|---|---|---|
| State Management | No global balances — only unspent outputs | Global state with account balances and storage | eUTXO |
| Security | No re-entrancy attacks, predictable costs | Vulnerable to re-entrancy, unpredictable gas | eUTXO |
| Parallelism | Independent boxes enable parallel processing | State contention forces sequential processing | eUTXO |
| Privacy | Natural transaction privacy through separate boxes | All balances publicly visible | eUTXO |
| Composability | Modular outputs compose into complex protocols | Monolithic contracts with complex interactions | Tie |
Each order is a separate box, enabling parallel matching and atomic swaps
Example: Spectrum Finance
Collateral locked in boxes with clear liquidation conditions
Example: DuckPools
Reserve boxes track collateral independently for each position
Example: SigmaUSD
Bid boxes compete without blocking each other
Example: Ergo Auction House
The eUTXO model simplifies smart contract development by treating everything as boxes with clear spending conditions. No complex state management, no re-entrancy concerns — just straightforward logic.
Box {
value: 1000000000, // nanoERGs
tokens: [...], // native tokens
registers: { // custom data
R4: "user_data",
R5: 42,
R6: [1, 2, 3]
},
script: "..." // guard script
}Continue your journey with eUTXO development