Technical Reference

User

Source updated:
Last updated:
Source Revision 0xb8e83f4b…2c2a70
Property Value
Source Revision 0xb8e83f4ba819402a9cab5c800fdf5a9a694d4e3600639db159353f0e102c2a70
Source URL https://raw.githubusercontent.com/busytoby/atropa_pulsechain/acaa33e1a9024ca8fd06e008c14ca405e7fb674f/solidity/dysnomia/include/user.sol
Source commit acaa33e1a9024ca8fd06e008c14ca405e7fb674f
Source Status Source snapshot; source hashes do not establish deployed bytecode equivalence.
Compiler solc 0.8.21; optimizer enabled with 200 runs
Compiler Configuration {"evmVersion":"compiler-default","optimizer":{"enabled":true,"runs":200},"version":"0.8.21+commit.d9974bed.Linux.g++"}
Compilation Closure Hash 0xed105e08ac223884edf106690dafd7efbb0937c8b832a65ea8dc691f534ad90b
Compilation Closure Files 5
Hash Generated 2026-04-20T02:38:30Z

User is the identity structure for users in the Dysnomia ecosystem. It combines a Soul ID with a Bao operation context, username, and entropy value.

  • Kind: Type Definitions Module
  • License: Sharia
  • Solidity: ^0.8.21
  • Source: include/user.sol
Contract addressNot applicable to type definitions

Plain English Summary: User is your player card - it contains your identity, name, and stats. When the game needs to know who you are, it reads your User structure which has your Soul ID (unique number), Bao (operation context), Username (display name), and Entropy (accumulated randomness).

Real-World Analogy: Think of User like a character sheet in a tabletop RPG. It has your character’s unique ID, their equipment loadout (Bao), their name, and a luck stat (Entropy) that accumulates over time.

How It Affects Your Gameplay:

  • Soul ID - Your permanent unique identifier across all game systems
  • Username - How other players see you in chat and venues
  • Entropy - Your accumulated randomness that affects calculations
  • Bao reference - Links to your cryptographic identity for authentication
struct User {
uint64 Soul; // Unique 64-bit user identifier
Bao On; // User's Bao operation context
string Username; // Display name
uint64 Entropy; // User-specific entropy value
}
Field Type Purpose
Soul uint64 Unique identifier derived from Saat[1]
On Bao User’s token context (SHIO, SHA, etc.)
Username string Display name for chat and UI
Entropy uint64 Accumulated entropy from reactions

The Soul ID is the primary identifier for a user. It’s derived from:

  1. LAU creation via LAUFactory
  2. VOID.Enter() registration
  3. SIU.Miu() token generation
  4. Stored in Saat[1]
// Soul is the middle value of Saat array
uint64 soul = lau.Saat(1);
1. User calls LAUFactory.New()
2. LAU calls VOID.Enter()
3. VOID calls SIU.Miu()
4. SIU creates tokens via ZHENG
5. User struct populated:
- Soul = Saat[1]
- On = created Bao
- Username = "" (set later)
- Entropy = from Recall

Username is stored separately in ATTRIBUTE library but accessed via User struct:

// Set username
lau.Username("Alice");
// Get username (reads from ATTRIBUTE)
string memory name = lau.Username();
// In CHO.Enter()
Alpha.Username = LAU(Alpha.On.Phi).Username();

Entropy evolves through reactions:

function Recall(User memory Alpha) public returns (uint64 UserEntropy) {
(On.Omicron, On.Omega) = Reactor().ReactToLai(On, Entropy ^ Alpha.On.Omicron, ...);
Entropy = On.Omega;
return On.Omicron;
}

Imports:

User memory Alpha;
Alpha.Soul = userLau.Saat(1);
Alpha.On = userLau.On();
Alpha.On.Phi = address(userLau);
Alpha.Username = userLau.Username();
Alpha.Entropy = recall(Alpha);
// Store
Delegates[tx.origin] = Alpha;
DelegateAddresses[Alpha.Soul] = tx.origin;
// By address
User memory user = Delegates[walletAddress];
// By Soul
address wallet = DelegateAddresses[soul];
User memory user = Delegates[wallet];
User memory Alpha = getUser();
Alpha.Entropy = Recall(Alpha);
Delegates[tx.origin] = Alpha;

struct User {
uint64 Soul;
Bao On;
string Username;
uint64 Entropy;
}