02The Instrument
A minimal ERC-721 with no external dependencies. Total supply is fixed at 10,000 instruments. At mint, a single bytes32 genesis seed is drawn from keccak256(tokenId, blockhash, minter, prevrandao) and packed, and everything visual derives from it.
mintFree()gives one per wallet, for life. Tracked byhasFreeMinted.mintPaid(qty)is payable at 0.005 ETH per instrument, routed to the treasury.- Wallet cap is 10 per address. Founders: instruments #1 to #200 are flagged on chain.
The genesis seed fixes the spectral class of the star, the ecliptic tilt, the starfield, and an initial set of 3 to 8 worlds, each with its own orbit, mass, inclination, type and colour. Everything after that is built by the keeper.
03The Acts
The Workshop contract is where the instrument is changed. Each act validates its inputs, forwards the ETH to the treasury, and calls Infinity.addGravity(id, weiPaid) so the same amount is recorded permanently on the NFT.
| Act | Cost (ETH) | Effect |
|---|---|---|
| cast(id) | 0.0004 | Roll a new world into an empty orbit, up to twelve. Traits come from block entropy. |
| tune(id, w) | 0.0001 | Change a world's period or radius. Faster orbits cross more often. |
| adorn(id, w) | 0.0002 | Hang a ring or a moon. Cosmetic, permanent, raises rarity rank. |
| rename(id, s) | 0.0001 | Set the instrument's name. Once per 7 days, ASCII validated. |
| observe(id) | free | Look through another keeper's instrument. Sybil resistant. |
04Utility systems
A · Genesis traits. Star class (weighted O to M), tilt, and starter worlds, sealed at mint. Star class and rare world types (Glacial, Molten, ringed Gas) drive the rarity tables marketplaces compute.
B · Worlds. Up to twelve bodies, each rolled with mass, orbit, inclination, type and colour. The arrangement is yours, and casting and tuning are how you compose it.
C · Gravity. Cumulative ETH ever spent on the instrument, stored as uint128 wei. It only rises, and it travels with the NFT on sale. Tiers paint a brighter frame:
| Tier | Threshold | Frame |
|---|---|---|
| Just started | under 0.01 ETH | dim |
| Tin | 0.01 ETH | pewter edge |
| Silver | 0.05 ETH | silver, pulsing |
| Brass | 0.2 ETH | warm brass |
| Lodestar | 1 ETH | radiant corona |
D · Conjunctions. A 32-bit on-chain bitmap of the alignments your worlds have achieved (Syzygy, Triune, Eclipse, Grand Cross, Transit, Perihelion, and more). Detected by the Ephemeris library, each one seals permanently and renders as a glyph on the art. They cannot be bought, only arranged and awaited.
E · Observation. Any keeper who already holds an instrument may observe another once. The visit is logged on both pieces, so a celebrated instrument carries a visible record of every astronomer who turned to it.
05On-chain rendering
tokenURI(id) returns base64 JSON whose image is an animated SVG composed from on-chain state. Each planet is a shaded sphere: a radial gradient whose highlight is offset toward the star, a darkened terminator, banding for gas giants, a specular point, and an atmospheric halo. Orbits are tilted ellipses, and rings are drawn behind and in front of the planet for depth. The star carries an animated corona, and the whole scene advances with the block clock.
Genuinely 3D, on chain. Because the contract knows each world's angle at the rendered block, it bakes the correct light direction into every sphere's gradient. That is the same shading you see in the live instruments here, emitted as pure SVG.
06Determinism
Orbital position is theta0 + (block.number / period) · 2π per world. Every observer sees the identical sky at the same block, with no oracle and no randomness at view time. Conjunction detection compares the worlds' angles at the current block and sets the corresponding bit the first time a threshold is crossed. Genesis entropy is the only randomness, and it is fixed at mint.
07Economics
Economics live entirely in the NFT. Supply is fixed at 10,000 and never inflates. The first instrument per wallet is free, and further mints cost 0.005 ETH, capped at ten per address to resist sybils.
Every paid act routes 100% of the ETH to a single treasury address and records the identical wei as Gravity on the instrument. There is no path where ETH leaves your wallet without crediting the piece, and no emission that could bleed value out. An instrument's worth is therefore the sum of three legible things:
- Genesis rarity, its star class, world types, and rings, fixed forever at mint.
- Gravity, the ETH the keeper has poured into it, permanent and visible.
- Sealed conjunctions, the alignments it has earned through patience.
The treasury holds no game state and can be rotated by the deployer until ownership is renounced, as set out in the roadmap. Nothing about the instrument depends on it remaining funded.
The whole system is two reads and one write. The Workshop reads your instrument, applies the act, and writes Gravity and any newly sealed conjunction straight back. The renderer reads it all and emits the SVG. No backend, ever.