1. Summary
Nova is a minimal L1 blockchain that uses a sequential hash chain (Proof-of-History, PoH) to timestamp blocks and provide a verifiable ordering of events. A single internal producer confirms new transactions quickly; miners can also submit externally-found PoW blocks at a configurable difficulty. The native asset $NOVA pays fees and funds rewards.
- 💨 Fast confirms via event-driven internal producer.
- 🔏 Ed25519-signed transfers with per-address nonces.
- 🧱 Simple account model, HTML/JSON explorer, and REST APIs.
- ⛏️ Optional external PoW: submit nonces to earn rewards.
- 🏷️ Tokens subsystem for fungible assets (symbol/decimals/balances).
2. Design Goals
- Approachable: readable reference implementation and clear data model.
- Deterministic: replay from genesis reproduces balances and blocks.
- Observable: built-in explorers and JSON endpoints.
- Upgradable: parameters and features evolve via on-chain config.
3. Architecture
3.1 Data Structures
- Block:
{ height, prev_hash, merkle_root, poh_index, timestamp, hash, nonce, miner_wallet, reward } - Transaction:
{ txid, kind, from, to, amount, status, block_hash, timestamp } - Account:
{ address(bech32), pubkey_hex(ed25519) } - Nonce: per-address, monotonic.
- PoH Tick: sequential
SHA-256(state)checkpoints persisted every N steps. - Token/Balance:
Token{ symbol,name,decimals }andTokenBalance{ address,symbol,amount_base }
3.2 Execution Flow
Internal producer loop: mempool → build header (prev, merkle, poh, ts) → apply txs → reward split → persist block. The producer wakes on new txs and also at a fixed cadence.
4. Consensus & Timing
The prototype combines a PoH timing chain with two ways to extend the ledger:
- Internal Producer: a single leader (treasury) seals mempool txs into blocks for fast UX.
- External PoW: miners fetch a job (
/api/mine/job) and submit a valid nonce (/api/mine/submit) meeting a configurable numeric difficulty (NOVA_DIFFICULTY_ZEROS→ prefix"0" * n). - PoH: deterministic hash ticking with periodic on-chain checkpoints anchors time in block headers.
Future versions introduce validator rotation, block signatures, and fork choice.
5. State & Transactions
- Addresses are bech32 (
nova1…) derived from 32-byte Ed25519 pubkeys. - Clients sign a canonical message:
nova|transfer|from=…|to=…|amount=…|nonce=N. - Server verifies signature & exact next nonce, enqueues tx, producer confirms.
- Flat gas fee is charged on transfers; mints/burns are admin or programmatic.
6. Tokenomics
6.1 Parameters (current defaults)
| Parameter | Symbol | Value | Notes |
|---|---|---|---|
| Block Interval (target) | T_b | 5 s | Also wakes immediately on new tx |
| Initial Block Reward | R_0 | 0.5 NOVA | BLOCK_REWARD |
| Tx Fee (flat) | F | 0.001 NOVA | GAS_FEE |
| Treasury Skim | τ | 10% | TREASURY_PCT of (reward + gas) |
| Miner Share | μ | 100% | of post-treasury portion (MINER_PCT) |
| Difficulty | D | n leading zeros | NOVA_DIFFICULTY_ZEROS → prefix "0" * n |
6.2 Reward Split (submit path)
Total = BLOCK_REWARD + gas_collected. Treasury first takes τ·Total. Remaining is split by μ to miner; the remainder returns to treasury. Internal producer credits treasury for both roles.
7. Fees & Burns
- Transfers pay a flat gas fee
F = 0.001NOVA (subject to change). - Fee is credited to rewards pool (part to treasury via split). Burning may be introduced later.
- Roadmap: dynamic fees & priority lanes when mempool grows.
8. Node API (Prototype)
UI / Explorer
GET /explorer # New explorer UI
GET /blocks # Legacy HTML blocks
Blocks & TX
GET /api/blocks # Paged blocks JSON (limit, offset)
GET /api/block/<hash> # Block detail
GET /api/txs # Recent txs JSON
GET /api/tx/<txid> # Tx detail
Wallets & Nonces
POST /api/wallet/register # Register ed25519 pubkey → nova1… address
GET /api/nonce/peek/<addr> # Next nonce preview
GET /api/balance/<addr> # NOVA balance
Signed Transfers
POST /api/transfer # {from,to,amount,nonce,sig} (ed25519)
Mining (external PoW)
GET /api/mine/job # {prev, merkle, poh, ts, difficulty, job_id, txids}
POST /api/mine/submit # {miner, nonce, job_id, txids, timestamp_iso}
Leaderboard
GET /leaderboard # HTML page
GET /api/leaderboard # Miner aggregates (JSON)
Tokens
POST /api/token/create # admin (Bearer)
POST /api/token/mint # admin (Bearer)
GET /api/wallet/tokens # header X-Address or /api/wallet/tokens/<addr>
Misc
GET /api/status # tip height, mempool, poh index
GET /api/fee # gas fee
9. Roadmap
- v0.2: (current) Ed25519 tx signatures, nonces, internal producer, optional PoW submit, tokens & leaderboard, explorer v2.
- v0.3: Block proposer signatures, validator registry, slot timing; fix pagination responses parity.
- v0.4: Fork choice & peer gossip; light client headers.
- v0.5: Staking & rewards split for validators; on-chain params & governance; fee market.
10. Risks & Disclosures
- Prototype: single-leader internal producer centralizes liveness.
- Security: limits/rate-limits, fee markets, and full BFT are WIP.
- No investment advice: Nova is experimental software; tokens may have no monetary value.
11. Legal
© 2025 Nova Labs. All rights reserved. This document and the Nova node software are proprietary. Redistribution or reverse engineering is prohibited without written permission.