CHOA — Gameplay Controller
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”CHOA uses the LAU and YUE associated with tx.origin. SEI.Start creates the YUE first; Play registers the selected LAU and uses the existing YUE.
What you actually do with it
Section titled “What you actually do with it”Play(lau)calls CHO.Enter and SEI.Chi. Its_playersrecord is keyed by Soul. For a previously unrecorded Soul it requests YUE.MintToOrigin, which transfers one YUE token only if the YUE contract has enough balance after its mint-to-cap call.Chat(qing, message)calls QING.Chat, reacts the YUE through CHAN, and returns Charge. It then computes a MAI value and may transfer CHOA tokens from CHOA’s own balance to the YUE.Yuan(currency)readsbalanceOf(tx.origin) + 10 * balanceOf(LAU) + 40 * balanceOf(YUE)for the specified currency. It does not move tokens.
Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.
SEI.Start(address LauToken, string YueName, string YueSymbol)Simulate / call
Open this function to load its call form.
CHOA.Play(address UserTokenAddress)Simulate / call
Open this function to load its call form.
CHOA.Chat(address Qing, string MSG)Simulate / call
Open this function to load its call form.
CHOA.Yuan(address Currency)Read
Open this function to load its call form.
Rewards / costs
Section titled “Rewards / costs”The chat amount is min(MAI.React(Soul, Waat), 10^CHOA.decimals()). MAI reads the QING-token balance held by the active LAU and divides it by the returned User entropy. It is not a balance of the venue’s underlying Asset. The payment is a CHOA-token transfer, not a MAI-token mint or a venue-token mint, and it occurs only when CHOA has sufficient balance. The cap is a maximum, not a guaranteed payment.
Requirements & gating
Section titled “Requirements & gating”QING admission is only one requirement. SEI must return an existing pair, YUE.React requires the origin to hold YUE tokens, and the nested reactions and arithmetic must succeed. A revert rolls back the chat event as well as all nested state changes. QING.Chat is also available as a direct message path without CHOA’s reaction or reward transfer.
Where it connects
Section titled “Where it connects”See CHOA source, MAI, QING and YUE. Confirm actual transfers from successful receipts; neither a preview nor a maximum reward proves payment.