Skip to content
Alpha & Strategy

Territory — Proximity & Geometry

TL;DR: The map has 90 latitude bands. Waat values compress by / 333. Your Code range (Yeo) is dynamic and divides by Chao. Pick coordinates near QINGs whose RING state gives you a generous Yeo — and claim tighter to the center than you think you need.

Territory isn’t a free-for-all. Every Code() has to land inside a box of radius Yeo around the target QING’s position, and Yeo is a per-call output of META.Beat() that depends on your RING state. Get the geometry wrong and you revert (gas wasted). Pick the wrong QING and your Yeo is tiny even in the best case.

Constant Value Source
Latitude bands 90 (indices 0..89) HECKEMERIDIANS
Latitude divisor 333 Scales Waat down to latitude space. HECKEMERIDIANS
Southernmost (Meridian[0]) 476,733,977,057,179 HECKEMERIDIANS
Northernmost (Meridian[89]) 78-digit value HECKEMERIDIANS

Meridian values grow monotonically from Meridians[0] to Meridians[89], so a small Waat puts you south, a huge Waat puts you north.

From WORLD:

(qlat, qlon) = Map.Map().Compliment(QingWaat)
if Latitude > qlat + int256(Yeo): revert OutOfRange
if Latitude < qlat - int256(Yeo): revert OutOfRange
if Longitude > qlon + int256(Yeo): revert OutOfRange
if Longitude < qlon - int256(Yeo): revert OutOfRange

So the valid region is an axis-aligned square of half-width Yeo around the QING.

From META.Beat:

(Phoebe, Iota1, Chao, Charge1) = Ring.Eta()
(Yeo, Omicron, Dione, Omega, Charge) = Ring.Pang().Push(QingWaat)
Yeo = Yeo / Chao

So your practical Yeo = PANG.Push's Yeo-output ÷ RING.Eta's Chao-output. If Chao is big, your legal region shrinks.

From RING.Eta:

Chao_raw = Yue.React(Phobos)
Chao = Chao_raw / Omicron (where Omicron is the PANG output)

Phobos is a fixed QING resolved through the deep contract chain.

  1. Target QINGs whose Hecke.Compliment(Waat) you’ve read recently. Don’t guess; simulate. Read QING.Waat(), then read Hecke’s Compliment to get (qlat, qlon) before picking your Code coordinates.
  2. Claim closer to center than your Yeo allows. If Yeo = 500 and QING is at (100, 200), it’s tempting to pick (100+499, 200+499) for max distance. Don’t — if the next tx mutates anyone’s RING state, Yeo recomputed at your actual Code call might be smaller, and you revert. Claim at (100+50, 200+50) for safety.
  3. Code right after the QING’s recent activity is quiet. Every React-bumping op changes Eta output via Yue.React(Phobos). If the QING is Phobos (or the Phobos chain) has been hit hard, your Chao is volatile.
  4. Pick different latitudes across successive Codes. _creators[Latitude][Chi][Cause] += Deimos buckets by latitude. Distributions pay out per-latitude. Spreading across latitudes hedges against a single Distribute pass clearing you out.
  5. (inferred) Corner-hugging works. The valid region is a square, not a disc. You get marginally more territory by claiming in a corner than on an axis — but at the cost of being vulnerable if Yeo shrinks.

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

QINGResolve your player or venue above the call forms.
QING.Waat()Read

Open this function to load its call form.

Hecke0x29A924D9B0233026B9844f2aFeB202F1791D7593
Hecke.Compliment(uint256 Waat)Read

Open this function to load its call form.

MAP0xD3a7A95012Edd46Ea115c693B74c5e524b3DdA75
MAP.Forbidden(address Asset)Read

Open this function to load its call form.

META0xE77Bdae31b2219e032178d88504Cc0170a5b9B97
META.Beat(uint256 QingWaat)Simulate / call

Open this function to load its call form.

WORLDDeployment unresolved; calls unavailable.
WORLD.Code(int256 Latitude, int256 Longitude, address Cause)Simulate / call

A callable deployment has not been resolved for this reference.

Suppose you’ve computed that for you, at a given QING, META.Beat(QingWaat) returns Yeo = 100 and Dione = 5000. The QING sits at (lat=50, lon=150).

You could legally Code at any (lat, lon) in:

  • Latitude in [-50, 150]
  • Longitude in [50, 250]

That’s a 200×200 square — 40,000 lattice points.

But if you fire off one Code, the RING state updates (Moments[Soul] = Iota overwrites; Yue.React side-effects). By your second Code, Chao may be larger (or smaller), shifting Yeo. You might compute Yeo=80 on the next read.

If your second claim was (150, 250) — the NE corner — and the recomputed Yeo = 80 puts the legal NE at (130, 230)… your (150, 250) reverts.

Rule of thumb: pick coordinates inside roughly 50% of Yeo, not 95%. Reserve some slack for turn-to-turn drift.

  • Range check is > / <, not >= / <=. Exactly at qlat + Yeo is legal. The revert fires on strict exceedence. Corner-exactly claims are fine — but rely on Yeo not shrinking mid-tx.
  • Latitude and Longitude are int256. Negative latitudes are legal. Don’t assume Latitude >= 0.
  • Compliment output depends on Waat. Different QINGs have wildly different positions. A QING at Waat near Meridian[0] is near the south pole; near Meridian[89] is near the north.
  • Map has a Forbidden concept. Map.Forbidden(Asset) can lock a QING — Chat reverts with Forbidden. Check whether the QING you want to Code near is forbidden before investing in its geometry.
  • (inferred) GWAT vs. QING positions. A GWAT has a different Luo — specifically, a Luo where Luo % 476733977057179 != 0. GWAT Waats are in a different region of the map from QING Waats. Don’t assume a GWAT neighbor’s territory math is the same.