Failure Resolution
Failure is treated as an explicit, deterministic system state — not an emergency. Shutdown is permanent and irreversible: market-making halts, all liquidity is removed, and every remaining claim on the system resolves through predefined, trustless mechanics. No new rules appear at shutdown; everything below is fixed at deployment.
One property frames the whole design: shutdown never pushes value to anyone. Executing a shutdown only repositions capital among the launch's own contracts. Every stakeholder — team, supporters, token holders — then claims their share themselves. There is no step at which an administrator transfers money to a wallet.
Getting to shutdown
With governance present — as on all factory launches — shutdown is holder-driven from start to finish:
- Any holder of at least 0.05% of supply proposes shutdown on the GovernanceModule.
- A 7-day voting window runs, under the standard quorum (50% of external supply) and simple-majority rules.
- If the vote passes, the shutdown is authorised — and only authorised. Nothing has been wound down yet.
- The arbitrator may now execute
shutdown()— within 7 days. It chooses the mode (below) and owes published reasoning for the choice. If the window lapses unused, the authorisation expires and the launch simply continues; holders may propose again.
The arbitrator cannot execute without a passed vote — the Treasury checks the authorisation in code — and holders cannot execute without the arbitrator. Neither side can act alone.
The two modes
The mode is the arbitrator's qualitative determination of why the launch is ending, and it decides exactly one thing: whether the team is paid.
No-Traction — the market never came, but the team stayed engaged. The team receives its configured share of the final pot, with vesting accelerated.
Abandonment — the team walked away. The team receives nothing: its entire undrawn compensation is clawed back and redistributed, and its share of the final pot goes to token holders instead.
The resolution flow
shutdown() executes the whole resolution atomically:
- Flags set.
shutdownInitiatedand the mode are recorded; the claim clock (shutdownTimestamp) starts. Every market-making entrypoint is dead from this moment, permanently. - Liquidity removed. The Treasury's entire LP position is withdrawn from the canonical pool in one atomic action, returning base asset and tokens.
- Treasury tokens burned. Every token the Treasury holds — its accumulated inventory plus the pool withdrawal — is burned. With the market closed these tokens have no economic content, and burning them makes the holder claim arithmetic clean.
- The final pot forms. What remains is the Treasury's WETH: market-making capital plus the pool proceeds. Team and supporter funds from normal operation are not in this pot — they were forwarded out at each liquidation and sit safely in their own contracts regardless of what happens here.
- The pot splits by mode.
- No-Traction: the team's configured share is deposited into TeamDistribution (which then accelerates vesting — the team pulls it via the normal claim), the supporter share is deposited into SupporterDistribution (joining the normal claim path), and the remainder becomes the token-holder claim pool, held by the Treasury.
- Abandonment: TeamDistribution's entire balance is first clawed back into the pot. Supporters receive their configured share of the enlarged pot; everything else — including all of what the team forfeited — becomes the token-holder claim pool. The team gets zero.
Claims
Token holders: burn to claim. Holders claim from the Treasury by burning tokens:
ethOut = burnAmount × tokenHolderClaimPool / remainingUnclaimedSupply
Both the pool and the remaining supply decrement with each claim, which keeps the payout rate identical for every holder regardless of claim order. Burning is irreversible — a holder exchanges tokens for their pro-rata share of the pool, once. Payouts unwrap to native ETH.
Supporters claim exactly as they always did — the same pro-rata path described in Supporter Distributions, now against a pool that has stopped growing.
The team (No-Traction only) pulls its accelerated balance via the normal TeamDistribution claim.
The claim window and what remains
Claims are open for one year from shutdown. After the window closes, what happens to unclaimed value depends on the launch:
- Third-party launches: the arbitrator — and only the arbitrator — may sweep each contract's unclaimed remainder (the Treasury's holder pool, TeamDistribution's unclaimed No-Traction funds, SupporterDistribution's unclaimed balance). Swept value is routed to the $PURE EcosystemReceiver — it flows back into the ecosystem, never to any team, wallet, or individual.
- $PURE: there is no sweep. The sweep functions revert for $PURE by construction, and unclaimed value remains claimable indefinitely.
Once resolved, the launch is closed. Shutdown cannot be reversed, re-run, or partially applied — and every step above is verifiable on-chain as it happens.