NEARVOLCANO
Checking wallet…

[ 01 ] Seismograph

Seismograph

How NearVolcano works, with the numbers the collection actually runs on. Read it once and the whole system is clear: the supply split, the draw, the record behind every token and the art it becomes.

8 sectionsSupply 2,222Docs · contract built

[ 01 ] Supply classes

Four classes, one fixed split.

Every token maps to one Smithsonian Global Volcanism Program row. Rarity follows the real eruptive status of that volcano and nothing else: erupting, active, dormant or extinct. The rarer the status, the rarer your token.

LEGENDARY → Erupting
222 · 10%
RARE → Active
667 · 30%
COMMON → Dormant
1,111 · 50%
EPIC → Extinct
222 · 10%
LEGENDARY222 volcanoes

Venting right now. The rarest class, and the loudest art.

RARE667 volcanoes

Eruption on record in human history. Restless, never sleepy.

COMMON1,111 volcanoes

Quiet for now, still capable. The bulk of the collection.

EPIC222 volcanoes

Cold and finished. Ancient ground that will not erupt again.

NOTE Status is rarity, one class each: the 222 erupting volcanoes are legendary, 222 extinct are epic, 667 active are rare and the 1,111 dormant tokens fill common. Nothing else shifts the odds.

[ 02 ] The draw

Five steps, zero runtime randomness.

Nothing is rolled at runtime. Each scene is decided once, when the art is built, and shipped as a raster — which is why the same peak looks the same on every device.

  1. 01

    Seed

    The token id seeds the stream. The same id always draws the same scene, and nothing depends on time, place or wallet.

  2. 02

    Class

    The Smithsonian status fixes the class before anything draws: 222 erupting, 667 active, 1,111 dormant and 222 extinct.

  3. 03

    Scene

    Sky band, ridge width, snowline, plume height and lava arms all fall out of the same stream.

  4. 04

    Render

    The scene is rasterised at double the native grid — 1,348 px wide, 20 px cells — so every dot lands on a whole pixel.

  5. 05

    Publish

    The same id renders identically on every device, forever. The files ship with the site; no server is involved.

[ 03 ] Rarity math

2,222 seats, no remainder.

Four buckets, fixed counts, and every token lands in exactly one of them. The bar below is the whole supply, to scale.

Erupting
222 · legendary class
Extinct
222 · epic class
Active
667 · rare class
Dormant
1,111 · common class
Supply check
222 + 667 + 1,111 + 222 = 2,222

LOCKED The split prints in the contract. Nothing moves after Erupt opens, and this page shows the same numbers the chain will.

[ 04 ] Traits

Every field the record carries.

These are the real Smithsonian fields behind each token, not generated traits. One row, one token, and the same row always resolves to the same art.

Status

Erupting
222 · 10%
Active
667 · 30%
Dormant
1,111 · 50%
Extinct
222 · 10%

Rarity

LEGENDARY
222
EPIC
222
RARE
667
COMMON
1,111

Volcano type

Stratovolcano
993
Shield volcano
163
Volcanic field
160
Caldera
130

Regions

Kamchatka
103
Honshu
73
Mexico
63
Africa-NE
59

Elevation

Highest
6,887 m
Most tokens
1,000 to 3,000 m
Lowest
-1,270 m

Art

Raster
1348 px lossless WebP
Grid
20 px cells, 2x the source
Colours
flat, kept lossless
Seed
token id

[ 05 ] Tracked data

What every volcano carries.

Coordinates, elevation, volcano type and eruptive status come from the Smithsonian Global Volcanism Program. Rarity is derived from the status field and the palette follows it, so nothing on a token is invented.

Name
As the GVP record spells it
Country · Region
115 countries · 195 regions
Latitude
Signed degrees, two decimals
Longitude
Signed degrees, two decimals
Elevation
Metres, below sea level allowed
Volcano type
stratovolcano, shield, caldera, field
Status
erupting · active · dormant · extinct
Rarity
LEGENDARY · EPIC · RARE · COMMON
Last eruption
Code from the GVP record: U undated, ? doubtful Holocene, D1 to D7 dated episodes, D1 newest
Art
1348x1112 lossless WebP, 2x the source grid
Catalogue size
2,222 volcanoes
GVP records
2,222 distinct volcano numbers

EXAMPLE Etna · Italy · Italy · 37.73N 15.00E · 3,350 m · erupting · last eruption D1.

[ 06 ] The art

One sharp raster per token.

Every token ships one lossless WebP, rasterised at double the art grid so every dot lands on a whole pixel and the browser can scale it down without blur. Three specimens below, drawn by the same pipeline that will draw yours.

