Skip to content
Minerva. Post-quantum, proof of work.

Build

Familiar EVM. Different authorization.

Contracts run on a Shanghai-level EVM with 0x addresses. What changes is who can sign: every sender is a post-quantum smart account, and the SDK handles that for you.

A carved entablature
Smart contracts

SDK

@minerva/sdk exposes network metadata, JSON-RPC helpers, balances, account status reads and native transaction helpers. It holds no keys and no service secrets.

import {
  createMinervaClient,
  createPQAccount,
  getMrvBalance,
  sendPQTransaction,
} from "@minerva/sdk";

const client = createMinervaClient({ networkName: "testnet" });

// A new ML-DSA-65 account. Its address exists before any contract does.
const account = createPQAccount();
const balance = await getMrvBalance(client, account.address);

// policyVersion is resolved from the chain before signing, so a rotated-out
// key is refused here, not after submission.
const txHash = await sendPQTransaction(client, {
  nonce: await client.getTransactionCount(account.address),
  gasTipCap: 1_000_000_000n,
  gasFeeCap: 2_000_000_000n,
  gas: 21_000n,
  to: "0x000000000000000000000000000000000000dEaD",
  value: 1_000_000_000_000_000_000n,
  pqPublicKey: account.publicKey,
  pqPrivateKey: account.privateKey,
});

Protocol constants

Transaction type
0x4D (MinervaPQTxV1)
Signing context
MINERVA_PQ_TX_V1
ML-DSA-65 verify
0x0000000000000000000000000000000000004D00
MINERVA_TX_CONTEXT
0x0000000000000000000000000000000000004D01
SecurityModeRegistry
0x…0201
AccountReadinessRegistry
0x…0202
MinervaAccountFactory
0x…0203
AccountControlRegistry
0x…0204
MinervaMigrationReserve
0x…0205
Testnet RPC
https://testnet.minerva.build/rpc · chain 77138

Compatibility notes

Decisions are documented and fixed; a future change ships as a named fork, never a silent edit.

Wallet integration

Minerva Wallet 0.1.2 (mobile, browser extension, desktop) injects an EIP-1193 provider with the Minerva chain and routes eth_sendTransaction through the account's post-quantum path. Integrate the existing wallet and SDK rather than a generic EVM wallet flow; a classical wallet cannot produce a valid Minerva signature.