Skip to content

CHO — The Login Gate

One-line pitch: CHO is the bouncer at the front door of Dysnomia. It checks your ID before letting anyone act on your behalf.

What this is

CHO is the authentication contract. Whenever a venue, a battle, a chat action, or a territory claim wants to verify that a specific LAU is legit and controlled by its rightful owner, it asks CHO. CHO also keeps the phone book of important system addresses and maintains a registry of all active players.

You don't usually call CHO — you go through it every time you take an action.

If you've played a web3 game before

  • Closest analogy: an identity verifier contract — confirms "this address really does own this token/account" before allowing sensitive actions.
  • Or: passport control at a border — every action passes through the same check.
  • Or: a reverse-ENS lookup — for a given address, CHO can tell you which LAU/Soul belongs to it.
Dysnomia term What it maps to
Delegates Mapping from LAU address to User record (Soul + Username + Bao)
DelegateAddresses Reverse lookup: Soul → LAU address
WITHOUT A ban token — holding it means CHO rejects you
Luo A unique location ID derived from your LAU, used by QINGs
Gua The universe constant used when computing Luo

What you actually do with it

  • You already used it at signup — VOID.Enter() registered your LAU with CHO.
  • Downstream contracts ask CHO about you — Admitted checks, chat authorization, venue joins. These revert if CHO doesn't know you.
  • Check if a specific address is banned — look up whether it holds WITHOUT.
  • Resolve a system address — CHO maps names like "zhou", "dai", "Atropa" to their contract addresses. Useful for integrators.

Rewards / costs

  • Cost: none directly. CHO is read-heavy — other contracts pay gas to call it.
  • Reward: none directly. CHO is infrastructure.

Requirements & gating

  • Your LAU must have entered via VOID — otherwise CHO doesn't have a record of you, and downstream actions (Chat, Join, Code) will revert.
  • You must not hold the WITHOUT token.

The WITHOUT ban

There's a single token called WITHOUT that acts as a permanent ban. If CHO sees that your wallet or your LAU holds any balance of WITHOUT, you're blocked from gameplay. It's a kill switch for bad actors.

Where it connects

CHO is called by nearly every domain contract: QING calls it before admitting you, CHOA calls it to verify your LAU during Play and Chat, CHAN reads it to confirm your Soul. Upstream, CHO sits on top of VOID — VOID manages sessions, CHO authenticates them.

Quick FAQ

Q: What happens if I transfer my LAU to a new wallet? A: CHO's delegate record is keyed by LAU address, not by wallet. A co-owner can still act through the LAU. But if the LAU's owner mapping changes, some actions may revert until CHO is updated — usually the game flow handles this automatically on next Play.

Q: Can I be un-banned if I accidentally acquired WITHOUT? A: You can burn or transfer the WITHOUT balance away. Once you no longer hold it, CHO stops flagging you. There's no admin manual review.

Q: What's "Luo" for? A: Every LAU has a unique coordinate-like ID called Luo, derived from the wallet address and the universe constant (Gua). Some venues compute venue coordinates (Waat) from it when they're created.

Q: Where do the "system addresses" come from? A: CHO has an internal Addresses mapping that's populated when system contracts are deployed. You can query Addresses["dai"], Addresses["USDC"], Addresses["Atropa"], etc. — it's the canonical phone book.


Want the Solidity? The contract reference lives at technical/docs/domain/dan/CHO.md.