Skip to content
GORGODEX

Docs

What it is

Paste any Pons coin. Meet the beast it became. Every Pons coin, by contract address, is one creature: its look is fixed by the address, its stats come from that coin's Pons data snapshotted once a day, and creatures of different coins duel. No wallet, no signing, no contract.

Summon

Paste a Robinhood Chain address (0x + 40 hex characters) on the start page, or open /b/<ca>. From the command line: curl https://gorgodex.world/api/beast/<ca>. A coin we have not seen is fetched once from Pons and its numbers are frozen for the UTC day.

Look

The look never depends on data: same CA, same beast, forever. h = keccak256(lowercase CA), 32 bytes. The only override: after launch, the house coin wears Gorgon's art instead of the hashed species.

Byte(s)TraitMapping
h[0]speciesh[0] % 5: 0 Chimerith · 1 Basilith · 2 Stymphal · 3 Scyllan · 4 Minotarch
h[1..2]hue(h[1]<<8 | h[2]) % 360, applied as a hue rotation on the species sheet
h[3]toneh[3] % 3: muted, normal, vivid
h[4]markingh[4] % 4: stripes, spots, runes, plain
h[5]marking density0.2 + (h[5]/255) · 0.6
h[6]eye glowh[6] % 8, eight fixed colours
h[7]accessoryh[7] % 7: none, horn-crown, collar, chain, scar-plate, back-spines, halo
h[8..11]given nameonset + optional second onset + coda from a fixed 40 x 30 syllable table
h[12]egg patternh[12] % 5 (egg stage only)

Every beast page shows the bytes that chose its traits under "Anatomy".

Stats

All stats are log-normalised 0 to 100 so big coins do not win automatically. L(x, cap) = clamp(round(100 · log10(1+x) / log10(1+cap)), 1, 100).

StatSourceFormulaAnchors
HP (vitality)tradeCountL(tradeCount, 20000)1 → 7 · 84 → 45 · 1 000 → 70 · 20 000 → 100
ATK (power)volumeUsd (fallback volumeQuote · quoteUsd)L(volumeUsd, 3 000 000)$11 → 17 · $150 → 34 · $20k → 66 · $3M → 100
DEF (hide)age in daysL(ageDays, 365)1 d → 12 · 7 d → 35 · 30 d → 58 · 1 y → 100
SPD (reflex)idleHoursclamp(100 − 100·log10(1+idleHours)/log10(721), 5, 100)0 h → 100 · 1 h → 89 · 24 h → 51 · 30 d → 5
Rarity (label)marketCapUsd<10k Common · 10k–100k Uncommon · 100k–1M Rare · 1M–10M Epic · ≥10M Mythiccard frame colour, no duel effect
Element (label)stagecurve → Ember (shows progress %) · graduated → Obsidianbadge only

Market cap and price are shown as text from the snapshot but feed no stat, so a beast is not a price feed.

Stages & condition

ageDays = (snapshotAt − createdAt)/86400, idleHours = (snapshotAt − lastTradeAt)/3600. Stage is evaluated top-down:

Condition: awake idle < 72 h; asleep 72 h to 168 h (still duels); petrified ≥ 168 h (duels by hand with SPD near 5; excluded from the arena). An egg that is already idle is a cold egg. A coin that stops trading sleeps, then turns to stone.

Traits

Information, not a verdict. Each tooltip quotes the Pons field.

Duel

Duels are deterministic. Sort the two CAs ascending to get X and Y; seed = keccak256(X + Y + "YYYY-MM-DD"); the PRNG is xorshift128+ seeded from the first 16 seed bytes. The same duel replays identically all day and re-rolls at 00:00 UTC.

Worked example

Recorded Pons data, snapshot of 2026-11-03 09:00 UTC. RHIABLO (HP 69 ATK 74 DEF 24 SPD 93, pool 238) vs DEEP (HP 26 ATK 48 DEF 2 SPD 83, pool 152). Sorted by address, DEEP is X and RHIABLO is Y. Seed f215bca6e2580b3e….

  1. Round 1: RHIABLO hits for 66 (X 86, Y 238)
  2. Round 1: DEEP hits for 34 (X 86, Y 204)
  3. Round 2: RHIABLO hits for 63 (X 23, Y 204)
  4. Round 2: DEEP hits for 35 (X 23, Y 169)
  5. Round 3: RHIABLO crits for 121 (X 0, Y 169)

Result: RHIABLO wins by KO (DEEP 0% left, RHIABLO 71% left).

Arena

Every day the 16 most active coins fight a bracket. Eligible: age ≥ 1 day, idle < 24 h, at least 20 trades, not petrified. Ranked by 24-hour volume (today's volumeUsd minus yesterday's snapshot). Seeding 1v16, 2v15 and so on; each match is a duel with the suffix #arena-r<round>. Draws go to the higher-ranked coin. With fewer than 16 eligible coins the bracket is 8 or 4; with fewer than 4 there is no arena that day. A seed day (no previous snapshot to compare) is ranked by total volume and labelled so. Results are stored once and never recomputed. Snapshot at 00:00 UTC, arena at 00:10 UTC.

Data & snapshots

Pons fields used: createdAt, lastTradeAt, tradeCount, volumeUsd, marketCapUsd, priceUsd, stage, progress, graduatedAt, whitelisted, creatorTaxBps, buybackEnabled, socials, quote.symbol, artwork. One snapshot per coin per UTC day at 00:00 UTC; a coin pasted for the first time gets a day-0 snapshot immediately, frozen for the day. Later fetches the same day never overwrite it. Not available: holder count, live price.

Gorgodex reads the public Pons API with the user agent gorgodex.world/0.1, at most 3 requests per second, one fetch per coin per day.

API

No key. CORS open. Plain JSON. Rate limits apply per IP (120 requests per minute on /api/, 30 per minute on /og/). Index: /api. Agents: llms.txt.

MethodRouteReturns
GET/apiroute list
GET/api/beast/:caone beast: look, stage, condition, stats, rarity, element, traits, source fields
GET/api/beast/:ca/history?days=90daily stat history
GET/api/duel/:a/:b?date=YYYY-MM-DDduel result for a UTC day (default today)
GET/api/arena/todaytoday's bracket and logs
GET/api/arena/:datebracket of a past day
GET/api/arena/history?limit=60champion list
GET/api/dex?species=&stage=&rarity=&condition=&trait=&q=&sort=&cursor=filterable list, 48 per page
GET/api/statslive counters
GET/api/healthservice health
GET/img/beast/:ca.svgthe creature as an SVG
GET/og/beast/:ca.pngshare card (1200x630)
GET/og/duel/:a/:b.pngduel share card
curl https://gorgodex.world/api/beast/0xebaa0ca1a9d178550fb2f9ca4099a292375a403a

Errors: 400 invalid_address, 404 not_pons, 400 same_coin, 429 busy (retryAfterSec), 503 pons_unavailable (retryAfterSec).

Holders

After $GORGON launches, holders can name and frame the beasts of coins they hold (see Token). There is no signature. Anyone who knows a holder's address can set a name on its behalf; names are cosmetic, moderated by a word list, and removed when the balance drops below the minimum.

Privacy

The server stores counts only: no IP, no user agent, no address except what you type into the holder check. The holder check sends the address to our server, which calls the public RPC; nothing else leaves. No cookies, no wallet connection, no transactions are ever sent.

Limits

Gorgodex depends on the Pons API. If it is unreachable, known beasts are served from their last snapshot with stale: true and a banner; new addresses get an honest 503. Share cards are cached per beast per snapshot day.

Not audited

Not audited. Read the formulas before you trust them. No promise of returns.