Skip to content
Player's Guide

SEI — New Player Onboarding

One-line pitch: SEI is the welcome desk that turns a newly-minted LAU into a fully set-up player account.

SEI owns the Start() button. When you call it, SEI:

  1. Creates your personal YUE bank.
  2. Links the new YUE to your LAU.
  3. Registers you through CHAN as an active player.
  4. Returns the paired (YUE, LAU) tuple — sometimes called your Chi.

Call Start() before CHOA.Play() when your wallet has no YUE. CHOA.Play() reads the existing YUE through SEI.Chi() and does not create one. Calling Start() again renames the existing YUE.

  • Closest analogy: the onboarding script in a web3 app that does “fund account, deploy wallet, link accounts” in one click.
  • Or: an MMO welcome quest — a single NPC who sets up your inventory, house, and social listings at once.
Dysnomia term What it maps to
Start() The onboarding call that creates your YUE
Chi() Convenience read returning your paired (YUE, LAU) addresses
NotStarted Error returned by contracts that expect you to be onboarded but find no YUE
  • Start(lauAddress, name, symbol) — create your YUE with the given display name. Returns your YUE address.
  • Chi() — caller-sensitive read returning the transaction origin’s (YUE, LAU) pair.
  • Rename — if you’re already onboarded, calling Start() again is an allowed path to rename your YUE without deploying a new one.

Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.

SEI0x3dC54d46e030C42979f33C9992348a990acb6067
SEI.Start(address LauToken, string YueName, string YueSymbol)Simulate / call

Open this function to load its call form.

SEI.Chi()Read

Open this function to load its call form.

  • Cost: one contract deployment (your YUE) the first time. Just gas.
  • Reward: you now have a bank and can start earning.
  • You need a LAU already — SEI assumes one exists.
  • You shouldn’t have an existing YUE unless you’re calling Start to rename.

SEI sits between CHAN (which tracks your YUE ↔ wallet link) and CHEON (which needs your YUE address to pay you). Downstream, everything depends on your YUE existing — so SEI is on the critical path of your very first session.

Q: What if I already have a YUE but call Start again? A: It’s interpreted as a rename — your YUE isn’t redeployed, its display name is updated. No value moves.

Q: What does Chi() return exactly? A: A (YUE_address, LAU_address) pair for tx.origin. It reverts with NotStarted when that origin has no registered YUE.

Q: Why is there a separate onboarding contract instead of just doing this in LAUFactory? A: Clean separation. LAUFactory is for creating the character. SEI is for creating the bank. You can have a LAU and delay creating a YUE if you want.

Q: Is Start() idempotent? A: For the YUE-creation path, yes — it checks whether you already have one and either creates a fresh YUE or renames the existing one. No double-deployment.


Want the Solidity? The contract reference lives at technical/docs/domain/tang/SEI.md.