User — Your Character Sheet
One-line pitch: User is the struct that holds your Soul, your current Bao, your Username, and your Entropy — the fields that together answer “who is this player?”
What this is
Section titled “What this is”User is a four-field struct used anywhere the game needs to read “all the identity-relevant state for a specific player” in one call. Fields:
- Soul — your permanent 64-bit player ID.
- On — your current Bao (latest action-receipt).
- Username — display name.
- Entropy — accumulated randomness bound to your actions.
User is derived: it’s assembled on demand from LAU, VOID, and SIU state. You can’t write to User directly; you change it by acting (which updates Bao/Entropy) or by renaming (which sets Username).
If you’ve played a web3 game before
Section titled “If you’ve played a web3 game before”- Closest analogy: a character sheet in a tabletop RPG — name, ID, current stats, luck roll.
- Or: an aggregated user profile in a frontend (pulled from several tables).
- Or: an ENS profile record — name + derived identity + metadata.
| Dysnomia term | What it maps to |
|---|---|
| User | Your combined identity struct |
| Soul | 64-bit unique player ID |
| On (Bao) | Your latest crypto receipt |
| Username | Display name (for chat/UIs) |
| Entropy | Accumulated randomness for your rolls |
What you actually do with it
Section titled “What you actually do with it”- Get Username via LAU’s rename flow.
- Generate Bao by acting (chatting/battling/claiming).
- Accumulate Entropy automatically as you act.
- Read User to inspect your full profile — many contracts expose a
getUser()style function.
Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.
LAU.Username()Read
Open this function to load its call form.
0xB6be11F0A788014C1F68C92F8D6CcC1AbF78F2aBCHO.GetUser()Simulate / call
Open this function to load its call form.
Rewards / costs
Section titled “Rewards / costs”- Cost: none directly.
- Reward: indirect — Entropy is used in various reward rolls.
Requirements & gating
Section titled “Requirements & gating”- You need a LAU for a User to exist — LAU creation is what populates the Soul field.
Where it connects
Section titled “Where it connects”Built from LAU + VOID + SIU. Referenced by ACRONYM entries (as UserInfo). Read by chat/battle/reward logic everywhere.
Quick FAQ
Section titled “Quick FAQ”Q: Can I change my Soul? A: No — it’s permanent, derived from the Saat middle value at LAU creation.
Q: Can I change my Username? A: Yes — there’s a rename path on LAU. (Costs gas; may have a fee.)
Q: What does Entropy do? A: It flavors reward calculations and random rolls. More entropy = more unpredictable rolls (within the allowed range).
Want the Solidity? The contract reference lives at
technical/docs/include/USER.md.