How is a crypto address made from a private key?
A random 32-byte private key is generated, then elliptic-curve maths turns it into a public key, and hashing turns that into an address. Each chain formats the same kind of key differently: Bitcoin, Litecoin and Dogecoin hash the public key and base58check-encode it, Ethereum takes the last 20 bytes of a keccak-256 hash, and Solana uses the ed25519 public key directly. Everything happens in your browser and is for learning and testing only.
From private key to address
Every crypto account starts as a private key: a random 256-bit number, which is just 32 bytes of pure chance. This tool draws that number with your browser's cryptographic random generator, then walks it through the same steps a real wallet uses. First the private key is turned into a public key using elliptic-curve maths, a one-way process that is easy to run forwards and effectively impossible to reverse. Then the public key is hashed and encoded into the short string you would actually share, the address.
The important idea is that all three layers describe the same account. The private key can produce the public key, and the public key can produce the address, but nothing lets you travel back the other way. That asymmetry is what makes the whole system work: you can hand out an address freely, while the private key stays secret and controls everything.
Why each chain looks different
Bitcoin, Litecoin, Dogecoin and Ethereum all use the same curve, secp256k1, so a single private key is valid on any of them. What differs is the final formatting. Bitcoin, Litecoin and Dogecoin take hash160, which is RIPEMD-160 applied to a SHA-256 of the public key, then wrap it in base58check with a version byte: 0x00 gives a Bitcoin address starting with 1, 0x30 gives a Litecoin address starting with L, and 0x1e gives a Dogecoin address starting with D. Bitcoin can also write the same key as a modern bech32 address starting with bc1.
Ethereum uses the same curve but a different recipe: it takes the keccak-256 hash of the uncompressed public key and keeps the last 20 bytes, then mixes upper and lower case into the hex using the EIP-55 rule as a built-in typo check. That address works on every EVM chain, including Polygon, Arbitrum and Base. Solana is the odd one out: it uses a different curve, ed25519, and the address is simply the public key written in base58.
What the tool shows you
Pick a chain and press generate. You get the raw private key in hexadecimal, and for Bitcoin the same key in compressed Wallet Import Format so you can see how the two representations relate. You also get the public key, in compressed hex for the secp256k1 chains or base58 for Solana, and the address or addresses for that chain. The example key above always gives the same results, which is a useful way to confirm the maths is working: real generation is random, so pressing generate again gives a completely fresh account every time.
A serious safety warning
This is a teaching and testing tool, and nothing more. A private key created inside a web page has passed through JavaScript that scripts, browser extensions or a compromised device could read, so you should assume every key shown here is already public. Never send funds to an address whose key was generated in a browser, and never reuse these keys for anything real. Genuine wallets generate keys offline on hardware built for the job, and they never show you the raw key at all.
Everything here happens on your device and nothing is uploaded, but that is not the same as being secure enough for money. Use the tool to understand how keys and addresses fit together, to test software against known values, or to explore the differences between chains. This is general information to help you learn, not financial or security advice; for real holdings, use a reputable hardware wallet and keep your recovery phrase offline.
How we work it out
A 32-byte key from crypto.getRandomValues. For Bitcoin, Litecoin, Dogecoin and Ethereum it is a secp256k1 private key; the public key is derived with elliptic. Bitcoin, Litecoin and Dogecoin use hash160 = RIPEMD-160(SHA-256(pubkey)) then base58check with version 0x00, 0x30 or 0x1e, plus a bech32 P2WPKH for Bitcoin. Ethereum uses the last 20 bytes of keccak-256 of the uncompressed public key with EIP-55 casing. Solana derives an ed25519 key with tweetnacl and base58-encodes the public key.
Frequently asked questions
Is it safe to use these keys with real money?
No. This tool is for learning and testing only. A key generated in a web browser can be seen by scripts, extensions or a compromised device, so you must never send funds to an address whose key was made here, and never reuse these keys. Real wallets generate keys offline in a controlled environment for exactly this reason.
Is my key sent anywhere?
No. The private key is generated with crypto.getRandomValues and every step of the derivation runs in your browser using self-hosted maths libraries. Nothing is uploaded, logged or shared. Even so, treat any key shown here as already public and disposable.
Why does Ethereum show one address but Bitcoin shows two?
Ethereum has a single address format, and the same address works on every EVM chain such as Polygon, BNB Chain, Arbitrum and Base. Bitcoin has more than one format, so the tool shows both the legacy P2PKH address starting with 1 and the modern bech32 P2WPKH address starting with bc1, which are two ways of writing an address for the same key.
Why do the same maths give different addresses on different chains?
Bitcoin, Litecoin and Dogecoin share the secp256k1 curve and only differ by a version byte, which is why their addresses start with 1, L and D. Ethereum uses the same curve but a different hashing and encoding scheme. Solana uses a completely different curve, ed25519, so its key and address are formatted their own way.
Can I turn an address back into its private key?
No, and that is the whole point. Deriving the address from the key is easy, but going backwards would mean breaking the elliptic-curve maths, which is considered infeasible. This is also why losing a private key means losing access for good, so real keys must be backed up carefully.