Recompute and compare it yourself
Every universe here is a pure function of a block hash, and that function is open source. Run it on your own machine and compare the result with what is stored on chain. Two commands, no account required.
Recompute a universe
git clone https://github.com/q3579338/arcbang
cd arcbang
node tools/recompute.js 0x0d21840abff46b96c84b2ac9e10e4f5cdaeb5693cb665db62a2f3b02d2d57b5b
Given a hash, it derives the parameters, the outcome, the grade and the cardHash. The derivation is integer-only, so any machine returns the same answer. No dependencies, Node 18 or later.
Diff it against the chain
node tools/verify-onchain.js 1
This reads NFT #1 back from Arc, recomputes it from the block hash stored with it, and compares the two byte for byte. The hash is the only input, and no server data takes part.
The repository also ships the engine self-checks and the on-chain comparison tests. node engine/test.js runs the first set locally.
What the signature is for
Minting requires a signature from the server. It exists to stop anyone minting fabricated parameters: the server recomputes them before signing, and the signer address is on chain for anyone to check.
The signature cannot conjure a universe. The signed parameters must match exactly what recompute.js derives from the hash, which is what the command above checks.
Contracts
Arc mainnet, chainId 5042, gas paid in USDC. No proxy, no upgrade path and no pause switch: once deployed, it stays as it is. Two contracts in total, and with no token there is nothing else to deploy.
| Contract | What it does |
|---|---|
| ArcUniverse | The universes. Mint price and free allowance, 5% royalties, and the on-chain SVG fallback for tokenURI. |
| ArcMarket | Listing, buying and cancelling on the site. No marketplace fee; a sale pays the 5% ERC-2981 royalty. |
The deployed addresses are published on this page and in config.js on the day v1 lands. The site reads them from that one file, so the contract shown on the page and the contract your wallet talks to cannot drift apart.
Current trust boundary
Two limitations are worth stating plainly.
- Minting depends on the server signature. The signer is on chain and the signed parameters can be recomputed, but no new mint is possible while the server is down. Existing NFTs are unaffected, since the contract falls back to on-chain SVG.
- A few owner switches exist, all of them bounded: the free allowance can only be tightened, the price is clamped between 0.1 and 20 USDC, royalties cap at 10% and market fees cap at 10%. The parameters of an NFT that already exists cannot be changed.