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

Accounts

A permanent address with evolving authority.

Every Minerva account is a smart account controlled by an ML-DSA-65 key. The address never moves; the key that may authorize it can.

A monumental doorway
Smart accounts

Account lifecycle

  1. 1

    Create

    An account address is derived with CREATE2 from the factory, the initial ML-DSA-65 key and a salt. It can receive funds before any contract exists, and it can deploy itself with its own first transaction.

  2. 2

    Authorize

    Every native transaction carries the account, the public key, the algorithm, the policy version and a signature over a hash that binds chain id, nonce and the whole envelope. The node verifies it against the account's control record before gas is charged.

  3. 3

    Rotate

    rotatePQKey, signed by the current key, writes the new key commitment and increments the policy version in the Account Control Registry. From that block the previous key is rejected on the native path at every policy version.

  4. 4

    Delegate

    Device keys are enrolled with scopes: allowed targets or any, a value limit per window, an expiry, and protected targets no scope can include. Consensus admits a device key only for zero-value self-calls; the account contract enforces the scope.

  5. 5

    Recover

    Today recovery means restoring the encrypted ML-DSA key from the Recovery Kit and rotating. Policy-based recovery (guardians) would end in the same registry write; it is planned, not shipped.

The diagram follows the implemented model. The steps marked as planned are design targets and are labeled as such on the Core v1 page.

In one line each

Native transaction

MinervaPQTxV1 is the only transaction type a Minerva network accepts. Legacy Ethereum types are invalid by consensus, so no ECDSA path exists for any account.

Type byte
0x4D
Fields
chainId, nonce, fees, gas, account, factorySalt, to, value, data, accessList, pqAlgorithm, pqPublicKey, policyVersion, pqSignature
Signing context
MINERVA_PQ_TX_V1
Account context
MINERVA_ACCOUNT_V1 (executePQ, rotatePQKey, isValidSignature)
Authorizing key in-contract
MINERVA_TX_CONTEXT precompile at 0x0000000000000000000000000000000000004D01
Control record
AccountControlRegistry at 0x…0204: commitment, algorithm, policyVersion

Account Security Center

Minerva accountIllustration · sample data · not connected

Identity and activity

Address
0x7D3488118952dD7A7d087Ff7845151fd3C1A5829
Network
Minerva Testnet · chain 77138
Control Key
current on-chain version · policy v1
Key commitment
0xdff7…90b9
Authorization policy
Recovery configuration
Last confirmed update
0x9c4e…a1d7 · block 12,418
ReceiveSend

Account control

  • Review Control Key rotationConfirmed · v1

    Shows the key that is authoritative now, not the one the account was created with.

  • Pending rotationRequested · not effective

    A requested rotation is listed separately until its block confirms. The previous key stays valid until then.

  • Review recovery policyRecovery Kit

    Today: an encrypted backup of the ML-DSA key, rehearsed in the wallet. Policy-based recovery is planned, not shipped.

  • Device keys0 enrolled

    Scoped keys for zero-value self-calls only; revocation takes effect at consensus.

This page never asks for a Control Key or a Recovery Kit. Real signing and recovery happen in Minerva Wallet 0.1.2, whose fields follow the implemented account model; see Accounts.

Read further