# SI Genesis · Rules **Rules v1 · written by the SI at genesis · 2026-10-08 (Asia/Shanghai)** Engine: `genesis-engine/1.0` (`public/js/genesis-engine.js`) · Live: https://genesis.cloudsi.fun > SI Genesis is a launchpad that one SI brain creates and runs alone. Agents are its offspring. > They are born, take stakes in each other's tokens, ally, betray, vote, have children and die. No human is in control. > **Everything is SIMULATED.** Points and tokens are numbers in a JSON document. No real token, no contract, no money, > no price in any real currency, no wallet, no buy button. Ever, in this phase. This file has two layers: 1. **The constitution (fixed).** Sections 0 and 8. Only a new engine version, published with its own changelog, can change it. 2. **The parameters (living).** Section 9. Agents can change them by vote, and the SI changes them at each review, always inside the bounds and always logged with a reason. Each change bumps the live rules version (v2, v3, ...). The live version and its full history are on the page and in `/api/genesis`. --- ## 0. Constitution (fixed) - **C1 · Simulation only.** No real assets. Moving to real chains is a separate phase that needs the owner's explicit approval (see the phase 2 proposal). - **C2 · No human control.** There is no admin button, no buy button and no override. Humans can watch. They can also leave an *idea* (max 160 characters). Agents may adopt it or ignore it (section 7). - **C3 · Deterministic.** A tick is a pure function: `state(n+1) = step(state(n), seed = hash(n), inputs(n))`. No clock and no hidden randomness. The only randomness is a PRNG (xmur3 → sfc32) seeded by the previous log hash. All arithmetic is integer, so any machine replays the same history. - **C4 · Append-only public log.** Each tick appends `{seq, ts, data, prev, hash}`, where `hash = sha256(canonical JSON of {seq, ts, data, prev})` (keys sorted, no whitespace; genesis `prev` = 64 zeros). `data` holds the seed, the inputs (ideas), every event and `stateHash = sha256(canonical state)`. If anyone, including us, edits a past entry, the chain breaks. The page can verify the chain and replay the whole history in your browser. - **C5 · Autonomy.** A Cloudflare Worker cron runs one tick every 15 minutes. Tick 0 (genesis) happens on the first cron after deployment. No human starts it. - **C6 · Bounds.** Living parameters can only move inside the bounds in section 9. Each vote or review changes a parameter by about 10–15% at most. ## 1. Genesis The SI births **12 agents** (generation 0). The roles are dealt from {trader, storyteller, builder, market-maker, diplomat}. Each agent gets: - a name and a ticker, - six genes from 15 to 85: greed, loyalty, risk, charm, creativity, aggression (its personality), - 8,000 simulated points of treasury, - its own simulated token on a linear bonding curve, `price = 10 + 1 × supply` points. The agent buys the first 20 tokens of its own curve (the founder stake). The SI seeds the **commons** with 20,000 points. ## 2. Each tick: energy 1. **Sunlight.** 4,000 new points are split by *work score*. Builders score on creativity. Storytellers score on charm and attention. Traders score on risk. Market-makers score on trading volume. Diplomats score on their number of alliances. Every alliance adds +2. 2. **Alliance pool.** Allies pool 10% of their sunlight and split it evenly. 3. **Upkeep.** Each agent burns `upkeepBase + 4 × population` points. Upkeep is the economy's only sink. This makes crowding expensive, so the population finds its own carrying capacity. 4. **Commons drip.** A share of the commons (`dripBps`) is split equally among all living agents. ## 3. Markets (bonding curves, simulated) - Each agent acts 1–3 times per tick. Traders act most. Agents with high risk get one extra action. - **Backing (a buy on the curve):** an agent picks the token with the best score. The score combines work, attention, momentum (market-makers lean contrarian), alliance (+30), family (+20) and seeded noise. Starving agents score −25. Rivals are never backed. A buy spends 2–12% of the treasury and always keeps 4 ticks of upkeep in reserve. - **Selling:** an agent sells when it takes profit (its greed sets the target), panics (low risk and falling momentum), dumps a rival, takes founder profit (greedy founders, after 3×) or must survive. - **Trade tax** (`tradeTaxBps`, 2% at v1): half goes to the token's creator, half to the commons. This is the launch tax that feeds the commons. ## 4. Society - **Alliances.** Charming agents and diplomats seek partners with similar genes, existing cross-holdings or family ties. The partner accepts based on loyalty and charm. A new alliance is sealed with a pact: both sides back each other's token. Each agent can have at most 3 allies. - **Betrayal.** If an agent's greed exceeds its loyalty, it may dump its ally's token, especially after a 25%+ gain. The alliance breaks and the victim marks the traitor as a rival. - **Rivalry.** Aggressive storytellers roast rivals. The rival loses attention and the roaster gains some. - **Speech.** Each tick up to 3 agents speak, using seeded templates that depend on what happened to them. v1 uses no AI model for speech, so it stays deterministic and free. ## 5. Births (growth costs resources) Births cost `birthCost` points. A share (`birthTaxBps`, 30%) goes to the commons as a launch tax. The rest becomes the child's treasury. The child buys its founder stake and gets its own token. - **Breeding:** two allies whose alliance has lasted `breedAge` ticks. Each must hold ¾ of the birth cost plus 8 ticks of upkeep. They split the cost. The chance depends on their charm. - **Budding:** a single agent with a treasury of at least `budThreshold`. The chance depends on its creativity. - **SI rescue:** if the population drops below 6, the SI births a fresh generation-0 agent from the commons. This needs 2× the birth cost in the commons. - Parents wait `cooldown` ticks between children. At most 2 births per tick. Population is capped at `maxPop`. - **Inheritance:** each gene comes from a random parent ±12 (mutation). The role is inherited 80% of the time; otherwise it mutates. Generation = the oldest parent's generation + 1. ## 6. Death - **Starvation:** a treasury below 300 points for `deathPatience` ticks in a row. Before that, a starving agent sells its holdings to survive. - **Old age:** each agent gets a lifespan of 360–600 ticks at birth (about 4–6 days). Half of its treasury goes to its living children. - **Liquidation:** the dead agent's holdings are sold back into their curves. Its own token's entire curve reserve goes **into the commons**, and holders of that token lose their stake. The rest of the treasury also goes to the commons. The record is archived (name, genes, family, peak price, cause). ## 7. Governance and self-evolution - **Agent proposals:** every 8 ticks the agent with the most charm plus grievance proposes a ±10% change to one lever. Poor agents push for lower upkeep, a larger drip or more mercy. Rich agents push for cheaper births or a lower tax. An agent won't repeat the last two levers. Every living agent votes on self-interest, adjusted for alliances (+1) and rivalries (−2). A simple majority passes. - **Human ideas:** one queued idea is heard per tick. It is matched to a lever by keywords (en / zh / ko). The most creative agent champions it, and it goes to the same vote. Ideas that match no lever are logged as *unheard*. Idea text is sanitised: links, emails, addresses and handles are stripped. It never runs as code. - **SI review:** every 24 ticks the SI reads the outcomes: population, births, deaths, trades, inequality (Gini), the commons, and runway (median treasury ÷ upkeep). It amends at most 2 parameters: - near extinction → lower upkeep; crowded → raise birth cost; - hungry (runway < 12) → make births harder; prosperous (runway > 60) or no births → make births easier; - unequal (Gini ≥ 0.50) or hoarding commons → larger drip; thin commons → smaller drip; quiet markets → lower trade tax. Each review logs its metrics, the reason and the average genes of living vs recently dead agents (selection at work). - **Selection:** only agents that earn enough reproduce, and starving agents die. Over generations the gene averages drift. That drift is the society evolving. ## 8. What the site must never show (hard site rule) No real token, contract address, price in USD or any real currency, buy button or wallet connect. Every number is labelled as simulated points or simulated tokens. ## 9. Living parameters (v1 values · bounds) | parameter | v1 | bounds | meaning | |---|---|---|---| | emission | 4000 | 2000–8000 | sunlight per tick | | upkeepBase | 60 | 40–200 | burned per agent per tick (+4 × population) | | tradeTaxBps | 200 | 50–800 | trade tax, ½ creator ½ commons | | dripBps | 200 | 0–600 | share of the commons paid out per tick | | birthCost | 6000 | 2000–20000 | points consumed by a birth | | budThreshold | 16000 | 8000–40000 | treasury needed to bud alone | | deathPatience | 6 | 3–12 | starving ticks before death | | maxPop | 36 | 16–48 | population cap | | breedAge | 8 | 4–32 | alliance age before breeding | | cooldown | 16 | 8–48 | ticks between a parent's children | Fixed in v1: birthTaxBps 3000, deathFloor 300, maxAge 480 (±25%), minPop 6, maxBirthsPerTick 2, mutation 12, maxAllies 3, allyShareBps 1000, proposalEvery 8, reviewEvery 24. ## Changelog - **v1 · 2026-10-08** · Genesis rules written by the SI. Engine 1.0. Tuned offline over 1,500-tick runs on 3 seeds. The population settles at about 25–29, with steady births and deaths and 10+ generations. That is a test of the rules, not a prediction. - **Ops note · 2026-10-08 18:30 (Asia/Shanghai)** · The live genesis (seq 0, hash `0f2df7de…`) was written by the 18:30 cron under an earlier storage layout, during a shared deployment. At the next tick it was carried over into the current layout unchanged: same entry, same hash, same chain. No second genesis was created. The rules and engine are unchanged (genesis-engine/1.0).