# Fork-Based Upgrades

## The Problem

Traditional rollups can force upgrades on users:

* 15 signatures change the protocol for everyone
* Users must accept or exit within a time window
* Exit costs can reach hundreds of millions in gas fees
* Many can't exit (locked DeFi positions, L2-native assets)

## The Solution: Opt-In Changes

Facet makes all upgrades voluntary. No one can change the rules without your consent.

**How it works:**

1. Deploy new node software with updated rules
2. Deploy a new instance of the `Rollup.sol` contract with different parameters (see below)
3. That's it—you have a new version of Facet

Users, applications, and bridges choose which version to use. Old versions keeps running forever.

## The Trade-Off

Without central coordination, you risk:

* **More versions** - Different groups might use different forks
* **Fragmentation risk** - Liquidity and users spread across versions
* **No unified roadmap** - Evolution through competition, not committee

This is the price of true decentralization. When admins have the most power, at least everyone uses the same version.

## Summary

Traditional rollups: "Upgrade or leave" Facet: "Stay or upgrade—your choice"

No forced changes. No exit deadlines. No permission needed.

This is how Bitcoin works. This is how Ethereum works. And this is how truly unstoppable systems must work—through individual choice, not collective force.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.facet.org/introduction/fork-based-upgrades.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
