# M02-L04 — Lab contract

**Build:** Simulate UTXO selection/change and account debit/credit.

**Pass:** Inputs cannot be reused; total input equals outputs plus fee.

**Failure injection:** A UTXO can be double-spent if validation ignores spent inputs.

**Review question:** Which model makes contract state easier to express?

Status: specification; only count as executable when source and tests are present and verified.
