Hood lifecycle and recovery
Every canonical Hood market is registered by CandleCurveFactory in CandleCurveRegistry. A curve has four lifecycle states.
| Value | State | Curve buy | Curve sell | Other action |
|---|---|---|---|---|
| 0 | Trading | Available | Available | Continue trading toward graduation |
| 1 | Graduated | Closed | Closed | Migration can be executed |
| 2 | Migrated | Closed | Closed | Trade on the selected Uniswap venue |
| 3 | Recovery | Closed | Closed | Burn curve tokens to claim quote reserve |
Trading
Section titled “Trading”The curve accepts buys and sells until its net quote reserve reaches the migration threshold. An Open curve is permissionless. An Exclusive curve checks the configured Believer NFT.
Graduated
Section titled “Graduated”Graduation closes both curve buys and curve sells immediately. The error used by the contracts for an attempted trade is named PoolMigrated, even when the market is only Graduated. Integrations should use the lifecycle value and error selector rather than interpreting the error name literally.
This is a temporary no-trade state. The graduation keeper monitors canonical curves and attempts migration.
Migrated
Section titled “Migrated”After migration, trading moves to the selected venue:
- v3: the canonical Uniswap v3 pool, with fee tier 3000 and tick spacing 60.
- v4: the complete PoolKey containing currencies, fee, tick spacing, and the Candle launch hook.
The v3 pool is normally pre-created at launch. The v4 pool is initialized atomically during migration and does not exist before that transaction.
Recovery
Section titled “Recovery”Recovery is the backstop if migration cannot complete.
- Recovery cannot be entered during the first 7 days after graduation.
- From day 7 until day 30, only the creator may enter Recovery.
- After 30 days, anyone may enter Recovery.
- Recovery claims remain available indefinitely.
- A claimant burns curve tokens and receives a pro-rata share of the recoverable quote reserve.
- After all recovery inventory has been resolved, remaining dust may be swept according to the contract rules.
Recovery is not a swap. Terminals should display a distinct claim action and must not present a synthetic sell quote.
Integration rule
Section titled “Integration rule”Read lifecycle() before constructing a trade and again when handling a failed simulation. Do not infer state solely from whether a Uniswap pool address exists: a v3 pool can exist before graduation, while a v4 pool does not.