Docs
How a locked evolution is stored, enforced, and read.
OverviewWhat is EVOLVE?
EVOLVE is a Solana launchpad. A creator commits a sequence of stages before launch. Each stage names a trigger and the transfer rules that are active then. A Token-2022 mint points at one shared transfer-hook program. The hook reads that mint's EvolutionConfig and current stage.
Open topic →OverviewWhy evolving tokens?
A normal mint is static. An EVOLVE mint keeps the same hook address and changes which rule parameters that hook enforces. The change is the committed stage, not a hidden admin setter.
Open topic →OverviewHow it works
Design the stages, hash them, create a Token-2022 mint with the EVOLVE hook, initialize the config accounts, and lock. On-chain triggers can be advanced by anyone who pays the transaction. Market cap and holder count advance only with an authorized oracle signature, a fresh timestamp, and a nonce.
Open topic →DevelopersQuickstart
Install dependencies with pnpm install, copy .env.example to apps/web/.env.local only if that file does not exist, and run pnpm dev. The default DATA_MODE is demo. Live mode requires PostgreSQL migrations, a fresh devnet indexer, matching protocol configuration and deployed lifecycle verification. Mainnet launches remain disabled.
Open topic →LaunchCreate a token
Permanent mode creates the mint in the creator's transaction. Graduating mode asks Meteora DBC to create a Token-2022 pool whose hook is EVOLVE's program. Both paths require the creator's wallet signature.
Open topic →EvolutionStages
A token has one to six stages. Stage 0 triggers at launch. Later stages move forward by one. Regression is rejected. Default names in the configurator are Birth, Growth, Evolved, and Final.
Open topic →EvolutionTriggers
Elapsed time, hook-observed trade count, and cumulative base-token volume use verified accounts or Clock. Observed-holder milestones require fresh signed observations from the configured oracle and conservative recent snapshots. Wallet count is not unique-human count. USD market-cap milestones are disabled until a verified price feed and market observations are available.
Open topic →CommunityEvolution Passports
Passports preserve participation across stages and graduation. Complete finalized history aggregates token accounts by wallet and records qualifying holdings at actual milestone slots. Selling or transferring out consumes retained eligibility; a return transfer does not restore it. The on-chain proof is bound to mint, wallet and oracle epoch. Eligibility describes that finalized checkpoint, not instant holdings or a unique person.
Open topic →CommunityBenefits and Graduation Vaults
A creator commits benefit terms, a finite budget, per-wallet cap, minimum retention, expiry and optional cliff before locking. Utility receipts require creator delivery. Sponsored token benefits are pre-funded with a separately supported immutable classic SPL asset. Graduation benefits verify the actual DBC completion and canonical migrated DAMM pool before unlocking. No reward instruction releases pool liquidity, changes transfer rules, mints more launch tokens or promises yield.
Open topic →CommunityCommitted branches
The visual tree commits up to six milestones and all prerequisite conditions before launch. Holder ballots select between committed sibling choices with a quorum, voting window and delay of at least 24 hours. One eligible wallet has one vote; this does not establish unique-human identity. Ties fail closed. Ballots cannot change locked transfer rules. Creator governance is a separate opt-in mechanism.
Open topic →ProtocolTransfer hook
Execute is the SPL transfer-hook instruction. The program requires the transferring flag on both token accounts, derives its own PDAs, and rejects transfers until the config is locked. Extra accounts include the evolution config, state, address lists and a per-wallet buy guard. A trader account must be prepared before its first buy.
Open topic →SecurityAuthorities
Protocol parameter changes are queued for 24 hours. The oracle signer can attest metrics and cannot move user funds through EVOLVE instructions. Program upgrade authority is a separate Solana BPF loader authority and is not removed by this repository.
Open topic →TradingGraduation
On a Meteora DBC transfer-hook pool, completion revokes the hook program id and the hook authority so the base mint can migrate to DAMM v2. DAMM v2 does not keep the hook. Rules stop being enforced at that point. Permanent mode does not use that migration.
Open topic →EconomicsFees
The default market fee parameter is 100 bps. Meteora DBC currently rejects a base fee below 25 bps, so the program's allowed range is 25 to 1000 bps. Fee changes wait 24 hours. The displayed fee is the configured parameter. A pool that was never created has not collected it.
Open topic →