$OOMI · protocol overview
Oomi only changes through a public pipeline. Community activity is sealed into a snapshot, randomness arrives afterwards, and a published SHA-256 rule turns both into traits. Every step leaves a record anyone can check.
finalized slots only · epoch 1 · days 1–7
10 identities · oomi-rules/0.3
root 88d7efcf…047a
test vector e81c56fb…8c74
seed 77de4fc4…f285

01How it works
The ordering is the security property: eligibility is frozen before any randomness exists, so no one (including the team) can steer an outcome after the fact.
An indexer reads $OOMI activity from Solana. Only finalized slots count, duplicates are dropped, and raw transactions are kept for audit.
movement { signature, slot, owner, delta, venue }Token transfers are never modified. Oomi only watches.
For a published period, activity becomes per-identity signals under a rule version announced before the window opens. Signals are capped and time-weighted.
signal { epoch, identity, kind, value, capped }Raw transfer counts and volume never count, so wash trading earns nothing.
When the window closes, eligibility is frozen into canonical JSON and its SHA-256 root is committed on-chain.
snapshot_root = SHA-256(canonical_json(snapshot))Nothing can be added or removed after this point.
Only after the seal, a physical-randomness provider's bytes are committed, then mixed with a public drand beacon round chosen by rule.
entropy = SHA-256(q ‖ σ_drand(B))No single party can predict or steer it. Withholding only delays.
A pure SHA-256 function turns snapshot, rule version and entropy into traits. Artwork and narration then depict the result.
traits = derive(epoch, identity, root, rule, entropy)Anyone can recompute it. The AI never chooses an outcome.
02Run it yourself
This is the exact function the protocol specifies, running in your browser. Change one character of the identity and every trait re-draws. Change it back and you get the same Oomi.
Step 1 · Encode the preimage
000000106f6f6d693a6d75746174696f6e3a7631000000010000000d6f6f6d693a666c61677368697088d7efcf8e1da6e52b4d9d4cf6b8d36368592deb3390818bc5448a739125047a0000000e6f6f6d692d72756c65732f302e33e81c56fbe3691396b71b23dc6d719a1f5a45301d88036536474fa80a4c038c74
123 bytes → SHA-256 → 32-byte seed
Step 2 · Hash
seed = 77de4fc4b3e68107c86aeb4e42ed2608cf97fa1e9b37e53f15d46c4ec782f285
Step 3 · Draw each trait
uᵢ = u32be(SHA-256(seed ‖ u32be(i))[0..4]) / 2³², then pick by cumulative weight.
0x0af71a7b → u = 0.042833
0x0553159a → u = 0.020799
0x196b085b → u = 0.099289
0x32fb8ec9 → u = 0.199151
0x2e9275b3 → u = 0.181922
03Trust model
Every party's power is bounded by the commit-before-entropy order and a fixed fallback. This table covers the whole threat surface for a single round.
| Party | Can | Cannot |
|---|---|---|
| Holders / community | Signal weights, within ±30% of base odds | Pick a trait; buy a better draw |
| Operator (us) | Publish rule versions before a window opens | See entropy before the seal; re-roll a round |
| QRNG provider | Supply random bytes | Target an outcome (it can't know the beacon round) |
| drand network | Publish beacon rounds on schedule | Target an outcome (it can't know q) |
| AI agent / renderer | Depict and narrate decided traits | Change the record |
| Traders | Nothing in the protocol | Be affected: $OOMI has no hook or tax |
04Architecture
Indexing, entropy, derivation and rendering are kept separate. Mixing them is how projects end up with untradable tokens or AI that quietly decides outcomes.
05Status
Built: experience app and presentation adapter, including the derivation code running on this page. Specified but not deployed: the indexer, all Solana programs, entropy rounds and the agent. No $OOMI mint exists yet.
derive(epoch=7, identity="oomi:flagship",
root=SHA-256("snapshot"), rule="oomi-rules/0.3",
entropy=SHA-256("entropy"))
→ seed 0c583ec8ee6228344fb07a2fdd0508d70062a5c58289826043a96f2999b2f90806Roadmap
Protocol spec published · Derivation implemented with test vectors · Verification tools on this site
Read-only Solana indexer (devnet first) · Public activity windows and snapshot commitments · Agent drafts with human review
Provider-independent entropy interface · Devnet entropy registry prototype · Reproducible derivation published
Opt-in identity linking · Evolving companion profiles · Shareable cards and cosmetics
Independent audit of any onchain program · Venue compatibility matrix · Explicit approval before anything goes live