A web application that generates Ed25519 keys compatible with MeshCore. Runs entirely in your browser.
Generates Ed25519 key pairs where the public key starts with a specific hex prefix. MeshCore uses the first two characters of the public key as a node identifier, so this helps avoid collisions with neighboring nodes.
- Generate Ed25519 keys with custom hex prefixes up to 64 characters
- Python-style pro pattern modes: simple first-two, cosmetic 2/4/6/8, and prefix + cosmetic
- Watchlist monitoring using
FIRST...LAST | Descriptionpatterns - Optional WebGPU acceleration for prefix-gated searches
- Generation tuning controls for GPU batch size, WASM worker count, WASM batch size, and JS fallback batch size
- Real-time progress display (attempts, speed, time)
- JSON export of generated keys
- Import instructions for MeshCore nodes
- URL parameter support for pre-filling prefixes
- Open
index.htmlin a web browser - Enter a hex prefix (e.g., "F8", "F8A1")
- Click "Generate Key"
- Download the JSON file when complete
Pre-fill the prefix input:
index.html?prefix=FA- Sets prefix to "FA"index.html?prefix=f8a1- Sets prefix to "F8A1"
- Private Key: 64 bytes (128 hex characters)
- Public Key: 32 bytes (64 hex characters)
Baseline: ~100,000 keys/second on modern devices. Example measurements:
- iPhone 15 Pro: ~100k keys/sec
- M4 Mac Mini: ~300k keys/sec
- Intel i7-9700K: ~85k keys/sec
- AMD Ryzen 9950X: ~417k keys/sec
Expected time to find a key at 100k keys/second:
- 1-character prefix: < 0.01 seconds
- 2-character prefix: ~0.003 seconds
- 3-character prefix: ~0.04 seconds
- 4-character prefix: ~0.7 seconds
- 5-character prefix: ~10 seconds
- 6-character prefix: ~3 minutes
- 7-character prefix: ~45 minutes
- 8-character prefix: ~12 hours
index.html?perfDebug=1enables live worker performance counters in the progress line.- Browser console helper:
await runPerfSmoke('F8', 10)runs a fixed-duration smoke test and returns sampled keys/sec plus median throughput. window.keyGeneratoris exposed for quick manual inspection while tuning worker/batch behavior.
Chrome 60+, Firefox 55+, Safari 11+, Edge 79+
- Connect to your node using the MeshCore app
- Tap the Settings gear icon
- Tap "Manage Identity Key"
- Paste your Private Key into the text box
- Tap "Import Private Key"
- Tap the checkmark ✓ to save changes
- Flash companion firmware temporarily
- Follow companion instructions above
- Re-flash to repeater firmware
- MeshCore app → Import Config
- Select downloaded JSON file
{
"public_key": "F8A1B2C3D4E5F6789012345678901234567890ABCDEF1234567890ABCDEF12",
"private_key": "305e0b1b3142a95882915c43cd806df904247a2d505505f73dfb0cde9e666c4d656591bb4b5a23b6f47c786bf6cccfa0c4423c4617bbc9ab51dfb6f016f84144"
}Filename: meshcore_[PREFIX]_[TIMESTAMP].json
- All processing happens in your browser
- No network requests during generation
- Keys never leave your device
This web version includes the browser-safe pattern functions from the Python generator:
- Prefix only, including prefixes longer than 8 characters
- Simple first-two node ID search
- Cosmetic 2/4/6/8 matching, where the first N hex characters match the last N characters or their reverse
- Prefix + cosmetic matching
- Watchlist monitoring while searching
The browser UI exposes performance controls:
- Enable or disable GPU acceleration when WebGPU is available
- Set WASM worker count, which maps to the number of Web Workers used by the WASM prefix engine
- Tune GPU, WASM, and JS batch sizes with plain numbers or
K/Msuffixes
Slow performance: Close other tabs, use desktop, try shorter prefixes
Browser freezes: Refresh the page
No match found: Normal for difficult patterns, try shorter prefix