Pre-launch. RC4 code-frozen for external audit (rc4-audit-candidate, aca5fcd). Report pending. Status, updated 2026-10-08
GENESpecimen 001

Documentation · Learn

Genes

The four genes, the states they move through, the conditions that express them, and what each one switches on.

A gene (a GENE term) is a state machine inside GeneHook that switches on one capability when the pool's own records show enough sustained activity. There are four, in a strict chain: GENESIS, METABOLISM, REGENERATION and IMMUNITY (Genome.sol:57-61). Their thresholds are Genome constants and their rules are fixed in the bytecode, so neither can be changed after deployment.

#States

Each gene is in one of four states: DORMANT, OBSERVING, EXPRESSIBLE or EXPRESSED (GeneHook.sol:65-70).

  • DORMANT: no qualifying evidence is being counted.
  • OBSERVING: at least one processed epoch met the gene's condition, and the gene is counting.
  • EXPRESSIBLE: a transient state. When the count completes, the hook emits a transition into EXPRESSIBLE and a second one into EXPRESSED in the same call (GeneHook.sol:937-947).
  • EXPRESSED: final. An expressed gene never returns to an earlier state.

Every change emits GeneTransition (GeneHook.sol:136). A gene's state is read from GeneLens.geneStatus or the raw storage slots (GeneLens.sol:46-56). OBSERVING means the gene is counting; it expresses when the count completes.

#The strict chain

A gene is evaluated in an epoch only if its predecessor is EXPRESSED, the predecessor was expressed in an earlier epoch, and the epoch is at least the gene's minimum epoch (GeneHook.sol:896-899). So at most one new gene can express per processed epoch, always in order.

#Conditions

Conditions are evaluated against each processed closed epoch's stored record (GeneHook.sol:879-894). All thresholds are on the parameters page.

Gene Qualifying epoch Counting rule
GENESIS none expressed at launch
METABOLISM revenue at or above its threshold (met_revenue) a run of consecutive qualifying epochs (met_observe); a miss resets it to DORMANT
REGENERATION revenue and active blocks at or above their thresholds (reg_revenue, reg_active_blocks) a consecutive run (reg_observe), and cumulative ETH committed to bid Mass at or above its threshold (reg_eth_committed) in the expressing epoch
IMMUNITY revenue and pathTicks at or above their thresholds (imm_revenue, imm_path_ticks) enough qualifying epochs within a sliding window (imm_required of imm_window)

"Revenue" here is the epoch record's metric: the LP-fee share of ETH paid in by buyers, not the fees collected (see fee anatomy). Each later gene also has a minimum epoch (parameters).

#Evidence

An expression is reconstructable from storage. When a gene expresses, the hook stores the first and last evidence epochs and an evidence hash: keccak256(abi.encode(g, first, last, records)) over the stored epoch records in that range (GeneHook.sol:937-944, :975-982). Anyone can recompute it from stored records with GeneLens.evidenceHashFor (GeneLens.sol:133-147). GENESIS's evidence hash commits to the genome hash and the launch block instead (GeneHook.sol:268-271). See verify evidence hashes.

#What each gene switches on

  • GENESIS marks the launch. It is expressed by launch() itself (GeneHook.sol:268-271).
  • METABOLISM enables metabolize(), which reverts GeneNotExpressed until then (GeneHook.sol:283). Audit scope note: an InvariantBroken revert when the price sits at or beyond the bid band (see Security). See Permanent Mass.
  • REGENERATION enables regenerate() and, from the next harvest on, routes a share of ETH fees to its reserve (GeneHook.sol:298, :707-718). Its buyback runs while the price is no more than about 1% above the all-time-low price (GeneHook.sol:574-577). Audit scope note: reachability of that window (see Security). See regeneration.
  • IMMUNITY enables a capped bid placement inside metabolize(), and only under a separate deployment test (GeneHook.sol:465-466, :802-805). Expression alone places nothing. See immunity.

No gene changes the fee, adds a function or alters a bound.

Sources (15)
  • src/Genome.sol:57-86
  • src/GeneHook.sol:65-70
  • src/GeneHook.sol:83-90
  • src/GeneHook.sol:136
  • src/GeneHook.sol:268-271
  • src/GeneHook.sol:281-309
  • src/GeneHook.sol:465-466
  • src/GeneHook.sol:574-577
  • src/GeneHook.sol:655-660
  • src/GeneHook.sol:707-718
  • src/GeneHook.sol:802-805
  • src/GeneHook.sol:879-947
  • src/GeneHook.sol:975-982
  • src/GeneLens.sol:46-56
  • src/GeneLens.sol:133-147

Paths are relative to the GENE repository at tag rc4-audit-candidate (aca5fcd).