Crypto Wallet Generator
Generate cryptographically secure Ethereum wallets client-side with private keys, addresses, mnemonic phrases, and QR codes. No server required.
About
Ethereum wallet security begins with key generation. A private key is a random 256-bit integer k in the range 1 β€ k < n, where n is the order of the secp256k1 curve (1.158 Γ 1077). Weak randomness in this step has caused real fund losses - the "blockchain bandit" exploited wallets generated from low-entropy keys and drained over $54 million. This tool uses crypto.getRandomValues() (CSPRNG) to produce keys with full 256-bit entropy. The public key is derived via elliptic curve point multiplication K = k β
G on the secp256k1 curve, and the address is the last 20 bytes of the Keccak-256 hash of the uncompressed public key. All operations execute in your browser. No private key data is transmitted over any network.
This generator also produces BIP-39 mnemonic phrases (12 or 24 words) for human-readable backup. The tool implements EIP-55 mixed-case checksum encoding, which catches 99.986% of address transcription errors. Limitation: this tool generates raw key pairs. It does not interact with the Ethereum network, broadcast transactions, or query balances. For hardware-level security, transfer generated keys to a cold storage device.
Formulas
The wallet generation pipeline follows three cryptographic stages:
where k is the private key (random 256-bit integer), G is the secp256k1 generator point, and K is the resulting public key point (x, y). The multiplication is scalar point multiplication on the elliptic curve defined by:
The Ethereum address A is derived by hashing the uncompressed public key (excluding the 04 prefix byte) with Keccak-256 and taking the rightmost 20 bytes:
For EIP-55 checksum encoding, each hex character at position i is uppercased if the corresponding nibble of Keccak256(lowercase address)[i] β₯ 8. BIP-39 mnemonic generation converts entropy bits to word indices via 11-bit segmentation after appending a SHA-256 checksum of length ENT32 bits, where ENT is the initial entropy length in bits.
Reference Data
| Parameter | Value | Description |
|---|---|---|
| Curve | secp256k1 | Elliptic curve used by Ethereum and Bitcoin |
| Field Prime p | 2256 β 232 β 977 | Prime defining the finite field Fp |
| Curve Order n | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 | Number of points on the curve |
| Generator Gx | 79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 | x-coordinate of base point |
| Generator Gy | 483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8 | y-coordinate of base point |
| Private Key Length | 256 bits (32 bytes) | Random integer in [1, nβ1] |
| Public Key (Uncompressed) | 512 bits (65 bytes with 04 prefix) | Point (x, y) on curve |
| Public Key (Compressed) | 264 bits (33 bytes) | x-coordinate + parity byte (02/03) |
| Address Length | 160 bits (20 bytes) | Last 20 bytes of Keccak-256(pubkey) |
| Hash Algorithm | Keccak-256 | SHA-3 variant (pre-NIST, Ethereum standard) |
| Checksum Standard | EIP-55 | Mixed-case hex encoding for error detection |
| Mnemonic Standard | BIP-39 | Entropy β mnemonic word sequence |
| Mnemonic Wordlist | 2048 English words | Standardized by BIP-39 specification |
| 12-Word Entropy | 128 bits | Security: ~2128 combinations |
| 24-Word Entropy | 256 bits | Security: ~2256 combinations |
| Cofactor h | 1 | secp256k1 has cofactor 1 (simple group) |
| Key Space Size | ~1.158 Γ 1077 | Brute-force infeasible |
| Address Format | 0x + 40 hex chars | Ethereum standard with optional EIP-55 checksum |
| Collision Probability | ~10β48 | Birthday paradox threshold for 160-bit addresses |
| CSPRNG Source | crypto.getRandomValues() | OS-level entropy (Windows CNG / Linux /dev/urandom) |