Proof & verification
Don’t trust the graveyard. Check it.
Every grave address is a pure function of public inputs. Your browser can recompute it from NEAR’s MPC root key and compare it with what the MPC network and the contract report. Nothing on this page goes through our server.
The contract
- Registry
- necropolis.testnet ↗
- MPC signer
- v1.signer-prod.testnet ↗
- Network
- NEAR testnet · Solana devnet, Base Sepolia
- Source
- contract/ on GitHub ↗
MPC root keys
The derivation below uses these published keys. Here they are, checked live against the signer contract.
- …secp256k1 (Base): secp256k1:4NfTiv3UsGahebgTaHyD9vF8KYKMBn…
- …ed25519 (Solana): ed25519:6vSEtQxrQj6txUMh33WC4ERyCWmNMRTdufDWAaDY3Un2
Re-derive a grave address
tweak = sha3_256("near-mpc-recovery v0.1.0 epsilon derivation:" + necropolis.testnet + "," + path), then root + tweak·G.
Ossuaries
Where tithes collect when a plot rises: also contract-derived, also checkable.
Verify a burial, by hand
- Open the grave page and follow the origin-chain transaction: tokens moved from the owner to the grave address.
- Re-derive the grave address above; it must match the contract record and the MPC network.
- The grave’s MPC attestation is sha256(borsh(ForeignTxSignPayload::V1)) over the deposit request and the extracted token-account state or Transfer log. Recompute it with foreignTx.ts; the encoder is tested against attestations the live testnet MPC network produced.
- Read the burial event on NEAR: the contract emits EVENT_JSON {"standard":"necropolis","event":"burial"} with the deposit and proof hash, plus a NEP-171 nft_mint.