Skip to content
Reading the chain…
mainnet
NearbyOnear
[05]

Compass

How Nearth works, with the numbers the contract uses.

[01]

Minting

One transaction pays, seeds, draws and places each parcel on its tile of the world grid.

Price
0.5 NEAR
per parcel, storage included
Supply
3,777
parcels of Nearth
Minted
0
Per wallet
10
counted by minting account
Per transaction
10
one mint, one signature
Minting
–
set by the owner
Connect, Mint, Seed, Render, Live: the life of a parcel0102030405
  1. [01]ConnectAny NEAR wallet
  2. [02]Mintmint(count) at the live price
  3. [03]SeedFrom the block’s random seed
  4. [04]RenderSVG drawn inside the contract
  5. [05]LiveDrift, routes, beacons, lines, sea
  1. [01]

    Connect a wallet

    Press Connect and pick a wallet. On testnet, Meteor, Intear, Nightly and Ledger work; mainnet adds HOT, MyNearWallet, OKX and more.

  2. [02]

    Mint

    Choose 1 to 10 parcels on the Mint page and press MINT. The wallet asks for price × count (get_mint_cost), storage included. Any excess is refunded.

  3. [03]

    View

    New parcels appear in your Vault, on the Globe and in the Atlas, each with its live map, traits and the story of how it was drawn.

  4. [04]

    List or buy

    In the marketplace, list parcels at your price, buy one, fill a bag or sweep the floor. A bag of up to 20 settles in one transaction; skipped items cost nothing.

  5. [05]

    Light a beacon

    From the Vault, choose one of your parcels and a target number. The target shows your beacon for 24 hours; the sending parcel rests for an hour.

  6. [06]

    Reshape and pin

    Change the zoom, plant a waypoint flag, or pin the survey drift. Each change is written on-chain and redraws the map at once. Gas only.

[02]

Marketplace

The marketplace is built into the collection contract. There is nothing extra to approve and no other contract holds your parcel.

Royalty
–
paid to the collection on each sale
Minimum price
0.01 NEAR
per listing
Bag
20 parcels
bought in one transaction
List at once
25 parcels
with one signature
Listed now
–
24h volume
–

Buying

One buy call takes a single parcel, a bag or a sweep. Each item carries the most you will pay. Items that sold, changed price upward or left the marketplace are skipped, and everything not spent is refunded in the same transaction.

Selling

list or list_many set a price. Each new listing pays its own storage, which returns to you on sale, delist or transfer. Moving a parcel in any way cancels its listing.

Settlement

The buyer’s deposit is split at once: the royalty to the royalty receiver, the rest plus the storage deposit to the seller. Sale money never rests in the contract.

Every sale counts

Each sale engraves a survey line on the parcel sold and adds to the sea level of the whole world for 24 hours.

[03]

Living Maps

A parcel is not a fixed picture. Its art is recomputed from its seed and the live chain every time it is viewed.

[01]Chain

Survey Drift

Each parcel has a heading and a drift pace from its seed. Every NEAR epoch the survey window takes one step along that heading and swings back. A pinned parcel holds still and resumes without a jump.

  • 1 step per epoch (43,200 blocks, about 7.2 h)
  • Pace Still, Slow, Steady, Fast: sway of 0 to 3 cells
  • Capped at 20,000 steps
[02]Owners

Trade Routes

Every parcel is a survey sheet on a 61-column index grid that wraps east to west. When the sheet to the north, east, south or west has the same owner, a dotted sea lane runs to that edge and a gate glows on it.

  • col = (id - 1) mod 61, row = (id - 1) div 61
  • Sides as a bitmask: 1 N, 2 E, 4 S, 8 W
  • Recomputed live on every view
[03]Owners

Beacon

The owner of one parcel lights a beacon on any other parcel. Rings expand on the target from the sender's compass direction on the grid and fade over 24 hours.

  • 24 h window, strength 4 fading to 1
  • 1 h cooldown per sending parcel
  • Gas only, no deposit
[04]Market

Survey Lines

Sales, transfers, royalty payouts and returned transfer calls each count as a change of hands. The new owner is mixed into the parcel’s survey hash and one more contour line is engraved into the map.

  • Up to 5 contour lines
  • Hash mixes every new owner
  • Provenance drawn into the art
[05]Market

Sea Level

Sales in the marketplace over the last 24 hours set one sea level for the whole world. A busier market exposes more coastal shelf on every parcel at the same time.

  • 0 sales: level 0 · 1-2: level 1
  • 3-5: level 2 · 6-10: level 3
  • 11 or more: level 4

Owner tools

  • Zoom Lens

    Switch the survey between 1:5M, 1:10M, 1:20M or the parcel’s native scale. The fragment is cut again from the Earth mask around the same centre.

    • set_zoom(token_id, 0..3)
    • 3 = native scale
  • Waypoint Flag

    Mark one cell of the 32 x 32 map with a waving pixel flag, or clear it again.

    • plant_flag(token_id, x, y), x and y 0..31
    • clear_flag(token_id)
  • Pin

    Pin a parcel to hold its survey window where it is. Unpinning resumes the drift from that spot.

    • pin(token_id) / unpin(token_id)
    • No jump on unpin
[04]

On-chain Art

Every parcel is a torn fragment of the real Earth map, drawn as SVG by the contract itself.

