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.login the project directory.
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!
- 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!).
- 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.
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.
-
Prerequisites:
- Node.js (v14+ recommended).
- No external dependencies; everything is self-contained.
-
Installation:
npm install # Not required, but initializes if needed -
Run the Server:
npm start
- Starts the server on
http://localhost:3000. - Open in a modern browser (Chrome/Firefox recommended for best Canvas performance).
- Starts the server on
-
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.logfor any (improbable) hits.
-
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).
- 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.
- 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.
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). 🚀🪙
