bitcoinecho-gui Svelte Themes

Bitcoinecho Gui

Web-based visual interface for Bitcoin Echo nodes. Communicates via JSON-RPC.

Bitcoin Echo GUI

A window into the last Bitcoin implementation.

Most software wants to grow forever. Bitcoin Echo wants to finish.

This GUI is how you see it — a browser-based interface to a running Bitcoin Echo node. It communicates exclusively via JSON-RPC. No wallet. No bloat. Just Bitcoin, visible.


Philosophy

The Bitcoin Echo node is ossified — frozen code that implements the Bitcoin protocol once, correctly, and stops. The GUI is different: it can evolve. Think of it as a window into an artifact, not part of the artifact itself.

The node: Pure C. Zero dependencies. Consensus frozen forever.

The GUI: SvelteKit. Can improve. A view, not a vault.


Stack

Layer Technology
Framework SvelteKit (SPA mode)
Language TypeScript
Styling Tailwind CSS
State Svelte stores
Build Vite

Why Svelte? It compiles away. ~2KB runtime vs 40KB for React. The framework disappears — much like how Bitcoin Echo disappears into permanence once complete.


Running

Prerequisites: Node.js 20+ (use nvm use if you have nvm)

# Clone
git clone https://github.com/bitcoinecho/bitcoinecho-gui.git
cd bitcoinecho-gui

# Install
npm install

# Run development server
npm run dev

Open http://localhost:5173

Running with Observer Mode

To use the live observer UI, you need a Bitcoin Echo node running in observer mode:

Terminal 1 — Start the node:

cd bitcoin-echo
./echo --observe

Terminal 2 — Start the GUI:

cd bitcoinecho-gui
npm run dev

Then navigate to http://localhost:5173/observer to see live Bitcoin network activity.

What you'll see:

  • Real-time block announcements as they propagate across the network
  • Live transaction announcements (INV messages)
  • Network statistics (peer count, uptime, message counts)
  • Current Bitcoin block height and network hashrate

Note: The GUI expects a Bitcoin Echo node running on localhost:8332. Without a node, you'll see connection errors.


Building

npm run build

Output goes to build/. Serve it with any static file server.


Project Structure

src/
├── lib/
│   ├── components/   # Button, Card, Badge, Hash, etc.
│   ├── rpc/          # JSON-RPC client (Phase 1)
│   └── stores/       # Svelte stores (Phase 1)
├── routes/           # SvelteKit file-based routing
│   ├── +layout.svelte
│   ├── +page.svelte  # Dashboard
│   ├── blocks/       # Block explorer (Phase 4)
│   ├── tx/           # Transaction view (Phase 5)
│   ├── broadcast/    # TX broadcast (Phase 5)
│   └── console/      # RPC console (Phase 6)
└── app.html

Roadmap

See GUI_ROADMAP.md for the full implementation plan.

Phase Status
0. Foundation ✅ Complete
1. Observer Mode ✅ Complete
2. Mock Mode 🔲 Not started
3. Dashboard 🔲 Not started
4. Block Explorer 🔲 Not started
5. Transaction View 🔲 Not started
6. RPC Console 🔲 Not started
7. Polish 🔲 Not started


License

MIT — Do whatever you want. This is Bitcoin.


Build once. Build right. Stop. Now Visible.

Top categories

Loading Svelte Themes