LAU — Your Player Account
Evidence scope: The behavior below is from the pinned Solidity source. A source-file hash does not establish deployed bytecode equivalence. Check the selected deployment and caller before sending a transaction.
What this is
Section titled “What this is”A LAU is an ERC-20 character contract. LAUFactory.New(name, symbol) adds msg.sender and tx.origin as equal owners, then removes the factory. Token balances and the ownership role are separate.
CHO keeps one active LAU per wallet, but a wallet can own several LAUs. CHO.Enter(lau) selects an owned character. Saat and On describe its session; Saat(1) is its Soul for that session.
What you actually do with it
Section titled “What you actually do with it”Username(string)writes the Username attribute through VOID and ATTRIBUTE.Username()reads it. This is separate fromRename(name, symbol), which changes ERC-20 metadata.Chat(string)routes through VOID and requires LAU ownership. DirectQING.Chat(lau, text)is a different path with different caller checks; see QING.Withdraw(token, amount)transfers tokens held by the LAU tomsg.sender, subject toonlyOwnersand the token’s transfer behavior.Aliasstores an address or Bao alias through VOID.Leave()setsCurrentAreato the zero address and logs the action. It does not remove LAU ownership or clear a QING guest-list entry.Void(true, true)callsEta.Enter()and replacesSaatandOn. It does not destroy the LAU contract or explicitly transfer away its ERC-20 balances. Its session identity can change; do not treat Soul as an immutable account identifier.
Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.
LAU.Username(string newUsername)Simulate / call
Open this function to load its call form.
LAU.Chat(string chatline)Simulate / call
Open this function to load its call form.
LAU.Alias(address name, string value)Simulate / call
Open this function to load its call form.
LAU.Withdraw(address what, uint256 amount)Simulate / call
Open this function to load its call form.
LAU.CurrentArea()Read
Open this function to load its call form.
LAU.Leave()Simulate / call
Open this function to load its call form.
LAU.Void(bool really1, bool really2)Simulate / call
Open this function to load its call form.
Rewards / costs
Section titled “Rewards / costs”These calls cost gas. LAU.Chat does not execute CHOA’s reward transfer. Several LAU methods also call the inherited _mintToCap, which can mint one LAU token to the LAU contract when below its supply threshold.
Requirements & gating
Section titled “Requirements & gating”LAU methods marked onlyOwners accept a recognized msg.sender or tx.origin. CHO registration separately checks owner(tx.origin). The CHO WITHOUT check shown in this snapshot examines tx.origin; it is not a universal ban check on every token holder.
Source and deployment differences
Section titled “Source and deployment differences”The pinned MultiOwnable source includes owner() returning the contract address. A source ABI does not prove that an inherited getter works on a selected deployed LAU. Check its owner() support and owner(address) results at the same block before relying on either.
Where it connects
Section titled “Where it connects”LAU source, LAUFactory, VOID, CHO, and MultiOwnable describe the separate identity and ownership paths.