The seed

A contract cannot read its own transaction hash, so each parcel is seeded from values the minter cannot predict:

seed = u32(sha256(
  env::random_seed()
  ‖ token_id ‖ minter
  ‖ block_height ‖ nonce))

random_seed is the block’s VRF output mixed with the receipt. Seeds are unique; a collision re-hashes with the next nonce.

Rendered in a view

nft_token builds the SVG at read time from the seed and the live state: survey drift, trade routes, beacon, survey lines, sea level, zoom and flag. nft_svg returns the raw SVG; preview_svg renders any input.

A byte-identical mirror

This website draws the same bytes with a TypeScript mirror of the Rust renderer, so galleries never wait for RPC. A parity test compares both across thousands of inputs, and every Atlas page can verify its parcel against the chain.

Why a data URI

media is a data:image/svg+xml;base64 URI and media_hash is the sha256 of that SVG. No IPFS, no gateway, no server: the image is a pure function of chain state and always matches it. The Earth comes from a 0.5° Natural Earth land mask (public domain) stored in the contract.

The metadata is live: media, media_hash and extra change whenever the art changes, so indexers should re-read nft_token rather than cache it forever.

Storage and revenue

Each mint keeps the parcel’s storage plus 600 bytes of headroom (about 0.011 NEAR together) out of the price. Both stay locked in the contract, so later transfers, sales and approvals never eat into revenue. The rest is revenue: about 0.489 NEAR per parcel at a 0.5 NEAR price.

Revenue is withdraw-only: it leaves solely through the owner’s withdraw, never to the contract itself and never below storage plus a 1 NEAR reserve. get_mint_cost quotes max(price, 0.02 NEAR) per parcel; anything unused is refunded.

There is no prize pool, no treasury spend and no upgrade method.

Traits

Region, district, road, scale, ink, style, provinces, heading, drift, rhythm and rarity tier come from the seed; the tier chooses the ink. Dynamic attributes follow the live state. Rarity rank is the sum of 1 / frequency over the static traits.

[05]

NEAR Basics

What you need to know about the chain Nearth lives on.

Accounts

Accounts are readable names such as alice.near or alice.testnet, or implicit 64-character hex ids. The collection lives on its own account, separate from the owner’s wallet.

1 yoctoNEAR confirmations

Sensitive calls such as transfers, delists and every owner action attach exactly 1 yoctoNEAR (10-24 NEAR). That requires a full-access key, so your wallet always asks you first.

Gas

Gas is prepaid at 0.001 NEAR per Tgas and the unused part is refunded; what is burnt is about 0.0001 NEAR per Tgas. A mint or a bag attaches up to 300 Tgas, so keep about 0.3 NEAR spare beyond the price. Most of it comes back.

Storage staking

Stored data locks 1 NEAR per 100 kB for as long as it exists. That is why a listing carries a small, refundable deposit.

Speed and finality

A block every 0.6 seconds, final in about 1.2 seconds. An epoch is 43,200 blocks, about 7.2 hours: one step of survey drift.

Testnet and mainnet

Testnet uses free test NEAR from a faucet and has no value. Mainnet is the real network. The collection is identical on both; only the account and the wallets offered differ.

[06]

Contract

One Rust contract holds the collection, the art renderer and the marketplace.

mainnet
nearbyonear.nearbyon.near
Source metadata (NEP-330)

Reading contract_source_metadata.

Minting

payable
  • mint
  • get_mint_status
  • get_mint_cost

Marketplace

listings pay their own storage
  • list
  • list_many
  • delist
  • buy
  • get_listings
  • get_market_stats
  • get_volume_history

Owner tools

gas only
  • set_zoom
  • plant_flag
  • clear_flag
  • pin
  • unpin
  • beacon

Views

free, no signature
  • get_config
  • get_revenue
  • get_parcels
  • get_parcels_by_ids
  • get_parcels_for_owner
  • get_activity
  • get_render_input
  • nft_svg
  • preview_svg
  • contract_source_metadata

NEP-171 / 177 / 178 / 181 / 199

standard NFT interface
  • nft_transfer
  • nft_transfer_call
  • nft_token
  • nft_approve
  • nft_revoke
  • nft_revoke_all
  • nft_is_approved
  • nft_payout
  • nft_transfer_payout
  • nft_total_supply
  • nft_tokens
  • nft_supply_for_owner
  • nft_tokens_for_owner
  • nft_metadata

Owner only

1 yoctoNEAR each; admin_mint attaches 0.02 NEAR per parcel for storage
  • set_mint_open
  • set_market_open
  • set_price
  • set_max_supply
  • set_max_per_wallet
  • set_royalty
  • admin_mint
  • admin_delist
  • withdraw
  • propose_owner
  • accept_owner
  • cancel_owner_proposal
[07]

Wallets

Nearth connects through NEAR Connect, which lists the wallets that work on the current network.

Wallet support by network
WalletTestnetMainnet
MeteorExtension, web, mobile
IntearWeb, extension
NightlyExtension, mobile
LedgerHardware, over USB
HOTTelegram, extension, mobile–
MyNearWalletWeb–
OKXExtension, mobile–
NEAR MobileMobile–
WalletConnectAny WalletConnect wallet (when enabled)
NEAR CLITerminal

Wallets run in sandboxed frames. This site never sees a private key.