Wallet creation with derived balances from confirmed blockchain transactions
Portfolio System
MiniMiner PoW Lab
A browser-based Proof-of-Work blockchain lab that simulates wallets, transactions, pending pools, blocks, mining rewards, validation, tamper detection, benchmarks, persistence, and a JavaScript/WASM mining engine fallback.
Simulation Scope
Proof-of-Work Concepts In The Browser
MiniMiner simulates Proof-of-Work mining for education and does not mine real cryptocurrency.
Build
Technical Stack
The simulator keeps blockchain behavior, UI state, mining work, validation, persistence, and optional WebAssembly acceleration separated into clear modules.
Stack
React, Vite, Zustand, Tailwind CSS, Recharts, crypto-js, C++ WebAssembly
- block.js
- blockchain.js
- transaction.js
- wallet.js
- miner.js
- validation.js
- simulation.js
- useMinerStore.js
Engineering
What The Project Shows
MiniMiner is designed as a teaching lab and a portfolio signal for frontend architecture, deterministic state, validation rules, and browser-safe compute.
Validated pending transactions with available-balance checks and SYSTEM wallet restrictions
Responsive Proof-of-Work mining with progress, cancellation, rewards, difficulty, and active engine reporting
Explorer and validation flows that expose hashes, nonces, previous hashes, mining stats, and tamper detection
Benchmark runs across difficulty levels with table and chart output
localStorage persistence with JSON export, import, and reset workflows
Optional C++ WebAssembly miner with automatic JavaScript fallback
Architecture
Design Decisions
The app is intentionally local, deterministic, and inspectable so users can understand the full lifecycle from pending transactions to mined blocks.
Core blockchain logic is separated from React pages through dedicated block, transaction, wallet, miner, validation, and simulation modules
Core blockchain logic is separated from React pages through dedicated block, transaction, wallet, miner, validation, and simulation modules.
Zustand coordinates UI actions, persistence, mining jobs, settings, import/export, and derived chain state
Zustand coordinates UI actions, persistence, mining jobs, settings, import/export, and derived chain state.
Mining runs in bounded batches and yields back to the browser so the UI remains usable during Proof-of-Work
Mining runs in bounded batches and yields back to the browser so the UI remains usable during Proof-of-Work.
Validation recomputes hashes and balances from chain data instead of trusting stored wallet balances
Validation recomputes hashes and balances from chain data instead of trusting stored wallet balances.
Usage Flow
How The Lab Is Used
The workflow shows mining rewards, confirmed transactions, validation, and tamper detection without touching real cryptocurrency networks.
- Create a wallet and mine the first reward block.
- Create another wallet, submit a pending transaction, then mine again to confirm it.
- Inspect blocks in the explorer and validate the chain.
- Tamper with an old transaction to show why hash-linked history detects changes.
- Run benchmarks to compare difficulty, attempts, elapsed time, and hash rate.