Skip to content

Instantly share code, notes, and snippets.

@rfikki
Created May 21, 2026 21:47
Show Gist options
  • Select an option

  • Save rfikki/975734194e7240c1e8560fce5cdae2e5 to your computer and use it in GitHub Desktop.

Select an option

Save rfikki/975734194e7240c1e8560fce5cdae2e5 to your computer and use it in GitHub Desktop.
# DinoHook — The Collector's Art Guide
> **CollectibleTrust DAO LLC - A RMI Registered Not-For-Profit · DinoHook Protocol**
> *Your friendly guide to the art, the dinosaurs, the history, and the fun of collecting DinoHook NFTs. No code required.*
---
## Table of Contents
1. [Welcome to DinoHook](#1-welcome-to-dinohook)
2. [The Big Picture — What Makes DinoHook Special](#2-the-big-picture)
3. [Your Dinosaur — A Living Work of Art](#3-your-dinosaur)
4. [The Five Worlds — Biomes and Their Visual Identities](#4-the-five-worlds)
5. [Meet the 24 Dinosaur Species](#5-meet-the-24-dinosaur-species)
6. [Skin Finishes — The Alloy Collection](#6-skin-finishes)
7. [Faces and Features — Eyes, Snouts, and Expressions](#7-faces-and-features)
8. [Swag and Accessories](#8-swag-and-accessories)
9. [Skin Textures — Scales, Fur, Feathers and More](#9-skin-textures)
10. [The 2015 Coin Badges — Wearable History](#10-the-2015-coin-badges)
11. [Special Visual Effects](#11-special-visual-effects)
12. [How Your DinoHook Ages Over Time](#12-how-your-dinohook-ages-over-time)
13. [Rarity — How Rare Is Yours?](#13-rarity)
14. [The Story Behind the 2015 Tokens](#14-the-story-behind-the-2015-tokens)
15. [Collecting Strategy — Simple Tips](#15-collecting-strategy)
16. [DinoHook and Modern NFTs — How It Compares](#16-dinohook-and-modern-nfts)
17. [Frequently Asked Questions](#17-frequently-asked-questions)
18. [Glossary](#18-glossary)
---
## 1. Welcome to DinoHook
You are holding a piece of history.
DinoHook is a collection of **10,000 one-of-a-kind dinosaur NFTs** that are generated directly from trades on the Ethereum blockchain. Every single one is different. Every single one is stored permanently on-chain — meaning the art lives inside the blockchain itself, not on a server somewhere that could go offline.
But DinoHook is not just another NFT collection. It is built on top of four of the oldest surviving tokens on the Ethereum network, all created in 2015 — the year Ethereum was born. Two of those tokens — CurrencyCoin (CC) and Dinero (DINO) — were built by the same pioneering developer, Rocky Fikki (known online as rfikki), who was one of the very first people to deploy a token on Ethereum. Your DinoHook NFT is a living connection to that history.
Every time someone makes a trade on one of the DinoHook pools, a new dinosaur can be born. The dinosaur's appearance — its species, colours, accessories, home world, and rarity — is determined by the unique signature of that trade. No two trades are alike, so no two DinoHooks are alike.
**What you get:**
- A unique, fully on-chain SVG artwork of a dinosaur
- A collectible connected to real 2015 Ethereum history
- A creature that evolves visually the longer you hold it
- The possibility of special effects, rare finishes, and legendary accessories
- Coin badges from four historic 2015 tokens embedded directly in the art
---
## 2. The Big Picture
### Why is this different from other NFTs?
Most NFT collections store their art on IPFS (a distributed file system) or on a regular web server. If that server goes offline, or if the IPFS pin expires, your NFT image disappears. You own the token, but the picture is gone.
DinoHook is different. The entire artwork — every line, colour, texture, and animation — is generated and stored directly inside the Ethereum blockchain as code. There is no server. There is no IPFS. As long as Ethereum exists, your DinoHook looks exactly as it was designed, forever.
### The art is generated, not drawn by hand
There is no fixed set of 10,000 hand-drawn images waiting to be revealed. Instead, a sophisticated art program lives inside the blockchain and assembles each dinosaur from its unique combination of traits the moment someone looks at it. The result is genuine variety — creatures that feel hand-crafted because every combination of species, colour, finish, accessory, and world is unique to that specific token.
### It is connected to real history
The four trading pools that generate DinoHooks are each paired with a different 2015 Ethereum token:
| Pool | 2015 Token | Deployed |
|---|---|---|
| DINO/ETH | Ethereum (ETH) | July 30, 2015 |
| DINO/USDC | USD Coin (stability) | — |
| DINO/CC | CurrencyCoin by rfikki | September 8, 2015 |
| DINO/WMC | Wrapped MistCoin | November 3, 2015 |
| DINO/WAAC | Wrapped AyeAyeCoin | August 20, 2015 |
Your dinosaur's home world (its biome) is permanently determined by which pool it was born from. Mint from the CurrencyCoin pool, your dinosaur lives in the ancient Frontier Ruins. Mint from the AyeAye pool, your dinosaur inhabits the Nocturnal Wilds.
---
## 3. Your Dinosaur — A Living Work of Art
Every DinoHook is an **800 × 1050 pixel SVG image** assembled from layers, exactly like a Photoshop composition — except it is generated by code on the blockchain. Here is what you are looking at when you see your DinoHook:
### The three visual zones
**Zone 1 — The scene (top 75% of the image)**
This is where your dinosaur lives. It shows the dinosaur body against its biome background, with all accessories, effects, and overlays. The background is specific to the biome — lava sparks for Volcanic, an architectural grid for Standard Origin, bioluminescent fireflies for the Nocturnal Wilds, crystal formations for the Crystal Vault, ancient stone arches for the Frontier Ruins.
**Zone 2 — The badge panel (below the body)**
A dedicated strip below the dinosaur body where the 2015 collectible coin badges are displayed. Badges never overlap the dinosaur itself — they sit in their own space, clearly visible. You can have 0, 1, 2, 3, or all 4 badges. The more badges you have, the rarer your DinoHook.
**Zone 3 — The classification label (bottom strip)**
A monospace label strip showing your dinosaur's species, token number, biome, finish, rarity score, and the DinoHook protocol identifier. Styled like a museum specimen card or a scientific classification tag.
### The art is animated
Many DinoHook SVGs contain subtle animations built directly into the artwork:
- **Lava sparks** drift upward in Volcanic biome backgrounds
- **Fireflies** pulse in and out in the Nocturnal Wilds
- **TWAP aura rings** pulse slowly when the market price is high
- **Laser eyes** flicker when present
- **Smoke puffs** drift upward from cigarettes and pipes
- **Flame crowns** flicker with a living ember effect
These are not GIF-style pixel animations — they are SVG animations defined in code, smooth and scalable at any size.
---
## 4. The Five Worlds
Every DinoHook is born into one of five biomes, permanently. Your dinosaur's background artwork — the world it inhabits — is one of the most visually distinctive parts of the collection.
---
### 🌋 The Primordial Forge
*Born from the DINO/ETH pool*
The oldest pool. ETH itself launched on July 30, 2015 — the day Ethereum was born. DINOs from this pool carry the mark of genesis.
**Visual identity:** Deep red-black with a radial lava glow that pulses from the centre. Two animated lava spark particles drift upward from the ground. The feeling is volcanic, primordial, electric.
**Colour palette:** Near-black red `#140502`, ember orange radial glow, animated sparks in deep orange and fire red.
**The vibe:** The origin of everything. Raw power. The dawn of blockchain.
---
### 💎 The Crystal Vault
*Born from the DINO/USDC pool*
Stability, precision, permanence. USDC is the stable coin — it never crashes, never moons. DinoHooks born here are crystalline and cold.
**Visual identity:** Deep blue-black with geometric crystal spire formations rising from the bottom corners. Three faint white light shafts descend from above, as if illuminating the vault floor. No animation — deliberately still.
**Colour palette:** Near-black navy `#050514`, crystal spires in dark indigo, cold white light shafts at very low opacity.
**The vibe:** A frozen underground vault. Silent, preserved, eternal. The feeling of something kept perfectly safe for a very long time.
---
### 🏛 The Frontier Ruins
*Born from the DINO/CC pool*
CurrencyCoin was deployed on **September 8, 2015** by rfikki — just 40 days after Ethereum launched. It was built from Vitalik Buterin's own currency.sol code and helped inspire the ERC-20 standard. DinoHooks from this pool walk among the first smart contracts ever written.
**Visual identity:** Dark purple-black with broken stone arches on the left and right. The walls are etched with actual early Ethereum bytecode: `60806040526004361061003f...` and `function transfer(address to, uint256 value)` — real fragments of the 2015 contract code, rendered in faint purple monospace text. A darker floor layer adds depth.
**Colour palette:** Near-black purple `#0d0820`, stone arches in deep violet, wall etchings in faint `#2a1a40`.
**The vibe:** Walking through the ruins of the first token economy. Archaeological. Ancient. Earned.
---
### ⚗️ The Standard Origin
*Born from the DINO/WMC pool*
MistCoin launched on **November 3, 2015** and directly led to the ERC-20 standard — the system that every token on Ethereum uses today. This biome is a tribute to that blueprint.
**Visual identity:** Dark blueprint blue with a precise orthogonal grid of thin lines covering the entire background — like an architect's technical drawing. Schematic annotation lines point to body parts with labels: "ERC-20 origin", "balanceOf()". The look is a working draft, a schematic, a plan in progress.
**Colour palette:** Dark blueprint navy `#001830`, grid lines in deep blue `#003366`, annotation text in `#0066aa`.
**The vibe:** The laboratory where the standard was being invented. Precise, methodical, foundational.
---
### 🦎 The Nocturnal Wilds
*Born from the DINO/WAAC pool*
AyeAyeCoin was the **very first memecoin on Ethereum**, deployed on **August 20, 2015** — just 21 days after launch. Named after the aye-aye, a rare nocturnal lemur with enormous eyes, it sat dormant for nearly nine years before being rediscovered in 2024. DinoHooks from this pool are night creatures, survivors.
**Visual identity:** Near-black dark green with a dense canopy silhouette cutting across the very top of the image. Two pairs of amber aye-aye eyes glow softly from the far left and far right shadows — always watching. Five animated firefly particles pulse in and out across the scene at different intervals, creating a genuinely alive, breathing jungle atmosphere.
**Colour palette:** Near-black green `#030904`, canopy in near-pure black, aye-aye eyes in amber `#ff9900`, fireflies in neon green `#39ff14` and lime `#88ff44`.
**The vibe:** You are being watched. The jungle is alive. Nine years of waiting, then suddenly everywhere.
---
## 5. Meet the 24 Dinosaur Species
DinoHook features 24 distinct dinosaur genera drawn from real palaeontology, divided into three anatomical groups. Each group has a different skeletal geometry in the SVG artwork.
### 🦖 Theropods — Bipedal predators (6 species)
These are the iconic upright hunters with powerful hind legs, tiny arms, and dramatic skulls. Their SVG silhouette is a bipedal shape with a large swept-back head.
| Species | Famous for |
|---|---|
| **Tyrannosaurus** | The apex predator. Largest skull, white tooth detail, laser-eye eligible |
| **Spinosaurus** | The sail-backed giant. Unique dorsal sail ornament in art |
| **Velociraptor** | Small, fast, clever. Slit-pupil eyes default |
| **Allosaurus** | Mid-size predator. Classic bipedal silhouette |
| **Carnotaurus** | Bull-horned carnivore. Horn ornament in art |
| **Dilophosaurus** | Double-crested hunter. Crest ridge detail |
**Rarity note:** Theropods have the highest chance of rolling the rare **PLASMA_GLOW** finish (purple neon), making them among the most visually dramatic when rare.
---
### 🦕 Sauropods — Long-neck giants (6 species)
The great long-necked herbivores. Their SVG silhouette features a large elliptical body, a long curving neck, and a smaller head at the top. The most visually elegant body type.
| Species | Famous for |
|---|---|
| **Brachiosaurus** | The towering giant. Tallest neck in the group |
| **Diplodocus** | Long and low. Distinctive whip-tail |
| **Apatosaurus** | Massive and powerful |
| **Titanosaurus** | The armoured giant |
| **Argentinosaurus** | Largest dinosaur ever. Heavy silhouette |
| **Camarasaurus** | Box-headed, robust |
**Rarity note:** Sauropods have the only path to the **GOLD** finish (the rarest at 0.5% probability) — making a Gold Sauropod the single rarest natural mint in the collection.
---
### 🛡 Armoured, Horned and Ornithopods (12 species)
The diverse herbivore group. Their SVG body is a low, wide armoured rectangle — suggesting bulk and defence.
| Species | Notable ornament |
|---|---|
| **Ankylosaurus** | Club tail, back plates |
| **Stegosaurus** | Back plates + tail spikes |
| **Kentrosaurus** | Spikes along entire back |
| **Nodosaurus** | Heavy armour, no club |
| **Scelidosaurus** | Early armoured form |
| **Miragaia** | Long-necked stegosaur |
| **Triceratops** | Three horns, large frill |
| **Pachycephalosaurus** | Dome skull |
| **Parasaurolophus** | Curved tube crest |
| **Iguanodon** | Thumb spike |
| **Maiasaura** | The caring mother |
| **Protoceratops** | Small ancestral ceratopsian |
**Rarity note:** This group has the path to the **MULTICOLORED** finish (rainbow gradient across the entire body) at 1% probability — visually the most striking finish in the collection.
---
## 6. Skin Finishes — The Alloy Collection
Your dinosaur's skin finish is the most visually dominant trait. There are 12 finishes ranging from natural to legendary. Think of these like material treatments — chrome, gold, carbon fibre, neon — applied to the entire body silhouette.
### Common finishes
**NONE** — The natural finish. Dark forest green `#3a4f3c` with a subtle dark stroke. Honest, earthy, authentic. 90% of Theropods and 92% of Armoured group mint with this finish.
**WOOD** — A warm brown `#5c3a21` with an SVG turbulence displacement filter applied, creating a genuine wood-grain texture that warps the body surface. 95% of Sauropods.
**CHROME** — Silver metallic `#c0c0c0` with a grey stroke. Clean, reflective, modern. Available on Sauropods at 4.5%.
**ANODIZED** — Steel blue `#4a90d9` with a darker blue stroke. Industrial cool.
### Rare finishes
**CARBON** — Near-black `#1a1a1a` with a dark grey stroke. Stealth, high-tech, serious. 8% of Theropods. *Note: carbon bodies on dark biome backgrounds use an automatic adaptive contrast system — the biome background shifts to ensure the body remains clearly visible.*
**BRICK** — A tiled brick pattern fill using an SVG `<pattern>` element. Deep red bricks with dark mortar. 7% of Armoured group.
**FLUORESCENT** — Cyan neon `#00ffcc` with a white stroke and neon glow filter applied. Glows visibly. 5% range.
**BLUESCREEN** — Near-black `#111` with a bright green terminal-text border stroke. The aesthetic of a 1990s computer monitor or hacker terminal. 5% range.
### Legendary finishes
**PLASMA_GLOW** — Deep purple `#9b00ff` with a violet stroke and neon glow filter. The body glows. 2.5% of Theropods (slightly more from Primordial Forge due to the rarity bonus).
**GOLD** — A five-stop linear gradient from antique gold through bright yellow-gold and back. Authentic gold foil appearance. 0.5% of Sauropods only. The rarest natural finish.
**TRANSPARENT** — White fill at 12% opacity with a white dashed stroke. The dinosaur appears as a ghost, barely visible — more silhouette than substance. 2× more likely from the Crystal Vault. Visually extraordinary.
**MULTICOLORED** — A full horizontal gradient: hot pink → teal → golden yellow → hot pink. The entire body shifts through the rainbow. 1% of Armoured group. The most visually vibrant finish in the collection.
### Post-mint finish upgrades
Any finish — including GOLD, MULTICOLORED, and TRANSPARENT — can be applied to your DinoHook after minting by trading in a DinoHook pool with special instructions in your trade. This is called a **Cybernetic Graft**. It also permanently adds a cyan ring overlay to your dinosaur's body.
---
## 7. Faces and Features
### Eyes — Six types
Eyes are one of the most expressive features of any DinoHook. Each eye is drawn as multiple concentric layers for genuine depth: an outer sclera ring, a coloured iris, a dark pupil, and a small white specular dot offset slightly up and right — the detail that makes eyes look wet and alive.
| Eye type | Appearance | Rarity |
|---|---|---|
| **Round** | Classic circular iris, green or amber | Common |
| **Slit pupil** | Reptilian vertical slit, deep purple iris | Uncommon |
| **Compound** | Three overlapping circles like an insect eye | Rare |
| **Glowing red** | Red iris with an animated pulsing outer ring | Rare |
| **Laser beam** | Red iris with an animated laser line firing from the pupil | Legendary |
| **Heterochromia** | Two different coloured irises — one blue, one amber | Legendary |
**Nocturnal Wilds bonus:** Every DinoHook born in the Nocturnal Wilds gets Compound eyes as a minimum, honouring the aye-aye's famous enormous eyes. Glowing Red eyes are 3× more likely in the Wilds than anywhere else.
### Nose and snout
The snout style is defined by the genus. Theropods have dramatic long skulls with visible white teeth. Triceratops have horns rendered as separate SVG paths. Parasaurolophus has its famous curved hollow tube crest. Spinosaurus has its distinctive spine sail. Each genus has at least one unique ornamental detail in the art that you will not find on any other group.
---
## 8. Swag and Accessories
This is where DinoHook gets fun. Every dinosaur can carry a full set of accessories, rendered in the correct z-order so headgear sits above the skull, eyewear sits over the eyes, and footwear sits below the body.
### Headgear (7 options)
| Item | Look | Rarity |
|---|---|---|
| **None** | Just the natural crest or skull | Common |
| **Backwards cap** | Dark fitted cap with brim at the back | Common |
| **Cowboy hat** | Wide-brimmed tan hat with a band | Uncommon |
| **Top hat** | Tall black Victorian hat with a gold band | Rare |
| **Crown** | Gold triangular crown with a gem at the peak | Rare |
| **Frog hat** | Reserved — distinctive novelty | Rare |
| **Flame crown** | An orange flame-shaped crown with an **animated** flickering central gem | Legendary |
### Eyewear (6 options)
| Item | Look | Rarity |
|---|---|---|
| **None** | Natural eyes | Common |
| **Round frames** | Gold wire round glasses | Uncommon |
| **Aviators** | Classic rectangular metal frames | Uncommon |
| **Monocle** | Single gold circle with a hanging chain | Rare |
| **VR visor** | A wide sci-fi visor with coloured display panels | Rare |
| **3D glasses** | Red left lens, blue right lens | Legendary |
### Mouth accessories (6 options)
| Item | Look | Rarity |
|---|---|---|
| **None** | Natural mouth | Common |
| **Cigarette** | White cylinder at the mouth corner with **animated smoke puffs** | Uncommon |
| **Smoking pipe** | A classic curved pipe with **animated smoke puffs** | Rare |
| **Cigar** | A thick rolled cigar | Rare |
| **Lollipop** | A pink candy circle on a stick | Legendary |
| **Toothpick** | Casually dangled at the corner | Legendary |
### Body gear (6 options)
| Item | Look | Rarity |
|---|---|---|
| **None** | Natural body | Common |
| **Hoodie** | A casual pullover | Common |
| **Chain necklace** | A gold chain shown as a dashed arc across the chest | Uncommon |
| **Battle armour** | Protective plate segments | Rare |
| **Tuxedo vest** | Formal black vest | Rare |
| **Space suit** | A full pressurised suit | Legendary |
### Footwear (5 options)
| Item | Look | Rarity |
|---|---|---|
| **Bare claws** | Natural scaled feet | Common |
| **Sneakers** | Red sneakers with a white stripe detail | Uncommon |
| **Boots** | Solid boots | Uncommon |
| **Rocket boosters** | Jet-powered foot attachments | Legendary |
| **Roller skates** | Four-wheel skates | Legendary |
### Wrist accessories (5 options)
| Item | Look | Rarity |
|---|---|---|
| **None** | Natural arms | Common |
| **Watch** | A small watch face on the wrist | Uncommon |
| **Gold bracelet** | A gold banded bracelet | Rare |
| **Hologram band** | A rainbow-gradient glowing band | Legendary |
| **Spiked cuff** | A studded punk cuff | Rare |
---
## 9. Skin Textures
Layered over the body fill, skin textures are drawn as individual strokes, curves, and polygon shapes that give the dinosaur a physical surface quality. There are six texture types.
**BALD** — No texture overlay. The finish colour reads cleanly. Best for showing off metallic or rainbow finishes.
**SCALY** — Short diagonal stroke lines running across the body surface at regular intervals in a slightly lighter shade of the body colour. Subtle but adds genuine depth.
**FEATHERED** — Curved `<path>` elements along the dorsal edge, each representing an individual feather quill. Drawn in a complementary colour with slightly varied opacity. Gives the dinosaur a flowing, organic quality.
**BRISTLE_FUR** — Short, slightly randomised stroke lines at various angles across the entire body surface. Each strand is derived from the token's unique random seed, so every furry DinoHook has a genuinely different coat pattern.
**FULL_FUR** — A denser, longer version of bristle fur extending across the full body and neck. The strands are drawn in the same palette as the body finish — purple fur for plasma glow, amber fur for NONE finish, teal for fluorescent.
**CRYSTAL_SPINES** — Six amber-gold triangular polygon spines running along the dorsal ridge. Each spine has a lighter highlight facet on the leading face, giving them a cut-gemstone look. The amber-gold colour `#f0c040` was specifically chosen to contrast clearly against all five biome backgrounds and against the coral-orange DinoHook logo palette.
---
## 10. The 2015 Coin Badges — Wearable History
The coin badges are the most historically significant feature of the collection. They sit in the dedicated badge panel below the dinosaur body — never overlapping the creature itself — displayed as circular medallions with each coin's name and a subtle inner ring.
Think of them as medals, patches, or pins — visible proof of your connection to specific pieces of Ethereum history.
### WAAC — Wrapped AyeAyeCoin
**Gold circle** · Deployed August 20, 2015
The first memecoin on Ethereum. The aye-aye is a rare nocturnal lemur from Madagascar. The coin slept in a digital faucet for nearly nine years before being rediscovered in 2024, triggering one of the most remarkable rushes in Ethereum history. If your DinoHook was born in the Nocturnal Wilds, you have this badge. The aye-aye eyes in the background art are watching you.
**Visual:** Gold foil radial gradient `#bf953f → #fcf6ba`. WAAC text in dark brown. A quiet inner ring at low opacity.
### WMC — Wrapped MistCoin
**Steel blue circle** · Deployed November 3, 2015
The prototype that directly led to ERC-20 — the standard that powers every token on Ethereum. Fabian Vogelsteller and Alex Van de Sande deployed MistCoin as a demonstration. Sixteen days later, ERC-20 was proposed. The WMC liquidity is locked until 2115 — a 100-year commitment. DinoHooks born in the Standard Origin carry this badge.
**Visual:** Steel blue `#1a4a80` with light blue stroke `#85b7eb`. WMC text in white.
### CC — CurrencyCoin
**Plasma purple circle** · Deployed September 8, 2015
Deployed by rfikki just 40 days after Ethereum launched, using Vitalik Buterin's own currency.sol code. The EIP-20 standard proposal explicitly cites this contract. One of the rarest badges — only guaranteed if you mint in the Frontier Ruins, or achieved by a very high rarity roll. DinoHooks with the CC badge carry a piece of the oldest token contract in the ecosystem.
**Visual:** Deep purple `#2a0060` with violet neon glow stroke `#cc88ff`. CC text in white. Has a subtle neon glow filter — the purple version of the plasma glow body finish.
### DINO — Wrapped Dinero 2015
**Neon green circle** · Deployed December 10, 2015
Also deployed by rfikki — 93 days after CurrencyCoin. Legacy Dinero is the protocol token of DinoHook itself and the most personally meaningful badge: you can only earn it by holding original 2015 Dinero tokens in your wallet at the moment of minting. It cannot be bought on the secondary market as a badge — it is already permanently attached to its DinoHook NFT. A credential of genuine 2015 community membership.
**Visual:** Dark green `#002200` with bright neon green border `#39ff14`. DINO text in neon green. The only badge where the text glows rather than being muted.
### The full set — all four badges together
When all four badges are present, the badge panel displays a dashed gold outer ring encircling all four coins, and thin connecting lines run between each badge. This configuration — WAAC + WMC + CC + DINO together — is statistically the rarest combination achievable in the entire collection. Every major NFT rarity platform will surface it as an exceptional find.
---
## 11. Special Visual Effects
Beyond the standard body, accessories, and biome, three special effects can appear on your DinoHook under specific conditions.
### ⚡ The Cybernetic Ring
A solid cyan circle `#00f5d4` at the body centre with a larger, semi-transparent outer ring. Applied when a Cybernetic Graft has been performed on the NFT through a swap. Once applied it is permanent and visible in all marketplace images.
**What it means:** The holder actively chose to upgrade this DinoHook's appearance through a real on-chain trade. It marks the token as having been engaged with directly — not just minted and held.
### 🔮 The TWAP Aura
Two concentric purple rings `#a78bfa` that slowly pulse in and out — growing slightly larger then returning, over a 2.5 second cycle, indefinitely. Appears when the live DINO/ETH price on the Chainlink oracle exceeds a threshold set by the community.
**What it means:** The market is active. Your DinoHook glows when DINO is performing well. It fades when the price drops below the threshold. It is the only feature in the collection that reflects live market conditions in real-time art.
### ☠️ The Extinct Mark
A large red diagonal cross — two lines from corner to corner — overlaid on the entire body, with the word **EXTINCT** in large red bold text across the centre. Appears on DinoHooks whose holders failed to make a single trade during a community survival epoch.
**What it means:** Historically significant. Extinct DinoHooks are permanent records of specific epoch periods. They are not removed from wallets — they remain yours, but they carry this permanent visual mark. Some collectors specifically seek out extinct DinoHooks as historical artefacts.
---
## 12. How Your DinoHook Ages Over Time
Every DinoHook has an **Age Bracket** that changes automatically based on how long you have held it in the same wallet — no action required, no gas, no transactions. Every time a marketplace or wallet displays your DinoHook, the art engine recalculates your current age bracket and renders the appropriate appearance.
### Age stages
| Stage | Hold time | What it represents |
|---|---|---|
| **Hatchling** 🥚 | 0–29 days | Freshly minted, full of potential |
| **Juvenile** 🦎 | 30 days to 3 months | Coming into its own |
| **Predator** 🦖 | 3 to 6 months | Prime condition, battle-ready |
| **Elder** 🌿 | 6 months to 1 year | Weathered, experienced, commanding |
| **Chrono-Titan** ⚡ | 1+ year (most biomes) | Full legendary status |
### The special case — Nocturnal Wilds
DinoHooks born in the Nocturnal Wilds honour the nine-year dormancy of AyeAyeCoin's faucet. They require **nine continuous years** of holding to reach Chrono-Titan status. This is the only path to Chrono-Titan that takes this long — and the visual markers at nine years specifically reference the story of the 2024 rediscovery.
### Important: transfers reset the clock
If you sell or transfer your DinoHook to another wallet — even one you control — the aging clock resets to zero. Listing for sale without completing a transfer does not reset it. The Chrono-Titan mark is earned by genuine long-term commitment in one wallet.
---
## 13. Rarity
### How rare is your DinoHook?
Every DinoHook has a **Rarity Score from 0 to 100** calculated at mint and stored permanently in the artwork. A score of 100 is the rarest possible natural mint outcome.
### The three rarity tiers at mint
**Common (scores 10–25)** — The vast majority of DinoHooks fall here. They have natural or wood finishes and form the foundation of the collection. Common does not mean uninteresting — accessories, eye type, skin texture, biome, and badges all add distinction that rarity score alone does not capture.
**Rare (scores 60–80)** — About 5–10% of the collection. These feature CARBON, CHROME, or BRICK finishes and strong accessory combinations.
**Legendary (scores 95–100)** — Fewer than 3% of the collection. PLASMA_GLOW Theropods, CHROME Sauropods, MULTICOLORED Armoured, and the single rarest outcome — GOLD Sauropod at 0.5%.
### What makes a DinoHook valuable beyond rarity score?
The rarity score measures the mint outcome. But several things add value beyond that number:
- **All four coin badges** — crosses four rarity conditions simultaneously
- **Chrono-Titan age** — proof of one year (or nine years in the Wilds) of commitment
- **Extinct status** — historically unique; proves a specific epoch was survived or not
- **Cybernetic graft** — shows active engagement with the protocol
- **Full set of legendary accessories** — flame crown + 3D glasses + pipe + space suit + hologram band
- **Crystal Spines texture + TRANSPARENT finish** — the ghost-spine combination, visually extraordinary
### Can I improve my DinoHook after minting?
Yes. Two things can be improved:
1. **Skin finish** — changed by performing a Cybernetic Graft through a trade (also permanently adds the cyan ring)
2. **Tail shape and mouth type** — changed by paying a small mutation fee directly to the protocol
Everything else — species, biome, eyes, skin texture, headgear, footwear, and badges — is set at mint and permanent.
---
## 14. The Story Behind the 2015 Tokens
Understanding the history behind the coin badges makes them far more meaningful. Here is the short version.
### The year Ethereum was born — 1915 🦕
*(Not really 1915 — but 2015 might as well be prehistoric in crypto terms.)*
Ethereum went live on **July 30, 2015**. The blockchain had no smart contract ecosystem, no DeFi, no NFTs, no standards for anything. Just a blank platform and a handful of developers willing to explore it.
### rfikki — the pioneer behind both CC and DINO
Within three weeks of Ethereum's launch, a developer called **Rocky Fikki** — known online as rfikki — was already deploying token contracts. He would go on to deploy two of the tokens that form the core of DinoHook:
**CurrencyCoin (CC) — September 8, 2015**
rfikki took Vitalik Buterin's own `currency.sol` code, which Vitalik had committed to GitHub just two days earlier, hardened it, and deployed it to the Ethereum mainnet. No standard existed yet. He was building by intuition. The EIP-20 proposal that later became the ERC-20 standard officially cites the repository rfikki's code came from.
**Dinero 2015 (DINO) — December 10, 2015**
93 days after CurrencyCoin, rfikki deployed Dinero using the same Mist Browser code philosophy — minimal, honest, permanent. By this time, MistCoin had already been deployed by Fabian Vogelsteller (November 3) and ERC-20 had been proposed. rfikki had been building token contracts for over three months before the standard he helped inspire existed.
### WMC — the prototype that became ERC-20
**MistCoin (WMC) — November 3, 2015**
Fabian Vogelsteller and Alex Van de Sande deployed MistCoin as a demonstration of what a standardised Ethereum token could look like. Sixteen days later, Vitalik and Fabian proposed EIP-20. Today, USDC, UNI, LINK, DAI, and every other major token on Ethereum traces its technical lineage to this November 2015 experiment. The WMC liquidity is locked until 2115 — symbolically, they meant it to last.
### WAAC — the sleeping memecoin that woke up after nine years
**AyeAyeCoin (WAAC) — August 20, 2015**
The first memecoin ever deployed on Ethereum. Named for the aye-aye, a nocturnal Madagascan lemur with enormous eyes. The entire coin supply sat in an untouched faucet for nearly nine years. In May 2024, someone posted about it, and within three days the faucet contract became one of the biggest gas consumers on Ethereum as people raced to claim a piece of history. The Nocturnal Wilds biome and the firefly art are entirely about this story.
### Why this matters for your DinoHook
Your DinoHook's badge panel is a tiny museum. When you display it, you are showing which of these four stories your token is connected to. The CC badge says: this token carries the mark of rfikki's first 2015 deployment, code that helped build the ERC-20 standard. The DINO badge says: this holder found the original 2015 Dinero tokens and held them. The WAAC badge says: this dinosaur was born in the jungle of the first Ethereum memecoin. The WMC badge says: this token honours the blueprint that built the entire token economy.
---
## 15. Collecting Strategy — Simple Tips
You do not need to understand smart contracts to collect DinoHooks well. Here are the key things to know:
### Choose your pool for your badge
Each of the three coin pools guarantees a badge at mint:
- Mint from **DINO/CC** → guaranteed CC badge (Frontier Ruins biome)
- Mint from **DINO/WMC** → guaranteed WMC badge (Standard Origin biome)
- Mint from **DINO/WAAC** → guaranteed WAAC badge (Nocturnal Wilds biome)
- Hold legacy Dinero before minting → DINO badge (any pool)
If you want the rarest badges, plan which pool you mint from.
### DINO/ETH is the best pool for high rarity scores
The Primordial Forge gives a small rarity bonus to every mint. If your goal is the highest possible rarity score and legendary finishes, the DINO/ETH pool is your best chance.
### Do not transfer if you are aiming for Chrono-Titan
Every wallet transfer resets the aging clock to zero. If you move your DinoHook to a new wallet — even your own hardware wallet — you start again. Decide where you want to hold it permanently before the clock gets too far along.
### Badges cannot be added after mint
The four 2015 coin badges are set at the moment of minting and cannot be changed. If you want a specific badge on your DinoHook, you need to either (a) mint in the right pool, or (b) get very lucky with the rarity roll.
### The full four-badge set is genuinely extraordinary
A DinoHook with all four badges — WAAC + WMC + CC + DINO — requires holding legacy Dinero at mint AND a very high rarity roll AND (optionally) minting in the right pool. These will be among the rarest and most sought-after tokens in the collection.
---
## 16. DinoHook and Modern NFTs — How It Compares
For collectors familiar with CryptoPunks, BAYC, or Art Blocks, here is how DinoHook fits in.
| Feature | CryptoPunks / BAYC | Art Blocks | **DinoHook** |
|---|---|---|---|
| Art storage | Off-chain (IPFS or server) | On-chain (some series) | **Fully on-chain** |
| Art generation | Pre-generated, fixed | Algorithm at mint | **Algorithm on every view** |
| Number of traits | 5–7 | Varies | **28 distinct traits** |
| Animated art | No | Some series | **Yes — biome weather, effects** |
| Historical connection | Brand/community | Artist/series | **2015 Ethereum history** |
| Art evolves after mint | No | No | **Yes — ages over time** |
| DeFi integration | No | No | **Yes — swap-triggered mutations** |
| Badge system | No | No | **Yes — wearable coin history** |
### The CryptoPunks comparison
Like CryptoPunks, DinoHook has a defined set of trait categories and a rarity hierarchy built into those categories. But DinoHook has 28 traits vs Punks' ~7, includes animation, and the art evolves after mint — none of which Punks does.
### The Art Blocks comparison
Like Art Blocks generative series, DinoHook's art is algorithm-generated at the time of viewing. But Art Blocks art is typically static after minting — it does not change based on how long you hold or what you do on-chain. DinoHook's art is genuinely dynamic.
### What is unique to DinoHook
The combination of on-chain animated SVG art, historical 2015 token badges, swap-triggered mutations, aging-over-time, and a biome system connected to real token history does not exist in any other collection. DinoHook is not inspired by other NFT projects — it is inspired by Ethereum's own history.
---
## 17. Frequently Asked Questions
**Q: Do I need any cryptocurrency knowledge to enjoy DinoHook?**
A: You need an Ethereum wallet (MetaMask or similar) and enough ETH to mint. The rest is collecting. The technical details are handled by the protocol automatically.
**Q: Can I see my DinoHook on OpenSea or other marketplaces?**
A: Yes. DinoHook is fully compatible with all major NFT marketplaces. The artwork renders from the blockchain, so it looks perfect on every platform without any "refresh metadata" issues for most traits. (Age Bracket may occasionally need a manual refresh on some platforms, since it changes dynamically.)
**Q: Will my DinoHook ever disappear or break?**
A: No. The art is stored directly on the Ethereum blockchain — not on a server, not on IPFS. As long as Ethereum exists, your DinoHook's art exists exactly as it was generated.
**Q: Can my DinoHook lose value from battles?**
A: Battles only change your dinosaur's win/loss counters on-chain. Your NFT is never taken, burned, or damaged by a battle outcome.
**Q: What is the rarest DinoHook possible?**
A: A GOLD Sauropod (0.5% roll) with all four coin badges (WAAC + WMC + CC + DINO), a full set of legendary accessories (flame crown, 3D glasses, pipe, space suit, hologram band), Crystal Spines skin texture, Chrono-Titan age, and the Cybernetic Graft applied. The statistical probability of all these appearing together is extraordinarily small.
**Q: What happens to an Extinct DinoHook?**
A: The Extinct stamp appears permanently on the SVG. The token remains in your wallet. You can still sell it. Some collectors specifically seek extinct tokens as historical artefacts from specific community epochs.
**Q: Can I customise my DinoHook after minting?**
A: Yes — you can change the skin finish (via a Cybernetic Graft through a swap), and the tail shape and mouth type (via a small mutation fee). Everything else is permanent.
**Q: How many DinoHooks will ever exist?**
A: A maximum of **10,000**. The supply is hard-capped at the contract level. Once 10,000 are minted, no more can ever be created.
---
## 18. Glossary
**Biome** — The permanent home world of your DinoHook. Determined at mint by which trading pool you chose. Defines the SVG background art.
**Chrono-Titan** — The legendary age bracket reached after holding your DinoHook in one wallet for 1 continuous year (or 9 years in the Nocturnal Wilds).
**Coin badge** — One of the four circular medallions in the badge panel, each representing a historic 2015 Ethereum token: WAAC, WMC, CC, or DINO.
**Cybernetic Graft** — An upgrade applied to your DinoHook's skin finish through a trade in a DinoHook pool. Adds the cyan ring effect and changes the finish permanently.
**Epoch** — A community event period (typically 6 months) during which you must make at least one trade to prove your DinoHook is "alive." Failing to survive an epoch may result in the Extinct mark.
**Extinct** — A permanent visual overlay (red diagonal cross + EXTINCT text) applied to DinoHooks whose holders did not participate in a survival epoch. Historically significant.
**Finish** — The material treatment of your dinosaur's skin. 12 options from natural green through chrome, gold, carbon, transparent, and multicolored.
**Genus** — Your dinosaur's species. 24 options across three anatomical groups: Theropods, Sauropods, and Armoured/Horned/Ornithopods.
**On-chain** — Stored directly inside the Ethereum blockchain, not on an external server. DinoHook art is fully on-chain.
**rfikki** — Rocky Fikki, the pioneering Ethereum developer who deployed both CurrencyCoin (Sep 8, 2015) and Dinero 2015 (Dec 10, 2015).
**Rarity Score** — A number from 0 to 100 assigned at mint, reflecting how rare your dinosaur's finish and genus combination is.
**SVG** — Scalable Vector Graphics. A format where the image is defined as instructions rather than pixels — meaning it is infinitely scalable and can contain animations and interactions. DinoHook uses SVG for all artwork.
**Trait** — Any individual characteristic of your DinoHook: species, finish, eye type, headgear, etc. DinoHook has 28 traits.
**TWAP Aura** — The pulsing purple ring effect that appears on DinoHooks when the live DINO/ETH price is above a community-set threshold.
**Wrapped** — A 2015 Ethereum token that has been converted into a modern ERC-20 format for compatibility with current wallets and DeFi protocols. All four 2015 DinoHook tokens have wrapped versions.
---
*DinoHook — CollectibleTrust DAO LLC - A RMI Registered Not-For-Profit*
*For full technical documentation including smart contract details, gas optimisation, and security architecture, see DINO_END_USER_TECHNICAL_GUIDE.md*
---
> ⚠️ **This is Unaudited Code — Use at your own risk.**
>
> The DinoHook smart contracts have not undergone a formal third-party security audit. All contract interactions are final and irreversible on the Ethereum blockchain. Do not interact with any contract unless you have independently verified its address through official governance channels. CollectibleTrust DAO LLC - A RMI Registered Not-For-Profit makes no warranties, express or implied, regarding the security, correctness, or fitness for purpose of this code. Always do your own research.
---
## Visual Gallery — DinoHook Art Examples
> *All images below are rendered directly from the same SVG code that runs inside the DinoHook smart contracts. What you see here is exactly what you own.*
---
### Gallery 1 — The Five Biomes
Five worlds, five moods. Every DinoHook is born into one permanently.
<table><tr>
<td align="center" width="20%">
**🌋 Primordial Forge**
<svg viewBox="0 0 180 200" xmlns="http://www.w3.org/2000/svg" width="160">
<defs>
<radialGradient id="lv1" cx="50%" cy="50%" r="50%"><stop offset="0%" stop-color="#ff4500" stop-opacity=".28"/><stop offset="100%" stop-color="#000" stop-opacity="0"/></radialGradient>
<filter id="pla"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="140" y="30" z="120"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter>
<linearGradient id="gfx" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
</defs>
<rect width="180" height="200" fill="#140502"/><circle cx="90" cy="100" r="90" fill="url(#lv1)"/>
<ellipse cx="90" cy="165" rx="55" ry="10" fill="#000" opacity=".4"/>
<g filter="url(#pla)">
<ellipse cx="86" cy="120" rx="44" ry="30" fill="url(#gfx)"/>
<path d="M116 106 C136 72,130 20,120 14 C112 14,115 52,106 98Z" fill="url(#gfx)"/>
<path d="M58 112 Q18 98 12 48 Q20 42 64 106Z" fill="url(#gfx)"/>
</g>
<circle cx="22" cy="172" r="2" fill="#ff4500" opacity=".7"><animate attributeName="cy" values="172;152;172" dur="1.3s" repeatCount="indefinite"/><animate attributeName="opacity" values=".7;0;.7" dur="1.3s" repeatCount="indefinite"/></circle>
<circle cx="155" cy="180" r="1.5" fill="#ff6a00" opacity=".5"><animate attributeName="cy" values="180;158;180" dur="1.9s" repeatCount="indefinite"/><animate attributeName="opacity" values=".5;0;.5" dur="1.9s" repeatCount="indefinite"/></circle>
<text x="6" y="196" fill="#39ff14" font-family="monospace" font-size="6">DINO/ETH · VOLCANIC</text>
</svg>
*Lava glow · Gold Sauropod · Forge birth*
</td>
<td align="center" width="20%">
**💎 Crystal Vault**
<svg viewBox="0 0 180 200" xmlns="http://www.w3.org/2000/svg" width="160">
<defs>
<filter id="cvl"><feDiffuseLighting result="l" lighting-color="#aaccff" surfaceScale="4"><fePointLight x="40" y="25" z="140"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="180" height="200" fill="#050514"/>
<polygon points="18,200 24,158 30,200" fill="#1a1a44" stroke="#3333aa" stroke-width="1"/>
<polygon points="32,200 42,140 52,200" fill="#1a1a44" stroke="#3333aa" stroke-width="1"/>
<polygon points="128,200 138,162 148,200" fill="#1a1a44" stroke="#3333aa" stroke-width="1"/>
<polygon points="152,200 162,145 172,200" fill="#1a1a44" stroke="#3333aa" stroke-width="1"/>
<line x1="55" y1="0" x2="45" y2="140" stroke="#aaccff" stroke-width="1.5" opacity=".05"/>
<line x1="90" y1="0" x2="85" y2="140" stroke="#aaccff" stroke-width="1.5" opacity=".04"/>
<ellipse cx="90" cy="165" rx="55" ry="9" fill="#000" opacity=".35"/>
<g filter="url(#cvl)">
<path d="M42 122 Q46 108 58 102 Q70 96 80 98 Q88 100 91 104 L96 98 Q102 91 110 90 Q120 88 126 96 Q132 104 132 114 Q132 124 126 130 Q120 136 110 138 Q100 140 92 136 L88 142 Q82 150 72 151 Q62 151 56 143 Q50 135 44 126Z" fill="#1a1a1a" stroke="#aaddff" stroke-width="2.5" stroke-dasharray="4,2" fill-opacity=".12"/>
</g>
<text x="6" y="196" fill="#aaccff" font-family="monospace" font-size="6">DINO/USDC · CRYSTAL</text>
</svg>
*Crystal spires · Transparent ghost · Cold light*
</td>
<td align="center" width="20%">
**🏛 Frontier Ruins**
<svg viewBox="0 0 180 200" xmlns="http://www.w3.org/2000/svg" width="160">
<defs>
<filter id="frl"><feDiffuseLighting result="l" lighting-color="#cc88ff" surfaceScale="4"><fePointLight x="140" y="25" z="120"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.05" k2="0" k3="0" k4="0"/></filter>
<filter id="ngl1"><feGaussianBlur stdDeviation="3" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
</defs>
<rect width="180" height="200" fill="#0d0820"/>
<path d="M10 200 L10 108 Q32 88 54 108 L54 200" fill="none" stroke="#3a1a60" stroke-width="2"/>
<path d="M126 200 L126 104 Q148 84 170 104 L170 200" fill="none" stroke="#3a1a60" stroke-width="2"/>
<text x="10" y="80" fill="#2a1a40" font-family="monospace" font-size="5">60806040526004361...</text>
<text x="10" y="90" fill="#2a1a40" font-family="monospace" font-size="5">function transfer(address,uint)</text>
<rect x="0" y="168" width="180" height="32" fill="#0a0618"/>
<ellipse cx="90" cy="163" rx="55" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#frl)">
<rect x="46" y="118" width="82" height="46" rx="14" fill="#1a1a1a" stroke="#cc88ff" stroke-width="2"/>
<path d="M124 126 L152 120 L156 140 L124 146Z" fill="#1a1a1a" stroke="#cc88ff" stroke-width="1.5"/>
</g>
<circle cx="90" cy="138" r="10" fill="#2a0060" stroke="#cc88ff" stroke-width="1.5" filter="url(#ngl1)"/>
<text x="90" y="141" text-anchor="middle" fill="#fff" font-family="monospace" font-size="6" font-weight="bold">CC</text>
<text x="6" y="196" fill="#cc88ff" font-family="monospace" font-size="6">DINO/CC · RUINS · CC BADGE</text>
</svg>
*Bytecode walls · CC badge · Ancient arches*
</td>
<td align="center" width="20%">
**⚗️ Standard Origin**
<svg viewBox="0 0 180 200" xmlns="http://www.w3.org/2000/svg" width="160">
<defs>
<filter id="sol"><feDiffuseLighting result="l" lighting-color="#44aaff" surfaceScale="4"><fePointLight x="140" y="25" z="120"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="180" height="200" fill="#001830"/>
<line x1="0" y1="40" x2="180" y2="40" stroke="#003366" stroke-width=".8"/>
<line x1="0" y1="80" x2="180" y2="80" stroke="#003366" stroke-width=".8"/>
<line x1="0" y1="120" x2="180" y2="120" stroke="#003366" stroke-width=".8"/>
<line x1="0" y1="160" x2="180" y2="160" stroke="#003366" stroke-width=".8"/>
<line x1="45" y1="0" x2="45" y2="200" stroke="#003366" stroke-width=".8"/>
<line x1="90" y1="0" x2="90" y2="200" stroke="#003366" stroke-width=".8"/>
<line x1="135" y1="0" x2="135" y2="200" stroke="#003366" stroke-width=".8"/>
<line x1="130" y1="62" x2="155" y2="46" stroke="#0066aa" stroke-width="1"/>
<text x="156" y="45" fill="#0066aa" font-family="monospace" font-size="6">ERC-20</text>
<ellipse cx="90" cy="163" rx="55" ry="9" fill="#000" opacity=".35"/>
<g filter="url(#sol)">
<ellipse cx="86" cy="122" rx="44" ry="30" fill="#001a30" stroke="#44aaff" stroke-width="2"/>
<path d="M116 108 C136 74,130 22,120 16 C112 16,115 54,106 100Z" fill="#001a30" stroke="#44aaff" stroke-width="1.5"/>
</g>
<circle cx="90" cy="142" r="10" fill="#1a4a80" stroke="#85b7eb" stroke-width="1.5"/>
<text x="90" y="146" text-anchor="middle" fill="#fff" font-family="monospace" font-size="6" font-weight="bold">WMC</text>
<text x="6" y="196" fill="#44aaff" font-family="monospace" font-size="6">DINO/WMC · BLUEPRINT · WMC</text>
</svg>
*Blueprint grid · WMC badge · Schematic*
</td>
<td align="center" width="20%">
**🦎 Nocturnal Wilds**
<svg viewBox="0 0 180 200" xmlns="http://www.w3.org/2000/svg" width="160">
<defs>
<filter id="wil"><feDiffuseLighting result="l" lighting-color="#88ff44" surfaceScale="4"><fePointLight x="140" y="25" z="120"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="180" height="200" fill="#030904"/>
<path d="M0 40 Q30 12 60 32 Q90 8 120 28 Q150 4 180 36 L180 0 L0 0Z" fill="#020602"/>
<ellipse cx="28" cy="62" rx="8" ry="12" fill="#ff9900" opacity=".2"/>
<ellipse cx="44" cy="62" rx="8" ry="12" fill="#ff9900" opacity=".2"/>
<ellipse cx="136" cy="58" rx="8" ry="12" fill="#ff9900" opacity=".18"/>
<ellipse cx="152" cy="58" rx="8" ry="12" fill="#ff9900" opacity=".18"/>
<circle cx="55" cy="120" r="2" fill="#39ff14" opacity="0"><animate attributeName="opacity" values="0;.7;0" dur="3s" begin="0s" repeatCount="indefinite"/></circle>
<circle cx="130" cy="90" r="1.5" fill="#88ff44" opacity="0"><animate attributeName="opacity" values="0;.6;0" dur="4s" begin="1.2s" repeatCount="indefinite"/></circle>
<circle cx="90" cy="70" r="1.5" fill="#39ff14" opacity="0"><animate attributeName="opacity" values="0;.8;0" dur="4.5s" begin="1.8s" repeatCount="indefinite"/></circle>
<ellipse cx="90" cy="163" rx="55" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#wil)">
<path d="M42 122 Q46 108 58 102 Q70 96 80 98 Q88 100 92 106 L98 98 Q106 90 116 88 Q128 86 135 96 Q141 106 141 116 Q141 128 133 136 Q126 143 113 145 Q99 146 90 141 L84 149 Q76 157 64 158 Q52 158 46 148 Q40 138 41 126Z" fill="#2a4a00" stroke="#ccff88" stroke-width="2"/>
</g>
<circle cx="90" cy="148" r="10" fill="#bf953f" stroke="#fcf6ba" stroke-width="1.5"/>
<text x="90" y="152" text-anchor="middle" fill="#1a1000" font-family="monospace" font-size="6" font-weight="bold">WAAC</text>
<text x="6" y="196" fill="#39ff14" font-family="monospace" font-size="6">DINO/WAAC · WILDS · WAAC</text>
</svg>
*Fireflies · Aye-aye eyes · WAAC badge*
</td>
</tr></table>
---
### Gallery 2 — The Rarity Ladder
From common to legendary — the same Theropod body type rendered with progressively rarer finishes.
<table><tr>
<td align="center">
**Common — NONE**
Score: 10
<svg viewBox="0 0 160 180" xmlns="http://www.w3.org/2000/svg" width="140">
<defs><filter id="l_none"><feDiffuseLighting result="l" lighting-color="#226622" surfaceScale="4"><fePointLight x="120" y="30" z="120"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.05" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="160" height="180" fill="#04060a"/>
<ellipse cx="80" cy="155" rx="52" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#l_none)">
<path d="M28 102 L98 94 L118 124 L96 136 L38 124Z" fill="#3a4f3c" stroke="#1e2b1f" stroke-width="2"/>
<path d="M86 96 L106 56 L136 50 L128 82Z" fill="#3a4f3c" stroke="#1e2b1f" stroke-width="2"/>
<path d="M32 107 L2 82 L6 72 L32 97Z" fill="#3a4f3c" stroke="#1e2b1f" stroke-width="2"/>
</g>
<circle cx="130" cy="55" r="5" fill="#226622"/><circle cx="130" cy="55" r="3" fill="#000"/><circle cx="131" cy="54" r="1" fill="#fff" opacity=".6"/>
<text x="6" y="172" fill="#556655" font-family="monospace" font-size="7">NONE · 90% of Theropods</text>
</svg>
</td>
<td align="center">
**Rare — CARBON**
Score: 75
<svg viewBox="0 0 160 180" xmlns="http://www.w3.org/2000/svg" width="140">
<defs>
<radialGradient id="sp_c" cx="50%" cy="55%" r="45%"><stop offset="0%" stop-color="#44ffee" stop-opacity=".22"/><stop offset="100%" stop-color="#000" stop-opacity="0"/></radialGradient>
<filter id="l_carb"><feDiffuseLighting result="l" lighting-color="#44ffee" surfaceScale="5"><fePointLight x="120" y="28" z="140"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="180" fill="#020810"/>
<circle cx="50" cy="50" r="60" fill="#001a33" opacity=".5"/>
<ellipse cx="80" cy="148" rx="52" ry="9" fill="#000" opacity=".4"/>
<ellipse cx="80" cy="110" rx="80" ry="50" fill="url(#sp_c)"/>
<g filter="url(#l_carb)">
<path d="M28 102 L98 94 L118 124 L96 136 L38 124Z" fill="#1a1a1a" stroke="#44ffee" stroke-width="2.5"/>
<path d="M86 96 L106 56 L136 50 L128 82Z" fill="#1a1a1a" stroke="#44ffee" stroke-width="2"/>
<path d="M32 107 L2 82 L6 72 L32 97Z" fill="#1a1a1a" stroke="#44ffee" stroke-width="2"/>
</g>
<ellipse cx="62" cy="96" rx="16" ry="9" fill="#44ffee" fill-opacity=".12" transform="rotate(-10,62,96)"/>
<circle cx="130" cy="55" r="5" fill="#cc0000"/><circle cx="130" cy="55" r="2.5" fill="#ff5555"/><circle cx="132" cy="53" r="1" fill="#fff" opacity=".75"/>
<text x="6" y="172" fill="#44ffee" font-family="monospace" font-size="7">CARBON · 8% Theropods</text>
</svg>
</td>
<td align="center">
**Rare — PLASMA_GLOW**
Score: 99
<svg viewBox="0 0 160 180" xmlns="http://www.w3.org/2000/svg" width="140">
<defs>
<filter id="l_plas"><feDiffuseLighting result="l" lighting-color="#bb44ff" surfaceScale="4"><fePointLight x="120" y="28" z="140"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.1" k2="0" k3="0" k4="0"/></filter>
<filter id="pg"><feGaussianBlur stdDeviation="5" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
</defs>
<rect width="160" height="180" fill="#040208"/>
<path d="M0 90 L160 90" stroke="#00ffcc" stroke-width=".4" opacity=".2"/>
<path d="M80 0 L80 180" stroke="#ff0055" stroke-width=".4" opacity=".2"/>
<ellipse cx="80" cy="150" rx="52" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#l_plas)">
<path d="M28 102 L98 94 L118 124 L96 136 L38 124Z" fill="#9b00ff" stroke="#cc88ff" stroke-width="1" filter="url(#pg)"/>
<path d="M86 96 L106 56 L136 50 L128 82Z" fill="#9b00ff" stroke="#cc88ff" stroke-width="1"/>
<path d="M32 107 L2 82 L6 72 L32 97Z" fill="#9b00ff" stroke="#cc88ff" stroke-width="1"/>
</g>
<!-- amber-gold dorsal spines -->
<polygon points="72,94 67,76 78,92" fill="#f0c040" stroke="#c89020" stroke-width="1"/><polygon points="72,94 67,76 70,85" fill="#ffe080" opacity=".45"/>
<polygon points="84,92 80,72 91,90" fill="#f0c040" stroke="#c89020" stroke-width="1"/><polygon points="84,92 80,72 83,82" fill="#ffe080" opacity=".45"/>
<circle cx="130" cy="55" r="5" fill="#ff2d00"/><circle cx="130" cy="55" r="3" fill="#ff6b35"/><circle cx="130" cy="55" r="1.5" fill="#0d0718"/><circle cx="131" cy="54" r=".8" fill="#fff" opacity=".8"/>
<circle cx="130" cy="55" r="8" fill="none" stroke="#ff007a" stroke-width="1.5" opacity=".5"/>
<text x="6" y="172" fill="#cc88ff" font-family="monospace" font-size="7">PLASMA_GLOW · 2.5%</text>
</svg>
</td>
<td align="center">
**Legendary — GOLD**
Score: 100
<svg viewBox="0 0 160 180" xmlns="http://www.w3.org/2000/svg" width="140">
<defs>
<linearGradient id="gf_leg" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="25%" stop-color="#fcf6ba"/><stop offset="50%" stop-color="#b38728"/><stop offset="75%" stop-color="#fbf5b7"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<radialGradient id="lv_leg" cx="50%" cy="50%" r="50%"><stop offset="0%" stop-color="#ff4500" stop-opacity=".2"/><stop offset="100%" stop-color="#000" stop-opacity="0"/></radialGradient>
<filter id="l_gold"><feDiffuseLighting result="l" lighting-color="#ffe580" surfaceScale="6"><fePointLight x="125" y="22" z="180"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.4" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="180" fill="#140502"/>
<circle cx="80" cy="90" r="80" fill="url(#lv_leg)"/>
<ellipse cx="80" cy="152" rx="52" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#l_gold)">
<ellipse cx="77" cy="120" rx="45" ry="30" fill="url(#gf_leg)"/>
<path d="M108 106 C130 68,122 14,109 8 C98 8,103 52,93 98Z" fill="url(#gf_leg)"/>
<path d="M46 114 Q8 96 4 44 Q14 38 52 108Z" fill="url(#gf_leg)"/>
</g>
<ellipse cx="60" cy="108" rx="20" ry="13" fill="#fff" fill-opacity=".18" transform="rotate(-14,60,108)"/>
<circle cx="112" cy="20" r="6" fill="#1a0500"/><circle cx="112" cy="20" r="4.5" fill="#ff2d00"/><circle cx="112" cy="20" r="2.5" fill="#ff6b35"/><circle cx="112" cy="20" r="1.2" fill="#0d0718"/><circle cx="113" cy="19" r=".8" fill="#fff" opacity=".9"/>
<circle cx="112" cy="20" r="9" fill="none" stroke="#ff007a" stroke-width="1.5" opacity=".5"/>
<circle cx="18" cy="154" r="1.8" fill="#ff4500" opacity=".6"><animate attributeName="cy" values="154;136;154" dur="1.3s" repeatCount="indefinite"/><animate attributeName="opacity" values=".6;0;.6" dur="1.3s" repeatCount="indefinite"/></circle>
<text x="6" y="172" fill="#f0c040" font-family="monospace" font-size="7">GOLD SAUROPOD · 0.5%</text>
</svg>
</td>
<td align="center">
**Legendary — MULTICOLORED**
Score: 95
<svg viewBox="0 0 160 180" xmlns="http://www.w3.org/2000/svg" width="140">
<defs>
<linearGradient id="mg_leg" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#ff0055"/><stop offset="33%" stop-color="#00ffcc"/><stop offset="66%" stop-color="#ffcc00"/><stop offset="100%" stop-color="#ff0055"/></linearGradient>
<filter id="l_multi"><feDiffuseLighting result="l" lighting-color="#ffffff" surfaceScale="4"><fePointLight x="125" y="22" z="150"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="180" fill="#040208"/>
<path d="M0 90 L160 90" stroke="#00ffcc" stroke-width=".4" opacity=".2"/>
<path d="M80 0 L80 180" stroke="#ff0055" stroke-width=".4" opacity=".2"/>
<ellipse cx="80" cy="154" rx="52" ry="9" fill="#000" opacity=".45"/>
<g filter="url(#l_multi)">
<rect x="36" y="104" width="86" height="48" rx="16" fill="url(#mg_leg)"/>
<path d="M116 116 L144 110 L148 130 L116 136Z" fill="url(#mg_leg)"/>
<path d="M39 116 L8 130 L4 114 L36 104Z" fill="url(#mg_leg)"/>
<path d="M54 104 L60 84 L66 104" fill="#2a0a40" stroke="#8855aa" stroke-width=".8"/>
<path d="M72 102 L78 80 L84 102" fill="#2a0a40" stroke="#8855aa" stroke-width=".8"/>
</g>
<!-- crystal spines in gold -->
<polygon points="58,102 54,88 62,101" fill="#f0c040" stroke="#c89020" stroke-width=".8"/>
<polygon points="70,100 67,85 75,99" fill="#f0c040" stroke="#c89020" stroke-width=".8"/>
<polygon points="82,100 80,84 88,99" fill="#f0c040" stroke="#c89020" stroke-width=".8"/>
<circle cx="55" cy="114" r="6" fill="#0a0a2a"/>
<circle cx="53" cy="113" r="3.5" fill="#0066ff"/>
<circle cx="53" cy="113" r="1.5" fill="#000"/>
<circle cx="57" cy="113" r="3.5" fill="#cc6600"/>
<circle cx="57" cy="113" r="1.5" fill="#000"/>
<circle cx="51" cy="112" r="1.2" fill="#fff" opacity=".6"/>
<circle cx="59" cy="112" r="1.2" fill="#fff" opacity=".6"/>
<text x="6" y="172" fill="#00ffcc" font-family="monospace" font-size="7">MULTICOLORED · 1%</text>
</svg>
</td>
</tr></table>
---
### Gallery 3 — The Lifecycle: Hatchling to Chrono-Titan
The same Gold Sauropod shown at each age bracket. The art evolves automatically as you hold.
<table><tr>
<td align="center">
**🥚 Hatchling**
*0–29 days*
<svg viewBox="0 0 140 160" xmlns="http://www.w3.org/2000/svg" width="130">
<defs><linearGradient id="gf_h" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<filter id="lh"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="110" y="25" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="140" height="160" fill="#140502"/>
<ellipse cx="70" cy="136" rx="44" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#lh)">
<ellipse cx="68" cy="96" rx="36" ry="24" fill="url(#gf_h)"/>
<path d="M90 84 C108 56,102 10,92 6 C84 6,88 42,79 76Z" fill="url(#gf_h)"/>
<path d="M40 90 Q10 76 6 34 Q14 28 44 84Z" fill="url(#gf_h)"/>
</g>
<ellipse cx="52" cy="88" rx="14" ry="9" fill="#fff" fill-opacity=".17" transform="rotate(-14,52,88)"/>
<circle cx="97" cy="14" r="5" fill="#1a0500"/><circle cx="97" cy="14" r="3.5" fill="#ff2d00"/><circle cx="97" cy="14" r="2" fill="#ff6b35"/><circle cx="97" cy="14" r="1" fill="#0d0718"/><circle cx="98" cy="13" r=".7" fill="#fff" opacity=".9"/>
<text x="4" y="152" fill="#664400" font-family="monospace" font-size="7">HATCHLING · day 0</text>
</svg>
*Fresh from mint. Pure, clean, unweathered.*
</td>
<td align="center">
**🦎 Juvenile**
*30–89 days*
<svg viewBox="0 0 140 160" xmlns="http://www.w3.org/2000/svg" width="130">
<defs><linearGradient id="gf_j" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<filter id="lj"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="110" y="25" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="140" height="160" fill="#140502"/>
<circle cx="70" cy="80" r="70" fill="none" stroke="#ff4500" stroke-width="30" stroke-opacity=".07"/>
<ellipse cx="70" cy="136" rx="44" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#lj)">
<ellipse cx="68" cy="96" rx="36" ry="24" fill="url(#gf_j)"/>
<path d="M90 84 C108 56,102 10,92 6 C84 6,88 42,79 76Z" fill="url(#gf_j)"/>
<path d="M40 90 Q10 76 6 34 Q14 28 44 84Z" fill="url(#gf_j)"/>
</g>
<ellipse cx="52" cy="88" rx="14" ry="9" fill="#fff" fill-opacity=".17" transform="rotate(-14,52,88)"/>
<polygon points="60,84 56,70 66,82" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="71,82 68,67 78,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<circle cx="97" cy="14" r="5" fill="#1a0500"/><circle cx="97" cy="14" r="3.5" fill="#ff2d00"/><circle cx="97" cy="14" r="2" fill="#ff6b35"/><circle cx="97" cy="14" r="1" fill="#0d0718"/><circle cx="98" cy="13" r=".7" fill="#fff" opacity=".9"/>
<text x="4" y="152" fill="#664400" font-family="monospace" font-size="7">JUVENILE · month 1</text>
</svg>
*Spines emerging. Character developing.*
</td>
<td align="center">
**🦖 Predator**
*3–6 months*
<svg viewBox="0 0 140 160" xmlns="http://www.w3.org/2000/svg" width="130">
<defs><linearGradient id="gf_p" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<filter id="lp"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="110" y="25" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.3" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="140" height="160" fill="#140502"/>
<circle cx="70" cy="80" r="70" fill="none" stroke="#ff4500" stroke-width="30" stroke-opacity=".1"/>
<ellipse cx="70" cy="136" rx="44" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#lp)">
<ellipse cx="68" cy="96" rx="36" ry="24" fill="url(#gf_p)"/>
<path d="M90 84 C108 56,102 10,92 6 C84 6,88 42,79 76Z" fill="url(#gf_p)"/>
<path d="M40 90 Q10 76 6 34 Q14 28 44 84Z" fill="url(#gf_p)"/>
</g>
<ellipse cx="52" cy="88" rx="16" ry="10" fill="#fff" fill-opacity=".2" transform="rotate(-14,52,88)"/>
<polygon points="58,84 53,68 64,82" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="70,82 66,65 77,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="82,82 79,66 89,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<circle cx="97" cy="14" r="5" fill="#1a0500"/><circle cx="97" cy="14" r="3.5" fill="#ff2d00"/><circle cx="97" cy="14" r="2" fill="#ff6b35"/><circle cx="97" cy="14" r="1" fill="#0d0718"/><circle cx="98" cy="13" r=".7" fill="#fff" opacity=".9"/>
<circle cx="97" cy="14" r="8" fill="none" stroke="#ff007a" stroke-width="1.5" opacity=".4"/>
<text x="4" y="152" fill="#664400" font-family="monospace" font-size="7">PREDATOR · month 3</text>
</svg>
*Full spine set. Eye glow beginning.*
</td>
<td align="center">
**🌿 Elder**
*6–12 months*
<svg viewBox="0 0 140 160" xmlns="http://www.w3.org/2000/svg" width="130">
<defs><linearGradient id="gf_e" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<filter id="le"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="110" y="25" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.3" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="140" height="160" fill="#140502"/>
<circle cx="70" cy="80" r="70" fill="none" stroke="#ff4500" stroke-width="30" stroke-opacity=".14"/>
<ellipse cx="70" cy="136" rx="44" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#le)">
<ellipse cx="68" cy="96" rx="36" ry="24" fill="url(#gf_e)"/>
<path d="M90 84 C108 56,102 10,92 6 C84 6,88 42,79 76Z" fill="url(#gf_e)"/>
<path d="M40 90 Q10 76 6 34 Q14 28 44 84Z" fill="url(#gf_e)"/>
</g>
<ellipse cx="52" cy="88" rx="16" ry="10" fill="#fff" fill-opacity=".2" transform="rotate(-14,52,88)"/>
<!-- full spines + battle scar mark -->
<polygon points="56,84 51,66 63,82" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="68,82 64,63 75,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="80,82 77,64 87,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<path d="M50 100 Q54 92 58 100" stroke="#8a4000" stroke-width="1.5" fill="none" opacity=".6"/>
<circle cx="97" cy="14" r="5" fill="#1a0500"/><circle cx="97" cy="14" r="3.5" fill="#ff2d00"/><circle cx="97" cy="14" r="2" fill="#ff6b35"/><circle cx="97" cy="14" r="1" fill="#0d0718"/><circle cx="98" cy="13" r=".7" fill="#fff" opacity=".9"/>
<circle cx="97" cy="14" r="9" fill="none" stroke="#ff007a" stroke-width="2" opacity=".55"><animate attributeName="opacity" values=".55;.1;.55" dur="2s" repeatCount="indefinite"/></circle>
<text x="4" y="152" fill="#664400" font-family="monospace" font-size="7">ELDER · month 7</text>
</svg>
*Battle-scarred. Eye glow animated.*
</td>
<td align="center">
**⚡ Chrono-Titan**
*365+ days*
<svg viewBox="0 0 140 160" xmlns="http://www.w3.org/2000/svg" width="130">
<defs><linearGradient id="gf_ct" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<radialGradient id="aura_ct" cx="50%" cy="50%" r="50%"><stop offset="0%" stop-color="#a78bfa" stop-opacity=".15"/><stop offset="100%" stop-color="#000" stop-opacity="0"/></radialGradient>
<filter id="lct"><feDiffuseLighting result="l" lighting-color="#ffe580" surfaceScale="6"><fePointLight x="110" y="20" z="180"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.4" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="140" height="160" fill="#140502"/>
<circle cx="70" cy="80" r="70" fill="url(#aura_ct)"/>
<circle cx="70" cy="80" r="70" fill="none" stroke="#ff4500" stroke-width="30" stroke-opacity=".15"/>
<ellipse cx="70" cy="136" rx="44" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#lct)">
<ellipse cx="68" cy="96" rx="36" ry="24" fill="url(#gf_ct)"/>
<path d="M90 84 C108 56,102 10,92 6 C84 6,88 42,79 76Z" fill="url(#gf_ct)"/>
<path d="M40 90 Q10 76 6 34 Q14 28 44 84Z" fill="url(#gf_ct)"/>
</g>
<ellipse cx="52" cy="88" rx="18" ry="11" fill="#fff" fill-opacity=".22" transform="rotate(-14,52,88)"/>
<polygon points="54,84 49,64 62,82" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="66,82 62,61 73,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="78,82 75,62 85,80" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<!-- TWAP aura rings -->
<circle cx="68" cy="96" r="44" stroke="#a78bfa" stroke-width="1.5" fill="none" opacity=".6"><animate attributeName="r" values="44;49;44" dur="2.5s" repeatCount="indefinite"/><animate attributeName="opacity" values=".6;.9;.6" dur="2.5s" repeatCount="indefinite"/></circle>
<circle cx="68" cy="96" r="52" stroke="#a78bfa" stroke-width="1" fill="none" opacity=".3"><animate attributeName="opacity" values=".3;.55;.3" dur="2.5s" repeatCount="indefinite"/></circle>
<circle cx="97" cy="14" r="5" fill="#1a0500"/><circle cx="97" cy="14" r="3.5" fill="#ff2d00"/><circle cx="97" cy="14" r="2" fill="#ff6b35"/><circle cx="97" cy="14" r="1" fill="#0d0718"/><circle cx="98" cy="13" r=".7" fill="#fff" opacity=".9"/>
<circle cx="97" cy="14" r="10" fill="none" stroke="#ff007a" stroke-width="2" opacity=".55"><animate attributeName="r" values="10;14;10" dur="1.8s" repeatCount="indefinite"/><animate attributeName="opacity" values=".55;.1;.55" dur="1.8s" repeatCount="indefinite"/></circle>
<circle cx="18" cy="142" r="1.5" fill="#ff4500" opacity=".6"><animate attributeName="cy" values="142;126;142" dur="1.3s" repeatCount="indefinite"/><animate attributeName="opacity" values=".6;0;.6" dur="1.3s" repeatCount="indefinite"/></circle>
<text x="4" y="152" fill="#f0c040" font-family="monospace" font-size="7">CHRONO-TITAN · year 1</text>
</svg>
*Legendary status. TWAP aura active. Max power.*
</td>
</tr></table>
---
### Gallery 4 — The Hook Effects: Gamification in Action
What your DinoHook looks like when protocol events fire.
<table><tr>
<td align="center" width="25%">
**⚡ Cybernetic Graft Applied**
*A swap was made with graft instructions. The finish changed to MULTICOLORED and the cyan ring appeared — permanently.*
<svg viewBox="0 0 160 190" xmlns="http://www.w3.org/2000/svg" width="148">
<defs>
<linearGradient id="mg_cy" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#ff0055"/><stop offset="33%" stop-color="#00ffcc"/><stop offset="66%" stop-color="#ffcc00"/><stop offset="100%" stop-color="#ff0055"/></linearGradient>
<filter id="lcyb"><feDiffuseLighting result="l" lighting-color="#ffffff" surfaceScale="4"><fePointLight x="125" y="22" z="150"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="190" fill="#040208"/>
<path d="M0 95 L160 95" stroke="#00ffcc" stroke-width=".4" opacity=".2"/>
<ellipse cx="80" cy="158" rx="52" ry="9" fill="#000" opacity=".45"/>
<g filter="url(#lcyb)">
<rect x="30" y="96" width="86" height="48" rx="16" fill="url(#mg_cy)"/>
<path d="M112 108 L140 102 L144 122 L112 128Z" fill="url(#mg_cy)"/>
<path d="M33 108 L4 122 L0 106 L30 96Z" fill="url(#mg_cy)"/>
</g>
<ellipse cx="57" cy="108" rx="16" ry="9" fill="#fff" fill-opacity=".15" transform="rotate(-10,57,108)"/>
<!-- CYBERNETIC RING -->
<circle cx="80" cy="118" r="13" fill="#00f5d4" opacity=".9"/>
<circle cx="80" cy="118" r="19" fill="none" stroke="#00f5d4" stroke-width="2" opacity=".5"/>
<circle cx="80" cy="118" r="24" fill="none" stroke="#00f5d4" stroke-width="1" opacity=".25"/>
<text x="5" y="176" fill="#00f5d4" font-family="monospace" font-size="7">CYBERNETIC GRAFT</text>
<text x="5" y="186" fill="#334444" font-family="monospace" font-size="7">finish → MULTICOLORED</text>
</svg>
</td>
<td align="center" width="25%">
**🔮 TWAP Aura — Market Signal**
*The DINO/ETH Chainlink price crossed the threshold. Every qualifying DinoHook in the ecosystem pulses simultaneously.*
<svg viewBox="0 0 160 190" xmlns="http://www.w3.org/2000/svg" width="148">
<defs>
<linearGradient id="gf_tw" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#bf953f"/><stop offset="50%" stop-color="#fcf6ba"/><stop offset="100%" stop-color="#aa771c"/></linearGradient>
<filter id="ltw"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="125" y="22" z="140"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="190" fill="#140502"/>
<circle cx="80" cy="95" r="80" fill="none" stroke="#ff4500" stroke-width="40" stroke-opacity=".09"/>
<ellipse cx="80" cy="158" rx="52" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#ltw)">
<ellipse cx="78" cy="110" rx="44" ry="29" fill="url(#gf_tw)"/>
<path d="M108 96 C130 60,123 8,111 2 C100 2,104 48,93 88Z" fill="url(#gf_tw)"/>
<path d="M48 104 Q10 88 6 36 Q16 30 53 98Z" fill="url(#gf_tw)"/>
</g>
<ellipse cx="60" cy="100" rx="18" ry="12" fill="#fff" fill-opacity=".18" transform="rotate(-14,60,100)"/>
<!-- TWAP AURA RINGS -->
<circle cx="78" cy="110" r="52" stroke="#a78bfa" stroke-width="2" fill="none" opacity=".55"><animate attributeName="r" values="52;58;52" dur="2.5s" repeatCount="indefinite"/><animate attributeName="opacity" values=".55;.9;.55" dur="2.5s" repeatCount="indefinite"/></circle>
<circle cx="78" cy="110" r="62" stroke="#a78bfa" stroke-width="1" fill="none" opacity=".28"><animate attributeName="opacity" values=".28;.55;.28" dur="2.5s" repeatCount="indefinite"/></circle>
<circle cx="112" cy="14" r="5" fill="#1a0500"/><circle cx="112" cy="14" r="3.5" fill="#ff2d00"/><circle cx="112" cy="14" r="2" fill="#ff6b35"/><circle cx="112" cy="14" r="1" fill="#0d0718"/>
<text x="5" y="176" fill="#a78bfa" font-family="monospace" font-size="7">TWAP AURA ACTIVE</text>
<text x="5" y="186" fill="#443355" font-family="monospace" font-size="7">price above threshold</text>
</svg>
</td>
<td align="center" width="25%">
**⚔️ Battle Victor**
*Won a PvP battle settled by Chainlink VRF. The win is recorded permanently on-chain. The biome advantage helped.*
<svg viewBox="0 0 160 190" xmlns="http://www.w3.org/2000/svg" width="148">
<defs>
<filter id="lbat"><feDiffuseLighting result="l" lighting-color="#ff4500" surfaceScale="5"><fePointLight x="125" y="22" z="140"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.15" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="190" fill="#140502"/>
<circle cx="80" cy="95" r="80" fill="none" stroke="#ff4500" stroke-width="40" stroke-opacity=".13"/>
<ellipse cx="80" cy="158" rx="52" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#lbat)">
<path d="M30 110 L100 102 L118 132 L96 144 L40 132Z" fill="#9b00ff" stroke="#cc88ff" stroke-width="1"/>
<path d="M88 104 L108 64 L140 58 L130 90Z" fill="#9b00ff" stroke="#cc88ff" stroke-width="1"/>
<path d="M34 115 L4 90 L8 75 L34 105Z" fill="#9b00ff" stroke="#cc88ff" stroke-width="1"/>
</g>
<polygon points="66,102 61,82 72,100" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<polygon points="78,100 74,79 85,98" fill="#f0c040" stroke="#c89020" stroke-width="1"/>
<!-- victory star burst -->
<circle cx="20" cy="30" r="12" fill="none" stroke="#f0c040" stroke-width="1.5" opacity=".8"/>
<text x="20" y="34" text-anchor="middle" fill="#f0c040" font-family="monospace" font-size="10" font-weight="bold">★</text>
<text x="36" y="24" fill="#f0c040" font-family="monospace" font-size="7" font-weight="bold">WIN</text>
<!-- laser eyes -->
<circle cx="133" cy="62" r="5" fill="#1a0500"/><circle cx="133" cy="62" r="4" fill="#cc0000"/><circle cx="133" cy="62" r="2.5" fill="#ff5555"/>
<line x1="133" y1="62" x2="88" y2="62" stroke="#ff0000" stroke-width="1.5" opacity=".7"><animate attributeName="opacity" values=".7;.1;.7" dur=".7s" repeatCount="indefinite"/></line>
<text x="5" y="176" fill="#f0c040" font-family="monospace" font-size="7">BATTLE WON · VRF SETTLED</text>
<text x="5" y="186" fill="#553300" font-family="monospace" font-size="7">win counter +1 on-chain</text>
</svg>
</td>
<td align="center" width="25%">
**☠️ Extinct — Epoch Casualty**
*No swap was made during the survival epoch. The mark is permanent. The fossil clock is ticking.*
<svg viewBox="0 0 160 190" xmlns="http://www.w3.org/2000/svg" width="148">
<defs>
<filter id="lext"><feDiffuseLighting result="l" lighting-color="#444" surfaceScale="3"><fePointLight x="125" y="22" z="120"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="0.8" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="160" height="190" fill="#040208"/>
<ellipse cx="80" cy="158" rx="52" ry="9" fill="#000" opacity=".4"/>
<g filter="url(#lext)">
<path d="M30 110 L100 102 L118 132 L96 144 L40 132Z" fill="#2a2a2a" stroke="#333" stroke-width="1.5"/>
<path d="M88 104 L108 64 L140 58 L130 90Z" fill="#2a2a2a" stroke="#333" stroke-width="1.5"/>
<path d="M34 115 L4 90 L8 75 L34 105Z" fill="#2a2a2a" stroke="#333" stroke-width="1.5"/>
</g>
<!-- EXTINCT OVERLAY -->
<line x1="8" y1="12" x2="152" y2="162" stroke="#ff0000" stroke-width="4" opacity=".75"/>
<line x1="152" y1="12" x2="8" y2="162" stroke="#ff0000" stroke-width="4" opacity=".75"/>
<text x="80" y="98" text-anchor="middle" fill="#ff0000" font-family="monospace" font-size="18" font-weight="bold" opacity=".85">EXTINCT</text>
<text x="5" y="176" fill="#ff4444" font-family="monospace" font-size="7">EPOCH CASUALTY</text>
<text x="5" y="186" fill="#552222" font-family="monospace" font-size="7">permanently marked · still yours</text>
</svg>
</td>
</tr></table>
---
### Gallery 5 — The 2015 Badge Panel
How the badge panel looks with 0, 1, 2, 3, and all 4 badges.
<table><tr>
<td align="center">
**No badges**
<svg viewBox="0 0 200 70" xmlns="http://www.w3.org/2000/svg" width="180">
<rect width="200" height="70" fill="#100820"/>
<line x1="0" y1="0" x2="200" y2="0" stroke="#333" stroke-width=".5"/>
<text x="100" y="16" text-anchor="middle" fill="#2a2a2a" font-family="monospace" font-size="7" letter-spacing="3">2015 COLLECTIBLES</text>
<rect x="60" y="22" width="80" height="26" rx="6" fill="none" stroke="#222" stroke-width="1" stroke-dasharray="3,2"/>
<text x="100" y="33" text-anchor="middle" fill="#2a2a2a" font-family="monospace" font-size="7">No badges earned</text>
<text x="100" y="43" text-anchor="middle" fill="#1a1a1a" font-family="monospace" font-size="6">Swap to unlock</text>
<text x="100" y="64" text-anchor="middle" fill="#1a1a1a" font-family="monospace" font-size="6">— common holder —</text>
</svg>
</td>
<td align="center">
**DINO only**
<svg viewBox="0 0 200 70" xmlns="http://www.w3.org/2000/svg" width="180">
<rect width="200" height="70" fill="#100820"/>
<line x1="0" y1="0" x2="200" y2="0" stroke="#1a6600" stroke-width=".5" opacity=".5"/>
<text x="100" y="16" text-anchor="middle" fill="#1a4400" font-family="monospace" font-size="7" letter-spacing="3">2015 COLLECTIBLES</text>
<circle cx="100" cy="43" r="20" fill="#002200" stroke="#39ff14" stroke-width="2"/>
<circle cx="100" cy="43" r="16" fill="none" stroke="#39ff14" stroke-width=".7" opacity=".4"/>
<text x="100" y="47" text-anchor="middle" fill="#39ff14" font-family="monospace" font-size="9" font-weight="bold">DINO</text>
<text x="100" y="64" text-anchor="middle" fill="#1a4400" font-family="monospace" font-size="6">Dinero 2015 · rfikki</text>
</svg>
</td>
<td align="center">
**WAAC + DINO**
<svg viewBox="0 0 200 70" xmlns="http://www.w3.org/2000/svg" width="180">
<rect width="200" height="70" fill="#100820"/>
<line x1="0" y1="0" x2="200" y2="0" stroke="#664400" stroke-width=".5" opacity=".5"/>
<text x="100" y="16" text-anchor="middle" fill="#442200" font-family="monospace" font-size="7" letter-spacing="3">2015 COLLECTIBLES</text>
<circle cx="72" cy="43" r="20" fill="#1a0f00" stroke="#f0c040" stroke-width="2"/>
<circle cx="72" cy="43" r="16" fill="none" stroke="#f0c040" stroke-width=".7" opacity=".3"/>
<text x="72" y="47" text-anchor="middle" fill="#f0c040" font-family="monospace" font-size="8" font-weight="bold">WAAC</text>
<line x1="92" y1="43" x2="108" y2="43" stroke="#664400" stroke-width=".8" opacity=".5"/>
<circle cx="128" cy="43" r="20" fill="#002200" stroke="#39ff14" stroke-width="2"/>
<circle cx="128" cy="43" r="16" fill="none" stroke="#39ff14" stroke-width=".7" opacity=".4"/>
<text x="128" y="47" text-anchor="middle" fill="#39ff14" font-family="monospace" font-size="8" font-weight="bold">DINO</text>
<text x="100" y="64" text-anchor="middle" fill="#442200" font-family="monospace" font-size="6">AyeAye 2015 · Dinero 2015</text>
</svg>
</td>
<td align="center">
**WAAC + CC + DINO**
<svg viewBox="0 0 200 70" xmlns="http://www.w3.org/2000/svg" width="180">
<rect width="200" height="70" fill="#100820"/>
<line x1="0" y1="0" x2="200" y2="0" stroke="#440044" stroke-width=".5" opacity=".5"/>
<text x="100" y="16" text-anchor="middle" fill="#2a1030" font-family="monospace" font-size="7" letter-spacing="3">2015 COLLECTIBLES</text>
<circle cx="46" cy="43" r="17" fill="#1a0f00" stroke="#f0c040" stroke-width="1.8"/>
<text x="46" y="47" text-anchor="middle" fill="#f0c040" font-family="monospace" font-size="7" font-weight="bold">WAAC</text>
<line x1="63" y1="43" x2="72" y2="43" stroke="#664400" stroke-width=".8" opacity=".4"/>
<circle cx="89" cy="43" r="17" fill="#200028" stroke="#ff007a" stroke-width="1.8"/>
<text x="89" y="47" text-anchor="middle" fill="#ff007a" font-family="monospace" font-size="7" font-weight="bold">CC</text>
<line x1="106" y1="43" x2="115" y2="43" stroke="#440044" stroke-width=".8" opacity=".4"/>
<circle cx="132" cy="43" r="17" fill="#002200" stroke="#39ff14" stroke-width="1.8"/>
<text x="132" y="47" text-anchor="middle" fill="#39ff14" font-family="monospace" font-size="7" font-weight="bold">DINO</text>
<text x="100" y="64" text-anchor="middle" fill="#2a1030" font-family="monospace" font-size="6">Three 2015 collectibles</text>
</svg>
</td>
<td align="center">
**All four — Full Set**
<svg viewBox="0 0 200 80" xmlns="http://www.w3.org/2000/svg" width="180">
<rect width="200" height="80" fill="#100820"/>
<line x1="0" y1="0" x2="200" y2="0" stroke="#bf953f" stroke-width=".5" opacity=".5"/>
<!-- outer ring for full set -->
<rect x="10" y="18" width="180" height="44" rx="22" fill="none" stroke="#bf953f" stroke-width="1" stroke-dasharray="3,2" opacity=".6"/>
<text x="100" y="13" text-anchor="middle" fill="#664400" font-family="monospace" font-size="7" letter-spacing="3">2015 COLLECTIBLES</text>
<circle cx="36" cy="42" r="15" fill="#1a0f00" stroke="#f0c040" stroke-width="1.8"/>
<text x="36" y="46" text-anchor="middle" fill="#f0c040" font-family="monospace" font-size="6.5" font-weight="bold">WAAC</text>
<line x1="51" y1="42" x2="59" y2="42" stroke="#664400" stroke-width=".8" opacity=".4"/>
<circle cx="74" cy="42" r="15" fill="#00061a" stroke="#00aaff" stroke-width="1.8"/>
<text x="74" y="46" text-anchor="middle" fill="#00aaff" font-family="monospace" font-size="6.5" font-weight="bold">WMC</text>
<line x1="89" y1="42" x2="97" y2="42" stroke="#002244" stroke-width=".8" opacity=".4"/>
<circle cx="112" cy="42" r="15" fill="#200028" stroke="#ff007a" stroke-width="1.8"/>
<text x="112" y="46" text-anchor="middle" fill="#ff007a" font-family="monospace" font-size="6.5" font-weight="bold">CC</text>
<line x1="127" y1="42" x2="135" y2="42" stroke="#440044" stroke-width=".8" opacity=".4"/>
<circle cx="150" cy="42" r="15" fill="#002200" stroke="#39ff14" stroke-width="1.8"/>
<text x="150" y="46" text-anchor="middle" fill="#39ff14" font-family="monospace" font-size="6.5" font-weight="bold">DINO</text>
<text x="100" y="72" text-anchor="middle" fill="#664400" font-family="monospace" font-size="7">RAREST COMBO · all four 2015 coins</text>
</svg>
</td>
</tr></table>
---
### Gallery 6 — Accessories Showcase
Headgear, eyewear, and mouth accessories in action on the same base body.
<table><tr>
<td align="center">
**Top hat + Monocle + Pipe**
<svg viewBox="0 0 150 170" xmlns="http://www.w3.org/2000/svg" width="140">
<defs><filter id="l_acc1"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="115" y="25" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="150" height="170" fill="#140502"/>
<ellipse cx="75" cy="142" rx="46" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#l_acc1)">
<path d="M22 100 L92 92 L110 122 L88 134 L32 122Z" fill="#3a4f3c" stroke="#1e2b1f" stroke-width="2"/>
<path d="M80 94 L100 54 L130 48 L122 80Z" fill="#3a4f3c" stroke="#1e2b1f" stroke-width="2"/>
<path d="M26 105 L0 80 L4 70 L26 95Z" fill="#3a4f3c" stroke="#1e2b1f" stroke-width="2"/>
</g>
<!-- TOP HAT -->
<rect x="96" y="40" width="38" height="7" rx="2" fill="#1a1a1a" stroke="#333" stroke-width=".5"/>
<rect x="101" y="16" width="28" height="26" rx="3" fill="#111" stroke="#333" stroke-width=".5"/>
<rect x="103" y="19" width="24" height="4" fill="#bf953f" opacity=".8"/>
<!-- MONOCLE -->
<circle cx="118" cy="56" r="10" fill="none" stroke="#bf953f" stroke-width="1.5"/>
<line x1="127" y1="63" x2="133" y2="72" stroke="#bf953f" stroke-width="1"/>
<circle cx="118" cy="56" r="5" fill="#1a0000"/><circle cx="118" cy="56" r="3.5" fill="#cc0000"/><circle cx="119" cy="55" r="1.2" fill="#fff" opacity=".7"/>
<!-- PIPE -->
<path d="M78 82 Q90 76 97 82 Q100 87 93 89 Q86 91 82 87Z" fill="#5c3a21"/>
<path d="M93 82 L108 74 L110 78 L95 86Z" fill="#4a2f18"/>
<circle cx="110" cy="76" r="3.5" fill="#3a2410" stroke="#5c3a21" stroke-width=".4"/>
<circle cx="110" cy="68" r="3.5" fill="#999" fill-opacity=".3"><animate attributeName="cy" values="68;56;44" dur="2s" repeatCount="indefinite"/><animate attributeName="opacity" values=".3;.12;0" dur="2s" repeatCount="indefinite"/></circle>
<text x="4" y="162" fill="#39ff14" font-family="monospace" font-size="6">TOP HAT + MONOCLE + PIPE</text>
</svg>
</td>
<td align="center">
**Cowboy + Aviators + Cigarette**
<svg viewBox="0 0 150 170" xmlns="http://www.w3.org/2000/svg" width="140">
<defs><filter id="l_acc2"><feDiffuseLighting result="l" lighting-color="#ff8040" surfaceScale="5"><fePointLight x="115" y="25" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.2" k2="0" k3="0" k4="0"/></filter></defs>
<rect width="150" height="170" fill="#0a0e14"/>
<ellipse cx="75" cy="142" rx="46" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#l_acc2)">
<path d="M22 100 L92 92 L110 122 L88 134 L32 122Z" fill="#c0c0c0" stroke="#888" stroke-width="1"/>
<path d="M80 94 L100 54 L130 48 L122 80Z" fill="#c0c0c0" stroke="#888" stroke-width="1"/>
<path d="M26 105 L0 80 L4 70 L26 95Z" fill="#c0c0c0" stroke="#888" stroke-width="1"/>
</g>
<ellipse cx="58" cy="95" rx="15" ry="9" fill="#fff" fill-opacity=".2" transform="rotate(-14,58,95)"/>
<!-- COWBOY HAT -->
<rect x="90" y="40" width="46" height="7" rx="3" fill="#4a3000" stroke="#6a4500" stroke-width=".5"/>
<rect x="98" y="19" width="30" height="23" rx="3" fill="#3a2500" stroke="#5a3800" stroke-width=".5"/>
<path d="M100 19 Q113 13 128 19" fill="#5a4020"/>
<rect x="100" y="22" width="26" height="3" fill="#cc8800" opacity=".7"/>
<!-- AVIATORS -->
<rect x="110" y="57" width="11" height="8" rx="4" fill="none" stroke="#888" stroke-width="1.5"/>
<rect x="123" y="57" width="11" height="8" rx="4" fill="none" stroke="#888" stroke-width="1.5"/>
<line x1="121" y1="61" x2="123" y2="61" stroke="#888" stroke-width="1"/>
<line x1="134" y1="61" x2="140" y2="61" stroke="#888" stroke-width="1"/>
<!-- CIGARETTE -->
<rect x="93" y="79" width="20" height="4" rx="2" fill="#f5f0e0" stroke="#ccc" stroke-width=".5"/>
<rect x="91" y="79" width="4" height="4" rx="1" fill="#ff6633"/>
<circle cx="90" cy="73" r="3" fill="#ccc" fill-opacity=".3"><animate attributeName="cy" values="73;61;49" dur="2.2s" repeatCount="indefinite"/><animate attributeName="opacity" values=".3;.12;0" dur="2.2s" repeatCount="indefinite"/></circle>
<circle cx="118" cy="56" r="4" fill="#1a0000"/><circle cx="118" cy="56" r="2.5" fill="#0066ff"/><circle cx="119" cy="55" r="1" fill="#fff" opacity=".6"/>
<text x="4" y="162" fill="#39ff14" font-family="monospace" font-size="6">COWBOY + AVIATORS + CIGA</text>
</svg>
</td>
<td align="center">
**Flame Crown + 3D Glasses + Lollipop**
<svg viewBox="0 0 150 170" xmlns="http://www.w3.org/2000/svg" width="140">
<defs>
<linearGradient id="mg_acc" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#ff0055"/><stop offset="50%" stop-color="#00ffcc"/><stop offset="100%" stop-color="#ffcc00"/></linearGradient>
<filter id="l_acc3"><feDiffuseLighting result="l" lighting-color="#ffffff" surfaceScale="4"><fePointLight x="115" y="22" z="140"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="150" height="170" fill="#040208"/>
<path d="M0 85 L150 85" stroke="#00ffcc" stroke-width=".4" opacity=".2"/>
<ellipse cx="75" cy="142" rx="46" ry="8" fill="#000" opacity=".45"/>
<g filter="url(#l_acc3)">
<rect x="22" y="98" width="86" height="44" rx="14" fill="url(#mg_acc)"/>
<path d="M104 110 L130 104 L134 124 L104 130Z" fill="url(#mg_acc)"/>
<path d="M25 110 L2 122 L0 106 L22 98Z" fill="url(#mg_acc)"/>
</g>
<!-- FLAME CROWN -->
<path d="M52 98 L56 80 L62 88 L68 73 L74 88 L80 80 L84 98Z" fill="#ff4500" stroke="#ffaa00" stroke-width=".7"/>
<circle cx="68" cy="73" r="3" fill="#ffcc00"><animate attributeName="r" values="3;4.5;3" dur="1.5s" repeatCount="indefinite"/><animate attributeName="fill" values="#ffcc00;#ff4500;#ffcc00" dur="1.5s" repeatCount="indefinite"/></circle>
<!-- 3D GLASSES -->
<rect x="53" y="111" width="12" height="8" rx="3" fill="#ff0000" fill-opacity=".5" stroke="#cc0000" stroke-width="1"/>
<rect x="67" y="111" width="12" height="8" rx="3" fill="#0000ff" fill-opacity=".5" stroke="#0000cc" stroke-width="1"/>
<line x1="65" y1="115" x2="67" y2="115" stroke="#aaa" stroke-width="1"/>
<line x1="79" y1="115" x2="84" y2="115" stroke="#aaa" stroke-width="1"/>
<!-- LOLLIPOP -->
<line x1="96" y1="118" x2="110" y2="130" stroke="#cc4488" stroke-width="1.5"/>
<circle cx="96" cy="116" r="7" fill="#ff55aa" stroke="#cc3388" stroke-width="1"/>
<path d="M91 113 Q96 109 101 113" stroke="#fff" stroke-width="1" fill="none" opacity=".5"/>
<!-- heterochromia eyes -->
<circle cx="60" cy="113" r="5" fill="#0a0a2a"/>
<circle cx="58" cy="112" r="2.5" fill="#0066ff"/>
<circle cx="62" cy="112" r="2.5" fill="#cc6600"/>
<text x="4" y="162" fill="#39ff14" font-family="monospace" font-size="6">FLAME CROWN + 3D + LOLLY</text>
</svg>
</td>
<td align="center">
**Crown + VR Visor + Space Suit**
<svg viewBox="0 0 150 170" xmlns="http://www.w3.org/2000/svg" width="140">
<defs>
<filter id="l_acc4"><feDiffuseLighting result="l" lighting-color="#44ffee" surfaceScale="4"><fePointLight x="115" y="22" z="130"/></feDiffuseLighting><feComposite in="SourceGraphic" in2="l" operator="arithmetic" k1="1.1" k2="0" k3="0" k4="0"/></filter>
</defs>
<rect width="150" height="170" fill="#020810"/>
<ellipse cx="75" cy="142" rx="46" ry="8" fill="#000" opacity=".4"/>
<g filter="url(#l_acc4)">
<path d="M22 100 L92 92 L110 122 L88 134 L32 122Z" fill="#1a1a1a" stroke="#44ffee" stroke-width="2.5"/>
<path d="M80 94 L100 54 L130 48 L122 80Z" fill="#1a1a1a" stroke="#44ffee" stroke-width="2"/>
<path d="M26 105 L0 80 L4 70 L26 95Z" fill="#1a1a1a" stroke="#44ffee" stroke-width="2"/>
</g>
<!-- CROWN -->
<path x="2" d="M97 48 L101 34 L107 42 L113 30 L119 42 L125 34 L129 48Z" fill="#bf953f" stroke="#fcf6ba" stroke-width=".7"/>
<circle cx="113" cy="30" r="2.5" fill="#ff0055"/>
<!-- VR VISOR -->
<rect x="101" y="55" width="38" height="14" rx="4" fill="#111" stroke="#44ffee" stroke-width="1.5"/>
<rect x="104" y="58" width="14" height="8" rx="2" fill="#44ffee" fill-opacity=".3"/>
<rect x="121" y="58" width="14" height="8" rx="2" fill="#0055ff" fill-opacity=".35"/>
<!-- SPACE SUIT chest detail -->
<rect x="42" y="105" width="50" height="22" rx="5" fill="none" stroke="#44ffee" stroke-width="1" opacity=".4"/>
<circle cx="67" cy="116" r="5" fill="#44ffee" fill-opacity=".2"/>
<line x1="60" y1="112" x2="74" y2="112" stroke="#44ffee" stroke-width=".8" opacity=".4"/>
<circle cx="112" cy="58" r="5" fill="#1a0500"/><circle cx="112" cy="58" r="3.5" fill="#ff2d00"/><circle cx="113" cy="57" r="1.2" fill="#fff" opacity=".8"/>
<text x="4" y="162" fill="#39ff14" font-family="monospace" font-size="6">CROWN + VR + SPACE SUIT</text>
</svg>
</td>
</tr></table>
---
*All SVG artwork shown above is generated by the DinoHook on-chain art engine — the exact same code that runs when you or a marketplace calls `tokenURI`. What you see is what lives permanently on the Ethereum blockchain.*
---
*DinoHook — CollectibleTrust DAO LLC - A RMI Registered Not-For-Profit*
*For full technical documentation, see DINO_END_USER_TECHNICAL_GUIDE.md*
---
> ⚠️ **This is Unaudited Code — Use at your own risk.**
>
> The DinoHook smart contracts have not undergone a formal third-party security audit. All contract interactions are final and irreversible on the Ethereum blockchain. CollectibleTrust DAO LLC - A RMI Registered Not-For-Profit makes no warranties, express or implied, regarding the security, correctness, or fitness for purpose of this code. Always do your own research.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment