Skip to content

mstrokin/ten-million-bitcoin-keys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interkey Stellar: 3D Bitcoin Key Odyssey

API Usage Notice: This project relies on the Blockchain.info API for checking Bitcoin addresses' balances and transaction counts. We are deeply grateful to Blockchain.info for providing this free, public service that powers the balance verification feature. Please respect their rate limits and terms of service to ensure continued access for all users. Thank you!

Log-Balance Notification: When a non-zero balance or transaction is detected for a generated key, the application automatically logs the details (including the private key, address, balance, and page) to a PUBLIC file named found_balances.log in the project directory.

Screenshot

Overview

Interkey Stellar is an interactive web application that generates and visualizes 10 million Bitcoin private keys in a 3D galactic sphere. It derives public keys and addresses for each private key, checks their balances and transaction counts using the Blockchain.info API, and renders the results as points in a rotatable, zoomable 3D space. Points are colored based on their state: green for non-zero balances, yellow for addresses with transactions, and deterministic colors for empty addresses. The app is inspired by the futility of brute-forcing Bitcoin's vast 2^256 keyspace, turning it into an entertaining cosmic exploration.

This is a clone of concepts like keys.lol, but with a stellar 3D visualization theme, referencing Interstellar with a Bitcoin twist: "They should have sent a Satoshi!"

Disclaimer: This is purely for educational and entertainment purposes. The probability of finding a funded wallet is astronomically low—equivalent to finding a specific atom in the observable universe. Do not expect real results; it's computationally impossible to cover even a fraction of the keyspace.

To illustrate: The Bitcoin keyspace has approximately 2^256 ≈ 1.16 × 10^77 possible keys. If 100 billion universes (10^11), each containing 100 billion planets (10^11), each planet populated by 100 billion people (10^11), each person using 100 billion browsers (10^11), and every browser opened 100 billion tabs (10^11 tabs/browser), totaling 10^55 tabs, and each tab checked 100 billion keys (10^11) per second, the collective rate would be 10^66 keys/second. Covering the entire keyspace would still take about 10^11 seconds, or roughly 3.17 million years—still far beyond human timescales. In light-years, that's the distance light travels in 3.17 million years, about 3.17 million light-years, spanning much of our galaxy. Pure entertainment!

Features

  • Key Generation: Generates batches of up to 10 million sequential or random private keys using Node.js crypto (secp256k1 curve).
  • Balance Checking: Queries Blockchain.info for balances and transaction counts in batches of 250 addresses.
  • 3D Visualization:
    • Points distributed randomly on a spherical galaxy (radius: 50,000 units).
    • Interactive rotation (mouse drag, touch, arrow keys), zooming (wheel, pinch), and navigation (WASD keys).
    • Fixed-size points with hover enlargement; wireframe sphere outline.
    • Inertia and momentum for smooth interactions.
  • UI Interactions:
    • Click/tap points to view details in a modal (private key, public key, address, balance, tx count).
    • Copy keys to clipboard.
    • Export all data as CSV.
    • Progress updates during loading.
  • Performance Optimizations:
    • Batched key generation and balance checks.
    • Efficient 3D projection without WebGL (pure Canvas 2D).
    • Gzip compression for API responses.
  • Logging: Non-zero balances are logged to found_balances.log (unlikely, but ready!).

Tech Stack

  • Backend: Node.js (HTTP server with crypto for key derivation, base58 encoding for addresses).
  • Frontend: Vanilla JavaScript (ES modules), HTML5 Canvas for 2D rendering of 3D projections.
  • APIs: Blockchain.info for balance checks; custom endpoints for key batches.
  • Dependencies: None (pure Node.js stdlib + browser APIs).
  • Build/Run: No build step; serve with npm start.

Project Structure

  • server.js: HTTP server handling static files, key generation (/generate-batch), and balance logging (/log-balance).
  • index.html: Main page with inline CSS and canvas setup.
  • data.js: Key generation, parsing, balance fetching, and point creation.
  • rendering.js: 3D projection, rotation, coloring, and Canvas rendering.
  • input.js: Mouse, touch, keyboard, and wheel event handling with inertia.
  • ui.js: Modal for details, copy-to-clipboard, and click handling.
  • utils.js: Helpers (sleep, hashing for colors, random page selection).
  • package.json: Project metadata and start script.

Setup and Running

  1. Prerequisites:

    • Node.js (v14+ recommended).
    • No external dependencies; everything is self-contained.
  2. Installation:

    npm install  # Not required, but initializes if needed
  3. Run the Server:

    npm start
    • Starts the server on http://localhost:3000.
    • Open in a modern browser (Chrome/Firefox recommended for best Canvas performance).
  4. Usage:

    • Load the page: Keys auto-generate and balances check (may take 1-5 minutes for 10M keys).
    • Interact: Drag to rotate, scroll/pinch to zoom, WASD to fly, click points for details.
    • Export: Click "Export CSV" when done.
    • Logs: Check found_balances.log for any (improbable) hits.
  5. Development:

    • Edit JS files and refresh the browser.
    • For production, consider adding HTTPS or deploying to a static host (but backend is needed for key gen).

Performance Notes

  • Browser: Handles 10M points efficiently via batched rendering and projection culling (only front-facing points drawn).
  • API Limits: Blockchain.info batches up to ~1000 addresses; app uses 250 for safety. Rate limiting may apply—add delays if needed.
  • Keyspace: Uses sequential keys per "page" (250 keys/page), but random page starts for variety. Full keyspace is 2^256 (~10^77), so 10M is negligible.
  • Mobile: Touch-friendly with pinch-zoom and drag.

Potential Improvements

  • Integrate WebGL (Three.js) for better 3D performance on large datasets.
  • Add filters (e.g., show only non-zero balances).
  • Support multiple address formats (e.g., SegWit).
  • Persist/export found keys securely.
  • Dockerize for easy deployment.

License

ISC License (see package.json). This project is open-source; use at your own risk. No warranties—Bitcoin keys are sensitive!


Generated on November 16, 2025. Stars align for the bold (or lucky). 🚀🪙

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors