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.
- Kind: Contract
- License: Sharia
- Solidity: ^0.8.21
- Source:
09_siu.sol
Inheritance Chain (C3 Linearized)¶
- self — SIU
- DYSNOMIA
- MultiOwnable
Immediate Parents¶
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 | Mutability | Initial Value | NatSpec |
|---|---|---|---|---|---|
Type |
string |
public | constant | SIU |
|
Psi |
YANG |
public | mutable | `` |
Constructor¶
constructor¶
constructor(address YangAddress) DYSNOMIA(unicode"CHATLOG Siu", unicode"SIU", address(DYSNOMIA(YangAddress).Xiao()))
- Modifiers:
DYSNOMIA(unicode"CHATLOG Siu", unicode"SIU", address(DYSNOMIA(YangAddress).Xiao())) - Parameters: address YangAddress
Functions¶
External & Public¶
Aura¶
- Visibility: public
- State Mutability: view
- Returns: uint64
Miu¶
function Miu(string memory name, string memory symbol) public onlyOwners returns (uint64[3] memory Saat, Bao memory On)
- Visibility: public
- Modifiers:
onlyOwners - Parameters: string memory name, string memory symbol
- Returns: uint64[3] memory Saat, Bao memory On
Internal¶
Augment¶
- Visibility: internal
Inherited Members¶
This contract inherits the members below from its parents. See each parent's dedicated MD for full signatures, NatSpec, and semantics.
From DYSNOMIA¶
External & Public Functions
| Function | Signature | State Mutability |
|---|---|---|
Rename |
function Rename(string memory newName, string memory newSymbol) public onlyOwners |
nonpayable |
mintToCap |
function mintToCap() public onlyOwners |
nonpayable |
GetMarketRate |
function GetMarketRate(address _a) public view returns (uint256) |
view |
Purchase |
function Purchase(address _t, uint256 _a) public |
nonpayable |
Redeem |
function Redeem(address _t, uint256 _a) public |
nonpayable |
name |
function name() public view virtual returns (string memory) |
view |
symbol |
function symbol() public view virtual returns (string memory) |
view |
decimals |
function decimals() public view virtual returns (uint8) |
view |
totalSupply |
function totalSupply() public view virtual returns (uint256) |
view |
balanceOf |
function balanceOf(address account) public view virtual returns (uint256) |
view |
transfer |
function transfer(address to, uint256 value) public virtual returns (bool) |
nonpayable |
allowance |
function allowance(address owner, address spender) public view virtual returns (uint256) |
view |
approve |
function approve(address spender, uint256 value) public virtual returns (bool) |
nonpayable |
transferFrom |
function transferFrom(address from, address to, uint256 value) public virtual returns (bool) |
nonpayable |
Internal Functions
| Function | Signature |
|---|---|
_mintToCap |
function _mintToCap() internal |
AddMarketRate |
function AddMarketRate(address _a, uint256 _r) internal |
_transfer |
function _transfer(address from, address to, uint256 value) internal |
_update |
function _update(address from, address to, uint256 value) internal virtual |
_mint |
function _mint(address account, uint256 value) internal |
_approve |
function _approve(address owner, address spender, uint256 value) internal |
_spendAllowance |
function _spendAllowance(address owner, address spender, uint256 value) internal virtual |
log10 |
function log10(uint256 value) internal pure returns (uint256) |
String |
function String(uint256 value) internal pure returns (string memory buffer) |
Hex |
function Hex(address account) internal pure returns (string memory) |
Events
| Event | Parameters |
|---|---|
Transfer |
address indexed from, address indexed to, uint256 value |
Approval |
address indexed owner, address indexed spender, uint256 value |
Errors
| Error | Parameters |
|---|---|
MarketRateNotFound |
address asset |
DysnomiaInsufficientBalance |
address origin, address sender, address from, address to, address what, uint256 balance, uint256 needed |
DysnomiaInsufficientAllowance |
address origin, address sender, address owner, address spender, address what, uint256 allowance, uint256 needed |
State Variables (private parent storage is not reachable and is omitted)
| Variable | Type | Visibility | Mutability |
|---|---|---|---|
__name |
string |
internal | mutable |
__symbol |
string |
internal | mutable |
MotzkinPrime |
uint64 |
public | constant |
Xiao |
atropaMath |
public | mutable |
maxSupply |
uint256 |
public | mutable |
From MultiOwnable¶
External & Public Functions
| Function | Signature | State Mutability |
|---|---|---|
owner |
function owner() external view virtual returns (address) |
view |
renounceOwnership |
function renounceOwnership(address toRemove) public virtual onlyOwners |
nonpayable |
addOwner |
function addOwner(address newOwner) public virtual onlyOwners |
nonpayable |
Internal Functions
| Function | Signature |
|---|---|
_checkOwner |
function _checkOwner() internal view virtual |
_changeOwnership |
function _changeOwnership(address cOwner, bool cState) internal virtual |
Events
| Event | Parameters |
|---|---|
OwnershipUpdate |
address indexed newOwner, bool indexed state |
Errors
| Error | Parameters |
|---|---|
OwnableUnauthorizedAccount |
address origin, address account, address what |
OwnableInvalidOwner |
address origin, address owner, address what |
Modifiers
| Modifier | Parameters |
|---|---|
onlyOwners |
(none) |
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-04-17T20:48:08Z |