Volcano token 7

#7

Volcano token 1337

#1337

Volcano token 2001

#2001

  • ▪Raster: one 1348 px lossless WebP per token, drawn at 2x the art grid, no gradients.
  • ▪Palette: the status picks the sky, plume and lava colours before the scene draws.
  • ▪Scaling: the source is wider than any card, so the browser shrinks it smoothly instead of stretching a small bitmap.
  • ▪Determinism: a seeded PRNG driven by the token id, the same stream every time.
  • ▪Provenance: the volcano row behind each id comes from the GVP record.

[ 07 ] The market

A marketplace with no middle in the middle.

Trading runs inside the collection's own smart contract on NEAR. Sale terms are fixed in code, with separate Waitlist and Public allowances. The short version:

  • ▪Escrowless: listing never takes your token. It stays in your wallet until a buyer actually pays.
  • ▪Direct payment: one buy sends the NEAR straight to the seller, the fee to the treasury and any overpay back to the buyer — the contract never holds sale money.
  • ▪Listed means locked: while a token sits on the book it cannot be transferred by any wallet or app; unlist it and it moves again.
  • ▪Fixed economics: price, fee and treasury cannot change. The sale administrator manages waitlist approval and advances phases without changing trading rules.
  • ▪Every move is a log: mints, listings, reprices, sales and transfers emit standard events, so the order book can be rebuilt from the chain itself.

Straight from the contract

contract/src/lib.rs · verbatim cuts

A listed token cannot move

nft_transfer · nft_approve

// every wallet and app routes through here
require!(
!self.listings.contains_key(token_id),
"token is listed; unlist it first"
);

While a volcano sits on the book it is locked on chain — no wallet, no dApp, no back door. Unlist it and it moves again.

The seller is paid directly

buy → dispatch_payouts

// one leg per wallet: seller, treasury, overpay
Promise::new(t.account.clone()).transfer(
NearToken::from_yoctonear(t.amount.0),
);

One buy moves the money straight into each wallet. The contract never holds sale funds on the happy path, and a failed transfer drops into a claimable credit instead of vanishing.

A stale listing cannot sell

buy · re-checked at sale

let owner = self.owner_of(&token_id);
require!(
owner == listing.seller,
"stale listing: seller no longer owns this token"
);

A price is only ever spent while the account that agreed to it still owns the token — verified again at the moment of sale, not just at listing time.

Prices match the site, exactly

list · reprice

require!(
price.0 >= MIN_LIST_PRICE && price.0 <= MAX_LIST_PRICE,
"price must be between 0.01 and 9999 NEAR"
);

The same bounds /caldera validates — contract and UI cannot disagree in a way that loses money.

Withdraw can never overdraw

withdraw · safety net

require!(
balance >= locked + amount,
"insufficient contract balance; try again later"
);
self.credits.remove(&caller); // transfer comes after

The contract checks it still holds the money before promising any, and clears the credit before paying — insolvency is structurally impossible.

Frozen the moment it deploys

new · one shot

#[init] // fixed economics; sale access is administered separately
require!(mint_price.0 == FIXED_MINT_PRICE, "mint price must be 0.2 NEAR");
require!(fee_bps <= MAX_FEE_BPS, "fee capped at 1000 bps (10%)");

Price, fee and treasury are fixed at initialization. A sale administrator can only manage waitlist eligibility and advance mint phases. Marketplace trading stays independent of the mint phase.

That is the whole promise: the contract can refuse a broken move, but it can never touch what is already yours.

Three phases. One fixed supply.

Team
100 reserve

Team allocation

Waitlist
2 per wallet

0.2 NEAR each

Public
3 per wallet

0.2 NEAR each

2,222 total, including the team reserve. 2,122 available across Waitlist and Public. Waitlist lasts four hours, then Public opens automatically with no time limit. Separate phase limits allow approved wallets to mint up to 5 in total.

[ 08 ] NEAR basics

The chain underneath.

The numbers a minter actually touches. NEAR finality is fast and fees are small, so a transaction confirms in about the time it takes to blink.

The wallet side is real: NEAR Connect reads your account and balance straight from mainnet, one approval signs the mint transaction itself, and the seats land in the register the moment the indexer mirrors them — settlement is on chain, in the NEARVOLCANO contract.

Block time
~0.6 seconds
Finality
~1.2 seconds
Epoch
43,200 blocks, about 7.2 hours
Storage
1 NEAR per 100 kB, refundable
Gas
0.001 NEAR per Tgas, unused returns
Networks
NEAR mainnet
Contract
Mint and trading access coming soon
Site mode
NEAR mainnet · Collection access coming soon