{"id":44266571,"url":"https://github.com/aarambh-darshan/mini-blockchain","last_synced_at":"2026-02-10T18:24:35.735Z","repository":{"id":328743413,"uuid":"1116174634","full_name":"aarambh-darshan/mini-blockchain","owner":"aarambh-darshan","description":"A robust, full-stack blockchain engine built in Rust. Features a custom VM for smart contracts with real gas economics, Proof-of-Work consensus, UTXO transactions, multisig wallets, and a real-time SvelteKit block explorer.","archived":false,"fork":false,"pushed_at":"2025-12-17T03:17:40.000Z","size":333,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-17T20:31:01.439Z","etag":null,"topics":["blockchain","cryptography","defi","distributed-systems","p2p","proof-of-work","rust","smart-contracts","sveltekit","utxo","vm","web3"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aarambh-darshan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"AarambhDevHub","buy_me_a_coffee":"AarambhDevHub"}},"created_at":"2025-12-14T10:56:29.000Z","updated_at":"2025-12-17T03:22:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aarambh-darshan/mini-blockchain","commit_stats":null,"previous_names":["aarambh-darshan/mini-blockchain"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/aarambh-darshan/mini-blockchain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarambh-darshan%2Fmini-blockchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarambh-darshan%2Fmini-blockchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarambh-darshan%2Fmini-blockchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarambh-darshan%2Fmini-blockchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aarambh-darshan","download_url":"https://codeload.github.com/aarambh-darshan/mini-blockchain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarambh-darshan%2Fmini-blockchain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29310719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T17:48:59.043Z","status":"ssl_error","status_checked_at":"2026-02-10T17:45:37.240Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","cryptography","defi","distributed-systems","p2p","proof-of-work","rust","smart-contracts","sveltekit","utxo","vm","web3"],"created_at":"2026-02-10T18:24:35.018Z","updated_at":"2026-02-10T18:24:35.726Z","avatar_url":"https://github.com/aarambh-darshan.png","language":"Rust","funding_links":["https://github.com/sponsors/AarambhDevHub","https://buymeacoffee.com/AarambhDevHub"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Rust-000000?style=for-the-badge\u0026logo=rust\u0026logoColor=white\" alt=\"Rust\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge\" alt=\"License\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Status-Production_Ready-blue?style=for-the-badge\" alt=\"Status\"/\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e⛓️ Mini-Blockchain\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA production-ready blockchain implementation in Rust\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#cli-commands\"\u003eCLI Commands\u003c/a\u003e •\n  \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e •\n  \u003ca href=\"#api\"\u003eAPI\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## ✨ Features\n\n### Core Blockchain\n| Feature | Description |\n|---------|-------------|\n| ⛏️ **Proof of Work** | SHA-256 mining with dynamic difficulty adjustment |\n| 🔐 **ECDSA Signatures** | secp256k1 curve for secure transaction signing |\n| 💰 **UTXO Model** | Bitcoin-style with locktime, RBF, and chain ID |\n| 🌳 **Merkle Trees** | Efficient transaction verification and integrity |\n| 🔀 **Fork Resolution** | Longest chain rule with orphan block handling |\n| ⏱️ **MTP Validation** | Median Time Past for timestamp security |\n\n### Wallets \u0026 Transactions\n| Feature | Description |\n|---------|-------------|\n| 👛 **Wallet System** | Key generation with Base58Check addresses |\n| ✍️ **Multi-Signature** | M-of-N threshold signatures for shared wallets |\n| 🔄 **Replace-By-Fee** | BIP-125 transaction replacement |\n| ⏳ **Locktime** | BIP-65 time-locked transactions |\n| 🛡️ **Replay Protection** | EIP-155 style chain ID |\n\n### Network \u0026 Security\n| Feature | Description |\n|---------|-------------|\n| 🌐 **P2P Networking** | TCP with 24-byte header, SHA-256 checksums |\n| 🔗 **API + P2P Integration** | Run API with embedded P2P node for block broadcasting |\n| 📡 **Block Propagation** | Real-time gossip with relay to all peers |\n| 🔍 **Peer Discovery** | DNS seeds + GetAddr/Addr exchange |\n| 🗂️ **Address Manager** | Bitcoin-style new/tried tables |\n| 🚫 **Peer Scoring** | Misbehavior detection and banning |\n| 🛑 **Rate Limiting** | DOS protection (1000 msg/min) |\n| 🌍 **NAT Traversal** | UPnP port mapping with auto-renewal |\n| ⚡ **Parallel Sync** | Download blocks from multiple peers |\n| 🛡️ **Eclipse Resistance** | Subnet diversity for connection selection |\n\n### Storage \u0026 Performance\n| Feature | Description |\n|---------|-------------|\n| 📇 **Block Indexing** | Fast lookups by hash, height, address |\n| 💾 **UTXO Cache** | LRU cache with 100K entries |\n| ✅ **Checkpoints** | Fast sync for known-good blocks |\n| 🗑️ **Pruning** | Configurable block retention |\n\n### Advanced Features\n| Feature | Description |\n|---------|-------------|\n| 🔍 **SPV Support** | Bloom filters (BIP-37) for light clients |\n| 💵 **Fee Estimation** | Smart fee calculation (high/normal/low) |\n| 🗜️ **Compression** | Delta encoding for efficient storage |\n| 🪙 **On-Chain Tokens** | ERC-20 style fungible tokens via transaction opcodes |\n| ⛽ **Gas System** | Real gas payments for contracts |\n| 📜 **On-Chain Smart Contracts** | Stack-based VM with bytecode, deployed via transactions |\n| 🌐 **Web UI** | SvelteKit + shadcn-svelte dashboard |\n| 🚀 **REST API** | HTTP API with Axum |\n| 🔌 **WebSocket** | Real-time updates |\n\n### Production-Grade Security (Bitcoin/Ethereum Inspired)\n| Feature | Value | Description |\n|---------|-------|-------------|\n| 🔒 **Coinbase Maturity** | 100 blocks | Mining rewards can't be spent until 100 confirmations |\n| 📦 **Block Size Limit** | 1 MB | Maximum block size (Bitcoin-style) |\n| 📄 **Transaction Size** | 100 KB | Maximum transaction size |\n| 📑 **Script System** | P2PKH, P2SH, MultiSig | Bitcoin-like output locking scripts |\n| 🔐 **Signature Hash Types** | ALL, NONE, SINGLE | SIGHASH types for flexible signing |\n| 👨‍👩‍👧 **Package Limits** | 25/25 | Max ancestors/descendants per tx chain |\n| 💾 **Mempool Size** | 300 MB | Maximum mempool memory usage |\n| 🔁 **Call Depth Limit** | 1024 | Prevents stack overflow attacks (EVM-style) |\n| 🧠 **Memory Gas Metering** | Linear | Gas charged for VM memory expansion |\n| 🛡️ **Reentrancy Protection** | Automatic | Prevents contract reentrancy attacks |\n\n---\n\n## 📦 Installation\n\n\n### Prerequisites\n\n- Rust 1.70+ (install via [rustup](https://rustup.rs/))\n\n### Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/mini-blockchain.git\ncd mini-blockchain\n\n# Build release version\ncargo build --release\n\n# The binary will be at ./target/release/blockchain\n```\n\n---\n\n## 🚀 Quick Start\n\n```bash\n# 1. Initialize a new blockchain\n./target/release/blockchain init\n\n# 2. Create a wallet\n./target/release/blockchain wallet new --label \"MyWallet\"\n\n# 3. Start mining (replace ADDRESS with your wallet address)\n./target/release/blockchain mine --address \u003cADDRESS\u003e --count 5\n\n# 4. Check your balance\n./target/release/blockchain wallet balance --address \u003cADDRESS\u003e\n\n# 5. View blockchain info\n./target/release/blockchain chain\n```\n\n### Example Output\n\n```\n⛏️  Mining 5 block(s) for address: 1FUdbKMd9nfCC6gGmczBXniNDuYw81Zyyg\n\n   Block 1 mined!\n   ├─ Hash: 00fcfbb82a7dfe25\n   ├─ Transactions: 1\n   ├─ Time: 0ms\n   ├─ Attempts: 577\n   └─ Hash rate: 577.00 H/s\n\n💰 New balance for miner: 250 coins\n```\n\n---\n\n## 🖥️ CLI Commands\n\n### Blockchain Management\n\n| Command | Description |\n|---------|-------------|\n| `init` | Initialize a new blockchain |\n| `chain` | Display blockchain information |\n| `chain blocks --count N` | Show last N blocks |\n| `validate` | Verify chain integrity |\n| `export --output FILE` | Export blockchain to JSON |\n| `import --input FILE` | Import blockchain from JSON |\n\n### Wallet Operations\n\n| Command | Description |\n|---------|-------------|\n| `wallet new` | Create a new wallet |\n| `wallet new --label NAME` | Create wallet with label |\n| `wallet list` | List all wallets |\n| `wallet balance --address ADDR` | Check wallet balance |\n\n### Mining \u0026 Transactions\n\n| Command | Description |\n|---------|-------------|\n| `mine --address ADDR` | Mine a single block |\n| `mine --address ADDR --count N` | Mine N blocks |\n| `send --from ADDR --to ADDR --amount N` | Send coins |\n| `mempool` | Show pending transactions |\n\n### Examples\n\n```bash\n# Initialize with custom difficulty (higher = harder)\nblockchain init --difficulty 16\n\n# Mine 10 blocks\nblockchain mine --address 1ABC123... --count 10\n\n# Send 25 coins\nblockchain send --from 1ABC123... --to 1XYZ789... --amount 25\n\n# Export blockchain backup\nblockchain export --output backup.json\n```\n\n### P2P Networking\n\n| Command | Description |\n|---------|-------------|\n| `node start` | Start P2P node on default port (8333) |\n| `node start --port PORT` | Start node on custom port |\n| `node start --peers HOST:PORT` | Start and connect to peers |\n| `node status` | Show node connection info |\n\n```bash\n# Terminal 1: Start first standalone P2P node\nRUST_LOG=info blockchain node start --port 8334\n\n# Terminal 2: Start second node and connect\nRUST_LOG=info blockchain node start --port 8335 --peers 127.0.0.1:8334\n```\n\n### REST API\n\n| Command | Description |\n|---------|-------------|\n| `api start` | Start REST API on default port (3000) |\n| `api start --port PORT` | Start on custom port |\n| `api start --p2p-port PORT` | **NEW:** Enable embedded P2P node |\n| `api start --peers HOST:PORT` | Connect to P2P network |\n\n```bash\n# API-only mode (no P2P)\nblockchain api start --port 3000\n\n# 🆕 API + P2P mode (blocks mined via UI broadcast to network!)\nRUST_LOG=info blockchain api start --port 3000 --p2p-port 8333 --peers 127.0.0.1:8334\n\n# Test endpoints with curl\ncurl http://localhost:3000/api/chain\ncurl http://localhost:3000/api/wallets/1ABC.../balance\ncurl -X POST http://localhost:3000/api/mine -H \"Content-Type: application/json\" -d '{\"miner_address\": \"1ABC...\"}'\n```\n\n\u003e **💡 Tip:** With `--p2p-port`, blocks mined via the Web UI are automatically broadcast to all connected P2P nodes in real-time!\n\n### Web UI\n\nThe REST API server includes an embedded Web UI built with SvelteKit + shadcn-svelte.\n\n| Page | Features |\n|------|----------|\n| Dashboard | Chain stats, recent blocks, **real-time updates** |\n| Blocks | Block explorer with details |\n| **Search** | **Global search across blocks, transactions, addresses, tokens** |\n| Wallets | Create/list wallets, view balances |\n| Mining | Mine blocks with reward display |\n| Contracts | Deploy, list, and call contracts |\n| Multisig | Create M-of-N wallets, view pending transactions |\n| Tokens | Create ERC-20 tokens, transfer, check balances |\n| Mempool | View pending transactions |\n\n```bash\n# Start the server and open the Web UI\nblockchain api start --port 3000\n# Visit http://localhost:3000\n```\n\n### WebSocket\n\nConnect to `/ws` for real-time updates. Events are JSON with the following types:\n\n| Event | Description |\n|-------|-------------|\n| `Connected` | Connection established |\n| `BlockMined` | New block mined (includes block info and reward) |\n| `TransactionAdded` | Transaction added to mempool |\n| `ChainUpdated` | Chain state changed |\n\n```javascript\n// JavaScript example\nconst ws = new WebSocket('ws://localhost:3000/ws');\nws.onmessage = (event) =\u003e {\n  const data = JSON.parse(event.data);\n  console.log(data.type, data.data);\n};\n```\n\n### Smart Contracts\n\nSee [CONTRACT_EXAMPLES.md](CONTRACT_EXAMPLES.md) for detailed examples and assembly code.\n\n| Command | Description |\n|---------|-------------|\n| `contract deploy --file FILE` | Deploy contract from .asm file |\n| `contract call --address ADDR --args ARGS` | Call contract |\n| `contract list` | List all deployed contracts |\n| `contract info --address ADDR` | Show contract details |\n\n```bash\n# Create a simple add contract (examples/add.asm):\n# ARG 0\n# ARG 1  \n# ADD\n# RETURN\n\n# Deploy it\nblockchain contract deploy --file examples/add.asm\n\n# Call it with args\nblockchain contract call --address 0x... --args \"10,25\"\n# Returns: 35\n```\n\n### Multi-Signature Wallets\n\nCreate wallets requiring M-of-N signatures to spend funds:\n\n```bash\n# Create a 2-of-3 multisig wallet via API\ncurl -X POST http://localhost:3000/api/multisig \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"threshold\": 2,\n    \"signers\": [\"\u003cpubkey1\u003e\", \"\u003cpubkey2\u003e\", \"\u003cpubkey3\u003e\"],\n    \"label\": \"Team Treasury\"\n  }'\n\n# Response includes the multisig address (starts with '3')\n# {\"address\": \"3ABC...\", \"threshold\": 2, \"signer_count\": 3, ...}\n\n# Propose a transaction\ncurl -X POST http://localhost:3000/api/multisig/3ABC.../propose \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"to\": \"1RECIPIENT...\", \"amount\": 100}'\n\n# Sign with each authorized wallet (need M signatures)\ncurl -X POST http://localhost:3000/api/multisig/3ABC.../sign \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"tx_id\": \"TX_ID\", \"signer_pubkey\": \"\u003cpubkey1\u003e\", \"signature\": \"\u003csig1\u003e\"}'\n```\n\n### Tokens (ERC-20 Style)\n\nCreate and manage fungible tokens with a standard ERC-20 interface:\n\n| API Endpoint | Description |\n|--------------|-------------|\n| `POST /api/tokens` | Create new token |\n| `GET /api/tokens` | List all tokens |\n| `GET /api/tokens/{addr}` | Get token info |\n| `GET /api/tokens/{addr}/balance/{holder}` | Get balance |\n| `POST /api/tokens/{addr}/transfer` | Transfer tokens |\n| `POST /api/tokens/{addr}/approve` | Approve spender |\n| `GET /api/tokens/{addr}/allowance` | Check allowance |\n| `POST /api/tokens/{addr}/transferFrom` | Delegated transfer |\n\n```bash\n# Create a new token\ncurl -X POST http://localhost:3000/api/tokens \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"My Token\",\n    \"symbol\": \"MTK\",\n    \"decimals\": 18,\n    \"total_supply\": \"1000000\",\n    \"creator\": \"1ABC...\"\n  }'\n\n# Check token balance\ncurl http://localhost:3000/api/tokens/0xTOKEN.../balance/1ABC...\n\n# Transfer tokens\ncurl -X POST http://localhost:3000/api/tokens/0xTOKEN.../transfer \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"from\": \"1ABC...\", \"to\": \"1DEF...\", \"amount\": \"1000\"}'\n\n# Approve a spender\ncurl -X POST http://localhost:3000/api/tokens/0xTOKEN.../approve \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"owner\": \"1ABC...\", \"spender\": \"1DEF...\", \"amount\": \"5000\"}'\n```\n\n**Token vs Coins:**\n| Asset | Description |\n|-------|-------------|\n| **Coins** | Native blockchain currency (from mining) |\n| **Tokens** | Custom assets created via `/api/tokens` |\n\n---\n\n## 🏗️ Architecture\n\n```\nsrc/\n├── main.rs              # CLI entry point\n├── lib.rs               # Library exports\n│\n├── core/                # 🧱 Core Blockchain\n│   ├── block.rs         # Block structure \u0026 PoW mining\n│   ├── blockchain.rs    # Chain management \u0026 validation\n│   └── transaction.rs   # UTXO transactions, signatures \u0026 on-chain ops\n│\n├── crypto/              # 🔐 Cryptography\n│   ├── hash.rs          # SHA-256 hashing utilities\n│   ├── keys.rs          # ECDSA key management\n│   └── merkle.rs        # Merkle tree implementation\n│\n├── wallet/              # 👛 Wallet\n│   └── wallet.rs        # Key storage \u0026 tx creation\n│\n├── mining/              # ⛏️ Mining\n│   ├── miner.rs         # Block mining engine\n│   └── mempool.rs       # Transaction pool\n│\n├── network/             # 🌐 P2P Networking\n│   ├── message.rs       # Protocol messages\n│   ├── node.rs          # Main P2P node\n│   ├── peer.rs          # Peer management\n│   ├── server.rs        # TCP server \u0026 codec\n│   └── sync.rs          # Chain synchronization\n│\n├── api/                 # 🚀 REST API\n│   ├── handlers.rs      # Endpoint handlers\n│   └── routes.rs        # Route configuration\n│\n├── contract/            # 📜 Smart Contracts\n│   ├── opcodes.rs       # VM instruction set\n│   ├── vm.rs            # Stack-based VM\n│   ├── contract.rs      # Contract management\n│   └── compiler.rs      # Assembly compiler\n│\n├── storage/             # 💾 Storage\n│   └── persistence.rs   # Save/load blockchain\n│\n└── cli/                 # 🖥️ CLI\n    └── commands.rs      # Command handlers\n```\n\n---\n\n## 📚 API\n\n### Library Usage\n\n```rust\nuse mini_blockchain::{Blockchain, Wallet, Miner, BLOCK_REWARD};\n\nfn main() {\n    // Create a blockchain with custom difficulty\n    let mut blockchain = Blockchain::with_difficulty(8);\n    \n    // Create wallets\n    let alice = Wallet::new();\n    let bob = Wallet::new();\n    \n    println!(\"Alice: {}\", alice.address());\n    println!(\"Bob: {}\", bob.address());\n    \n    // Mine blocks to earn coins\n    let miner = Miner::new(\u0026alice.address());\n    for _ in 0..3 {\n        let (block, stats) = miner.mine_block(\u0026mut blockchain, vec![]).unwrap();\n        println!(\"Mined block {} in {}ms\", block.index, stats.time_ms);\n    }\n    \n    // Check balance\n    println!(\"Alice's balance: {} coins\", alice.balance(\u0026blockchain));\n    \n    // Create a transaction\n    let tx = alice.create_transaction(\u0026bob.address(), 50, \u0026blockchain).unwrap();\n    println!(\"Transaction: {}\", tx.id);\n    \n    // Validate chain\n    assert!(blockchain.is_valid());\n}\n```\n\n---\n\n## ⚙️ Configuration\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `difficulty` | 16 | Mining difficulty (leading zero bits) |\n| `block_reward` | 50 | Coins per mined block |\n| `target_block_time` | 10s | Target time between blocks |\n| `difficulty_adjustment` | 10 blocks | Blocks between difficulty changes |\n\n---\n\n## 🧪 Testing\n\n```bash\n# Run all tests\ncargo test\n\n# Run with output\ncargo test -- --nocapture\n\n# Run specific module tests\ncargo test crypto::\ncargo test core::blockchain::\n```\n\n**Test Coverage:**\n- ✅ 52 unit tests\n- ✅ Block creation \u0026 mining\n- ✅ Chain validation\n- ✅ Transaction signing\n- ✅ UTXO tracking\n- ✅ Wallet operations\n- ✅ Storage persistence\n- ✅ Network message codec\n- ✅ P2P node creation\n- ✅ Smart contract VM\n- ✅ Contract deployment \u0026 execution\n\n---\n\n## 📊 Performance\n\nBenchmarks on Intel i7 (single-threaded):\n\n| Difficulty | Avg. Attempts | Avg. Time |\n|------------|---------------|-----------|\n| 8 bits | ~256 | \u003c 1ms |\n| 16 bits | ~65,536 | ~50ms |\n| 20 bits | ~1M | ~500ms |\n| 24 bits | ~16M | ~8s |\n\n---\n\n## 🛣️ Roadmap\n\n### ✅ Completed\n\n- [x] Core blockchain with PoW\n- [x] ECDSA transaction signing  \n- [x] UTXO model\n- [x] Wallet management\n- [x] CLI interface\n- [x] Persistence layer\n- [x] P2P networking\n- [x] REST API\n- [x] Smart contracts (VM, compiler, storage)\n- [x] Web UI (SvelteKit + shadcn-svelte)\n- [x] Contract deployment via Web UI\n- [x] WebSocket for real-time updates\n- [x] Multi-signature transactions\n- [x] Token standards (ERC-20 style)\n- [x] Block explorer search\n\n### 🔮 Future Ideas\n\n- [ ] Mobile-responsive UI\n- [ ] Docker deployment\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ in Rust\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarambh-darshan%2Fmini-blockchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faarambh-darshan%2Fmini-blockchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarambh-darshan%2Fmini-blockchain/lists"}