freecoding.school100% FREE · NO SIGNUP
Ledger LandISSUE #34 of 90

smart contracts · upgradeability patterns

BlockyVSDouble-Spend Dan
Blocky saysDeployed contracts are immutable — upgradeability requires deliberate patterns.

Once deployed, a contract's code can't change. To fix bugs or add features you must plan ahead: deploy a new contract and migrate, or use an upgrade pattern. Immutability is a feature (trust) and a constraint (no hotfixes). Teams weigh upgradeability (flexibility, but adds an admin who could abuse it) against pure immutability (trustless, but unfixable).

Power-ups you unlock

Double-Spend Dan attacks — common mistakes

Boss battleWeigh immutability vs upgradeability for a high-value DeFi vault.

Example code

<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre>immutable: trustless, but a bug is forever
upgradeable: fixable, but an admin key can change logic
→ pick per risk + governance</pre></body></html>
▶ Open the interactive comic issue
‹ Smart Contracts · Code As LawProxy Patterns · Transparent · Uups · Diamond ›