Zen Coin is a decentralized peer-to-peer cryptocurrency built as a final year project. It is essentially a simplified version of Bitcoin, designed to demonstrate the core principles of blockchain, wallets, mining, transactions, and simple decentralized networking without the full complexity of Bitcoin.
- GUI Wallet:
zen_coin_gui_wallet_demo.mp4
- TUI Wallet:
zen_coin_tui_wallet_demo.mp4
- Blockchain implementation from scratch
- UTXO-based transaction model
- Peer-to-peer decentralized node communication
- Mining with Proof-of-Work
- Transaction validation and propagation
- CBOR-based blockchain persistence
- TUI Wallet Interface
- GUI Wallet (Tauri + Rust + TypeScript)
- Rust ==> Core Backend
- Ratatui (for TUI wallet)
- TypeScript ==> Frontend (GUI Wallet)
- Tauri ==> Connecting Backend and Frontend
- HTML/CSS
To run this project, Rust must be installed.
We recommend using Rustup, the official Rust installer.
Official website: https://rustup.rs/
Open terminal and run:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shFollow the on-screen instructions.
After installation, restart your terminal.
- Visit: https://rustup.rs/
- Download the Rustup installer
- Run the installer
- Follow the on-screen instructions
After installation, restart Command Prompt / PowerShell.
git clone https://github.com/defau1tuser0/zen_coin.git
cd zen_coinCompile the full project:
cargo build --releaseThe recommended order is:
- Start Node
- Generate Wallet Keys
- Start Miner
- Start Wallet
cargo run --release --bin node -- [OPTIONS] [INITIAL_NODES...]| Option | Description |
|---|---|
--port <PORT> |
Set port number (default: 9000) |
--blockchain-file <FILE> |
Blockchain storage file (default: ./blockchain.cbor) |
cargo run --release --bin node -- \
--port 9000 \
--blockchain-file ./my_blockchain.cbor \
127.0.0.1:9001 \
127.0.0.1:9002cargo run --release --bin miner -- \
--address <NODE_ADDRESS> \
--profile <PROFILE_NAME>cargo run --release --bin miner -- \
--address 127.0.0.1:9000 \
--profile aliceThis allows mining rewards to be sent to your wallet.
cargo run --release --bin wallet -- [OPTIONS]| Option | Description |
|---|---|
-c, --config <FILE> |
Wallet config file (default: wallet_config.toml) |
-n, --node <ADDRESS> |
Node address |
cargo run --release --bin wallet -- \
--profile alicecd zen-wallet-guipnpm tauri devcd zen-wallet-guipnpm vite build; pnpm tauri android build --release --target <processor_architecture>pnpm vite build; pnpm tauri android build --release --target aarch64If --release'd apk isn't working for some reason try --debug
zen_coin/
│
├── lib/ # Core blockchain logic
├── node/ # P2P node implementation
├── miner/ # Mining system
├── wallet/ # Wallet system
├── gui-wallet/ # Tauri GUI wallet
│
└── blockchain.cbor # Persistent blockchain storage
Zen Coin is not intended for production use.
It is built for:
- learning Bitcoin architecture
- understanding blockchain internals
- studying UTXO transaction systems
- exploring decentralized networking
- academic final year project demonstration
Developed as a Final Year BCA Project
Project Name: Zen Coin Inspired by: Bitcoin Reference:
- https://braiins.com/books/building-bitcoin-in-rust
- https://guide.summerofbitcoin.org/the-proposal-round/getting-started-with-bitcoin
Also used Vibe conding heavily via Codex and Gemini CLI.