MAP — “Dysnomia Map” — the QING factory + coordinate grid
Wave 2 · 2025-02-26 23:08 UTC · deployed
[chain]· liquid budget · venue creation still happening (newest QING 2026-09-17[chain])
In player terms
| Wrap any token, get a venue | New(anyERC20) — no approval, no payment, just gas — deploys a chat room around that token: the “FED QING” is the room wrapped around the treasury’s FED, the “pWBTC QING” around forked WBTC. If a room for that asset exists, it is THE room: one per asset, ever, planet-wide. |
| Where it lands is a dice roll | The venue’s map position comes from CHO’s coordinate lottery fed through HECKE’s grid — you choose the asset, the world chooses the address. Tile collisions revert the whole create (gas spent, no venue). |
| Token owners can veto | A token’s owner can Forbid it in advance — no venue may wrap it. (And anyone holding the WITHOUT ban token makes the read-path report a token as forbidden.) |
| Still an open factory | 917 venues and counting; treasury-side actors are among the most prolific creators [chain]. |
| One leak to know about | If a create reverts late (e.g. tile collision), the coordinate it drew stays claimed in CHO forever — the map keeps a small permanent scar from every failed attempt. |
1. Identity
| Address | 0xD3a7A95012Edd46Ea115c693B74c5e524b3DdA75 |
| Creation | block 22,813,947 — 2025-02-26 23:08 UTC (tx 0xa4eae3006c1ac451bcfb9b66ed87fa8e7ed2305a93da9daa2a1801c2830abc3a) |
| Deployer | 0x0474606332105A1dA6FC8EF7De2470551D389Cb9 |
| Name / symbol | Dysnomia Map / MAP [chain] |
| Supply / cap | 9,136 / 93,659 — liquid [chain] |
| Children | 988 creates → 917 live QINGs (delta = failed/reverted creates) [chain] |
2. Role
The venue layer’s factory: New(asset) wraps ANY ERC-20 into a
QING — one per asset, ever — placed at a coordinate derived from
CHO.Luo() × Offset (Offset = Meridians[0]) through the HECKE
transform. MAP also keeps the three venue indexes (asset → QING, Waat → QING,
(lat,lon) → QING — the last asserted collision-free) and the per-asset
forbid list.
3. Dependencies
- Constructor wires CHO + HECKE; adds itself as owner of CHO and VOID.
- Called by: anyone for
New/Forbid(QING creators include the treasury actors — 0x6e8e8007… ×68, cDc slot 0xce28607b… ×22, helpers builder ×7[chain]); QING constructor calls back (Map = MAPINTERFACE(msg.sender)).
4. State
Cho, Map (HECKE), Offset (= Meridians[0] = 476733977057179 [chain]),
_qings (asset → QING), _waats (Waat → QING), _forbidden (asset → bool),
_map (lat → lon → QING).
5. Functions
Function table extracted mechanically from domain/map.sol. Gate: public = anyone · owners = MultiOwnable set, msg.sender OR tx.origin · bouncers = QING bouncer rule · single-owner = classic owner · deployer = constructor wiring. meter = the call self-mints one unit via _mintToCap() (a call-counter against the constructor-lottery maxSupply).
| signature | gate | meter | events | reverts |
|---|---|---|---|---|
constructor(address ChoAddress, address HeckeAddress) |
deployer | — | — | — |
addToMap(uint256 Waat, address Qing) |
internal | — | — | assert |
GetMapQing(int256 Latitude, int256 Longitude) returns (QINGINTERFACE) |
public | — | — | — |
hasOwner(address _contract) returns (bool does) |
public | — | — | — |
has(address _contract, string memory what) returns (bool does) |
public | — | — | — |
Forbidden(address Asset) returns (bool) |
public | — | — | — |
Forbid(address Token, bool Disallow) |
public | — | — | NotOwner |
GetQing(uint256 Waat) returns (QING) |
public | — | — | — |
New(address Integrative) returns (QING Mu) |
public | — | NewQing | QingAlreadyExists, ForbiddenToken, DerivativeQing |
Events declared: NewQing(address Qing, address Integrative, uint256 Waat)
Errors declared: NotOwner(address what, address who) · QingAlreadyExists(address Token, address Qing) · DerivativeQing(address Integrative, uint256 Waat) · ForbiddenToken(address which)
Effects: New(Integrative) — the venue-creation pipeline, in order
[src: domain/map.sol]:
- Rejects duplicates (
QingAlreadyExists), assets forbidden by their own side (ForbiddenToken) and anything that is itself a QING (DerivativeQing— detected by exposingWaat(); no venues-on-venues). - Draws the placement:
Luo = Cho.Luo() × Offset(Offset =Meridians[0]— one draw per venue ever, claimed in CHO’sQumap). - Deploys the QING; if the wrapped asset has
owner(), the asset owner joins the new venue’s owner set. - Renames it
"<asset> QING"/"q<symbol>"; cross-owns with CHO. - Registers all three indexes — asset → QING, Waat → QING, and the tile via
addToMap, which asserts the (lat,lon) tile is free (the late-revert collision site; see the leak note below). - Sets the QING’s own market rate 1:1 and emits
NewQing(Qing, Integrative, Waat)— args NOT indexed (decode from data words[chain]).
Forbid(Token, Disallow) — permitted to the asset’s classic owner
(owner() == msg.sender) or a MultiOwnable owner (NotOwner otherwise);
note Forbidden(view) returns true for ANY caller holding WITHOUT — the ban
token doubles as a global venue-asset veto on the read path.
Ownership note for creators [src: map.sol:80-87 + 03_qing.sol:30-32]: a
new QING’s owners are CHO, the wrapped asset’s owner (when the asset has
owner()), and later DO.Take adders — NOT the creator. The creator is
auto-staffed instead (_staff[tx.origin]), which covers every bouncer
function (cover charge, staff, guest list, divisor). See the gate map in
qing.md §5.
6. Integration notes
- Wrapping a token: approve nothing —
Newneeds only gas; the QING’s admission economics come from its own bouncer settings. - One-QING-per-asset is global and permanent; a reverted
New(e.g. tile collision inaddToMap) rolls back MAP but NOT CHO’s side: theDedrawn byCho.Luo()stays claimed in CHO’sQumap forever (cross-contract state — a slow leak that complements the 988-creates-vs-917-live delta). - Tile collisions assert — with HECKE’s anisotropy, dense regions make some
Newcalls revert after paying the lottery gas.
7. Provenance
- [src]
domain/map.sol. - [chain] NewQing log scan (917, 22,813,947 → 27,565,448);
qing_callers_sample.json; perimeter.