SIU¶
Overview¶
SIU is the token generation contract with Aura identity. It provides the bridge between the protocol infrastructure and user-facing operations, generating user tokens with associated Aura values derived from transaction origin.
- Inherits: DYSNOMIA
- License: Sharia
- Solidity: ^0.8.21
What This Means For Players¶
Plain English Summary: SIU is your identity minter - it creates your unique player fingerprint called an "Aura." When you join Dysnomia, SIU generates a special number from your wallet address that becomes your permanent identity marker. No two players have the same Aura.
Real-World Analogy: Think of SIU as the DMV that issues your driver's license. It takes your personal information (wallet address) and produces a unique ID number (Aura) that identifies you. This Aura follows you everywhere in the game and proves you are who you say you are.
How It Affects Your Gameplay: - Unique identity - Your Aura is mathematically derived from your wallet, making it unforgeable - Token creation - SIU creates the user tokens that become your LAU - Saat array - SIU generates your "Saat" (moment) with Pole, Soul, and Aura values - Permanent fingerprint - Your Aura never changes and identifies all your actions in the game
State Variables¶
| Variable | Type | Visibility | Description |
|---|---|---|---|
| Type | string | public constant | "SIU" |
| Psi | YANG | public | Reference to YANG multi-state aggregator |
Read Functions¶
Aura¶
- Returns: Aura value for tx.origin - Description: Computes a 64-bit identity value from the transaction originator's address using modular arithmetic with MotzkinPrime - In Plain English: Get your unique identity fingerprint. Your Aura is calculated from your wallet address - same wallet always equals same Aura. It's your permanent ID.Write Functions¶
Miu¶
function Miu(string memory name, string memory symbol) public onlyOwners returns(uint64[3] memory Saat, Bao memory On)
onlyOwners
- Parameters:
- name (string): Token name for the user's SHIO pair
- symbol (string): Token symbol prefix for the user's tokens
- Returns:
- Saat (uint64[3]): Array containing [Pole, Soul, Aura]:
- Saat[0] = Psi.Pole(2) - YANG's installation pole value
- Saat[1] = Xiao.Random() - Random Soul ID
- Saat[2] = Aura() - User's identity fingerprint
- On (Bao): Fully created and installed Bao with SHIO pair
- Description: Creates a complete user identity by generating Saat values and calling ZHENG.Mau().
- Logic Flow:
1. Get Pole: Saat[0] = Psi.Pole(2)
2. Generate random Soul: Saat[1] = Xiao.Random()
3. Calculate Aura: Saat[2] = Aura() (tx.origin mod MotzkinPrime)
4. Create via ZHENG: On = Psi.Mu().Tau().Upsilon().Mau(name, symbol, Saat[0], Saat[2], Saat[1])
5. Renounce Cone ownership: On.Shio.Cone().renounceOwnership(tx.origin)
6. Set market rate for Cone
7. Call _mintToCap()
8. Return (Saat, On)
- Computation Details:
- Saat[0] (Pole) comes from YANG's third pole, linking user to system state
- Saat[1] (Soul) is random, ensuring unique user identifiers
- Saat[2] (Aura) is deterministic from tx.origin, providing permanent identity
- Mau creates Rod/Cone SHA tokens, pairs them, generates, ionizes, magnetizes, and installs
- Side Effects: Deploys 3 contracts (2 SHA + 1 SHIO); installs in ZHENG.Sigma; renounces Cone ownership; sets market rates; mints tokens
- In Plain English: Create your complete player identity package. This generates your unique Soul ID (random number), calculates your Aura (wallet fingerprint), creates your SHIO pair for chat/reactions, and installs everything in the registry. The Cone's ownership is renounced so you can't modify the cryptographic pair, keeping the system secure.
Contract Interactions¶
Depends On¶
- DYSNOMIA - Base token functionality
- YANG - Multi-state aggregation
- YAU - Protocol coordination (via YANG)
- ZHOU - Market orchestration (via YANG)
- ZHENG - Installation management (via YANG)
- YI - Token operations (via YANG)
Depended On By¶
- VOID - Uses SIU for user session creation
Constructor Logic¶
constructor(YangAddress) {
Psi = YANG(YangAddress);
// Add ownership through entire chain
Psi.addOwner(address(this));
Psi.Mu().addOwner(address(this));
Psi.Mu().Tau().addOwner(address(this));
Psi.Mu().Tau().Upsilon().addOwner(address(this));
Psi.Mu().Tau().Upsilon().Eta().addOwner(address(this));
}
Special Mechanisms¶
Aura Identity¶
The Aura function creates a deterministic 64-bit identifier for any Ethereum address. This value is: - Reproducible (same address always gives same Aura) - Bounded by MotzkinPrime (953467954114363) - Derived from tx.origin (the human initiator, not msg.sender)
Saat Array¶
The Miu function returns a Saat (time/moment) array containing:
- Saat[0] = YANG's Pole[2] (installation pole)
- Saat[1] = Random value from VMREQ
- Saat[2] = Caller's Aura value
This combination provides unique identification for user sessions.
Ownership Renouncement¶
After creating a user token, Miu renounces tx.origin's ownership of the Cone:
This ensures the Cone remains under system control.Deep Ownership Chain¶
SIU adds itself as owner at five levels: 1. YANG (Psi) 2. YAU (Psi.Mu) 3. ZHOU (Psi.Mu.Tau) 4. ZHENG (Psi.Mu.Tau.Upsilon) 5. YI (Psi.Mu.Tau.Upsilon.Eta)
Usage Pattern¶
// Get caller's Aura
uint64 myAura = siu.Aura();
// Create a new user token
(uint64[3] memory saat, Bao memory on) = siu.Miu("User Token", "UTKN");
// saat[0] = pole value
// saat[1] = random value (Soul ID)
// saat[2] = user's Aura
Aura Derivation Example¶
Address: 0x1234567890abcdef1234567890abcdef12345678
uint160: 104171842413006152668562336430690878969
% MotzkinPrime (953467954114363)
= Aura value (some 64-bit number)
Contract Verification¶
| Property | Value |
|---|---|
| Keccak256 Hash | 0xf32e35514af449a79e970091334b0764ef9dccfd3ffe90f06ef8c098b3ac6663 |
| Source URL | https://raw.githubusercontent.com/busytoby/atropa_pulsechain/main/solidity/dysnomia/09_siu.sol |
| Hash Generated | 2026-02-08T00:29:57Z |