Verify

Check it yourself, do not take our word

Every universe on this site is a pure function of a block hash. The function is open source, so anyone can run it and compare the result with what is stored on BNB Chain. Two commands, no account, no server involved.

Recompute any universe

git clone https://github.com/q3579338/bnbbang-engine
cd bnbbang-engine
node tools/recompute.js 0x0d21840abff46b96c84b2ac9e10e4f5cdaeb5693cb665db62a2f3b02d2d57b5b

recompute.js rebuilds the 23 parameters, the outcome, the grade and the cardHash from the hash alone. The derivation is integer-only, so the result is identical on every platform. Zero dependencies, Node 18 or later.

Diff it against the chain

node tools/verify-onchain.js 1

verify-onchain.js reads token #1 from the MirrorUniverse contract on BSC mainnet, recomputes the universe from the block hash stored with it, and compares parameters, outcome, grade and cardHash byte for byte. A universe that was rescued (constants nudged by burning BANG) is recomputed from the block hash plus the operation log written into the transaction, so the server's archive is not needed.

The repository ships 292 engine self-checks and 118 on-chain comparison tests. node engine/test.js runs the first set locally.

What the signature proves, and what it does not

Minting requires a server signature: the contract exposes only bangSigned(). The server recomputes the parameters and stamps them so nobody can mint a forged cosmology. The signer address is readable on-chain via signer() and is listed below; anyone can check that an NFT's signature recovers to that address. The protocol, with a runnable verifier and real vectors, is in docs/signing-protocol.md.

The signature does not let the server invent universes: the signed parameters must equal what recompute.js produces from the hash, and that is exactly what verify-onchain.js checks.

Contracts on BSC mainnet

chainId 56, deployed 2026-08-22. No proxy, no upgrade path, no selfdestruct, no delegatecall, no pause.

Live checks: /api/health reports the chain id and the signer the server is using; they must match the contract. /api/market/status shows how far the market index is behind the chain.

Tests that run against real bytecode

All contract tests execute the compiled bytecode on a local EVM, from bnbbang-economy:

SuiteChecksSuiteChecks
economytest196craftedtest110
markettest127vestingtest41
nametest125promotest49
names2test156crosscheck110

Three things that are not trustless