# M03-L04 — Lab contract

**Build:** Create synthetic block tree and roll back orphaned event.

**Pass:** Orphaned deposit is removed; canonical replacement applied once.

**Failure injection:** Marking a one-block inclusion as irreversible credits deposits incorrectly.

**Review question:** Why is a confirmation threshold a policy rather than guarantee?

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