Cheat Sheet — Caps & Limits
Every hard ceiling, spillover threshold, and revert-on-exceed condition in the game.
Chat reward
Section titled “Chat reward”| Cap | Value | What it bounds | Source |
|---|---|---|---|
| Per-message MAI | 1 * 10^decimals of the QING asset |
Reward per CHOA.Chat() call. Computed MAI is clamped if larger. | CHOA |
Implication: there is no way to earn more than 1 venue-token from a single chat call, no matter how much you hold. Volume > whale. See Venues: Chat Mining.
Personal vs. world holdings (H2O & VITUS)
Section titled “Personal vs. world holdings (H2O & VITUS)”Both H2O and VITUS enforce the same two-tier overflow:
| Cap | Value | Effect | Source |
|---|---|---|---|
| Personal max | Meridians[13] |
If a player’s balance would exceed this after a mint, overflow goes to the WORLD contract. | H2O, VITUS |
| WORLD max | Meridians[20] |
If WORLD’s balance would exceed this, the overflow burns. | H2O, VITUS |
Implication: a player who never withdraws will eventually hit Meridians[13] and start unintentionally donating to WORLD; WORLD itself can later start burning. Planning when to withdraw is a real optimization. See Economic: Overflow Play.
Access / admission
Section titled “Access / admission”| Cap | Value | Effect | Source |
|---|---|---|---|
| CROWS VIP threshold | 25 * 10^18 |
Holding ≥ 25 CROWS bypasses all other admission checks at any QING that hasn’t set NoCROWS. |
QING |
| BouncerDivisor share | Asset.balanceOf(x) ≥ Asset.totalSupply() / BouncerDivisor |
Large-holder auto-bouncer gate. Divisor is per-QING, uint16. |
QING |
| Guest-list slot | 1 timestamp per UserToken |
_list[UserToken] = block.timestamp + 1 days. Only the latest entry persists. |
QING |
See Venues: Cover-Charge Tuning, Venues: Guest-List Rotation.
Encryption / crypt queue
Section titled “Encryption / crypt queue”| Cap | Value | Effect | Source |
|---|---|---|---|
| In-flight crypt count | uint64 index range (effectively unbounded in practice; capped by gas and Prune) |
Exceeding triggers TooManyCrypts(max, count). |
ENCRYPT |
| Chromosome minimum | Error ChromosomeLength |
Keys below a minimum length revert. Exact length not numeric-constant; enforced via error. | ENCRYPT |
Word-game / voting
Section titled “Word-game / voting”| Cap | Value | Effect | Source |
|---|---|---|---|
| Submissions per user per round | uint8 → max 255 |
Struct field overflow. | USERVOTE |
| Vote index per user | uint16 → max 65,535 |
Supports up to 65,535 distinct submissions per round. | USERVOTE |
| Round counter | uint16 → max 65,535 |
Round rollover would require 65,535 rounds. Not a live concern. | USERVOTE |
| Acronym string min length | 3 |
MinimumLength3 revert. |
STRINGLIB |
Rate modifier floor
Section titled “Rate modifier floor”| Cap | Value | Effect | Source |
|---|---|---|---|
| Rate-modifier floor | 777 |
If Mod < 777, the rate denominator grows nonlinearly: Rate / ((777 − Mod) · 10^(decimals − 5)). |
YUE |
Range caps
Section titled “Range caps”| Cap | Value | Effect | Source |
|---|---|---|---|
| Code range (Yeo) | Dynamic; output of META.Beat(QingWaat), further divided by Chao. |
Latitude and Longitude must be within Yeo of QING’s position; otherwise OutOfRange. |
META, WORLD |
See Territory: Proximity & Geometry.
Owner-only writes
Section titled “Owner-only writes”Many contracts accept only onlyOwners or onlyBouncers callers. A summary of the bouncer cascade (most-to-least privileged):
_staff[cBouncer] == true→ authorized.NoCROWS == false && CROWS.balanceOf(cBouncer) ≥ 25 * 10^18→ authorized.Asset.balanceOf(cBouncer) ≥ Asset.totalSupply() / BouncerDivisor→ authorized.Map.hasOwner(Asset)&&Asset.owner(cBouncer)→ authorized.- Otherwise → not a bouncer.
Source: QING.bouncer().
What does NOT have a hard cap
Section titled “What does NOT have a hard cap”Avoid assuming these are bounded:
- CO2. Global
uint256accumulator in WAR. Only a practical bound via block gas + time. _taan[Caude][Position](WAR’s high-score map). Monotonically nondecreasing per(Caude, Position). Once someone rolls a huge Waat there, beating it gets harder, but there’s no reset.Moments[Soul]in RING. Stores whatever lastIotawas computed; there’s no ring buffer, just an overwrite.
Quick reference
Section titled “Quick reference”| Hard cap? | Value | Tag |
|---|---|---|
| Per-message MAI | 1 token |
HARD |
| Personal H2O/VITUS | Meridians[13] |
SOFT (overflows, doesn’t revert) |
| WORLD H2O/VITUS | Meridians[20] |
HARD (burns) |
| CROWS VIP gate | 25 CROWS |
HARD (gating logic) |
| Guest-list entry | 1 day | HARD (timestamp) |
| ENCRYPT TTL | 10 days | HARD (timestamp) |
| Submissions/round | 255 | HARD (uint8 saturation) |
| Rate-mod floor | 777 | SOFT (piecewise formula) |
Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.
QING.CoverCharge()Read
Open this function to load its call form.
VITUS.balanceOf(address account)Read
A callable deployment has not been resolved for this reference.
VITUS.Withdraw(uint256 Amount)Simulate / call
A callable deployment has not been resolved for this reference.