GALAXY OF TOOLS

CRYPTO SECTOR

Public Key to Address Converter – Bitcoin & Ethereum

Turn a secp256k1 public key into its Bitcoin (legacy, SegWit, Taproot) and Ethereum addresses, offline.

Compressed (33 bytes), uncompressed (65 bytes) or raw x‖y (64 bytes). Spaces, colons and 0x are ignored.

Bitcoin mainnet · compressed public key · on the secp256k1 curve

Address typeAddressCopy
Legacy P2PKHfrom the compressed key1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH
Legacy P2PKHfrom the uncompressed key (old wallets)1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
Nested SegWit P2SH-P2WPKHBIP-49 style, starts with 33JvL6Ymt8MVWiCNHC7oWU6nLeHNJKLZGLN
Native SegWit P2WPKHbech32, BIP-84 stylebc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Taproot P2TRkey path only (BIP-86), bech32mbc1pmfr3p9j00pfxjh0zmgp99y8zftmd3s5pmedqhyptwy6lm87hf5sspknck9
Ethereum / EVMEIP-55 checksum, every EVM chain0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
TRONsame 20 bytes, base58 with 0x41TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC

Key details

Input form
compressed · y is even (02)
Compressed key (33 bytes)
0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
Uncompressed key (65 bytes)
0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
x-only key (BIP-340)
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
HASH160 of compressed key
751e76e8199196d454941c45d1b3a323f1433bd6
HASH160 of uncompressed key
91b24bf9f5288532960ac687abb035127b1d28a5
Taproot output key (tweaked)
da4710964f7852695de2da025290e24af6d8c281de5a0b902b7135fd9fd74d21

Runs offline in your browser: the key is never sent anywhere. Public keys only — never paste a private key or recovery phrase into any website. Informational tool, not financial advice.

Runs entirely in your browser. Nothing you enter or upload is sent to a server.

Convert a public key to a Bitcoin or Ethereum address

A cryptocurrency address is not chosen at random: it is calculated from a public key. This public key to address converter takes a secp256k1 public key — the curve used by Bitcoin, Ethereum and most EVM chains — and shows every common address that key controls: legacy P2PKH, nested SegWit (P2SH-P2WPKH), native SegWit bech32 (P2WPKH), Taproot (P2TR) and the EIP-55 checksummed Ethereum address, plus the matching TRON address.

It is useful when a hardware wallet, a multisig setup, a block explorer or a developer tool hands you a raw public key and you need to know which address it belongs to, or when you want to confirm that an address in an invoice really comes from the key you expect.

All hashing and elliptic-curve maths run in plain JavaScript in your browser; nothing is uploaded. The page accepts public keys only. Anything that looks like a private key, a WIF key, an extended private key or a recovery phrase is refused before any calculation, because no honest website needs those.

How to use the Public Key to Address Converter

  1. Paste the public key in hex into Public key: 66 characters beginning 02 or 03, or 130 characters beginning 04.
  2. Choose Bitcoin mainnet or Testnet / signet (this changes the Bitcoin prefixes only).
  3. Read the address table: each row names the address type and the standard it follows.
  4. Press Copy on a row, or Copy all addresses for the whole list.
  5. Open Key details to see the compressed and uncompressed key, the HASH160 and the tweaked Taproot output key.

Public Key to Address Converter features

Five Bitcoin address types

P2PKH from the compressed and from the uncompressed key, P2SH-P2WPKH, bech32 P2WPKH and bech32m Taproot.

Ethereum and TRON

The Keccak-256 address with its EIP-55 checksum, valid on every EVM chain, and the TRON base58 form of the same 20 bytes.

Validates the key

Checks that the point lies on the secp256k1 curve and decompresses 33-byte keys, so a mistyped key is caught instead of silently producing a wrong address.

Refuses secrets

Rejects 32-byte hex strings, WIF keys, xprv keys and seed phrases with a clear warning.

Tested against the specs

The self-test checks the BIP-173, BIP-350 and BIP-86 vectors and the EIP-55 examples on every build.

How each address is derived

  • P2PKH (1…): HASH160 = RIPEMD-160(SHA-256(public key)), prefixed with byte 0x00 and written in Base58Check. The compressed and uncompressed encodings of one key give two different P2PKH addresses — old wallets (before about 2012) used uncompressed keys.
  • P2SH-P2WPKH (3…): the SegWit script 0014‖HASH160 is itself hashed with HASH160 and written with prefix 0x05 (BIP-141, used by BIP-49 wallets).
  • P2WPKH (bc1q…): witness version 0 with the 20-byte HASH160, encoded in bech32 (BIP-173). SegWit requires the compressed key.
  • P2TR (bc1p…): the x-only key is tweaked with hashTapTweak(x) as in BIP-341 and the 32-byte output key is encoded in bech32m (BIP-350). This is the key-path-only address of BIP-86; a Taproot address that also commits to scripts cannot be derived from the key alone.
  • Ethereum (0x…): the last 20 bytes of Keccak-256 of the 64-byte uncompressed key (without the 04 prefix), with the EIP-55 mixed-case checksum. TRON uses the same 20 bytes behind a 0x41 prefix in Base58Check.

Worked example: the generator point

The default key 0279BE66…F81798 is the secp256k1 generator point G — the example key used in BIP-173. Its HASH160 is 751e76e8199196d454941c45d1b3a323f1433bd6, which gives 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (P2PKH), bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 (P2WPKH, the BIP-173 example) and the Ethereum address 0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf. Because G is a well-known test value, never send funds to these addresses — anyone can spend them.

Common pitfalls

  • Wrong form of the key. A wallet that used uncompressed keys has a different legacy address from one that used compressed keys; check both rows.
  • Taproot with scripts. If the wallet commits to a script tree (some multisig and Lightning setups), its Taproot address differs from the key-path-only address shown here.
  • Extended keys. An xpub is not one key but a tree of keys. Derive the child key in your wallet, then paste the 33-byte key here.
  • To check that an address you received is well-formed, use the wallet address validator; to prove someone controls an Ethereum address, ask for a signed message and check it with the Ethereum signature verifier.

Public Key to Address Converter FAQ

How do I convert a public key to a Bitcoin address?

Hash the public key with SHA-256 and then RIPEMD-160 (HASH160), add a version byte and encode it in Base58Check for a legacy address, or in bech32 for a native SegWit address. This public key to address converter does all of it and shows every type at once.

Can I get an Ethereum address from a compressed public key?

Yes. The tool decompresses the 33-byte key to its full x and y coordinates, then takes the last 20 bytes of the Keccak-256 hash of x‖y and applies the EIP-55 checksum.

Why do I get two different 1… addresses?

One is from the compressed encoding of the key and one from the uncompressed encoding. They are the same key but different scripts, so funds sent to one are not visible at the other.

Why does the tool refuse my 64-character hex string?

Thirty-two bytes is the size of a private key, so the page refuses it to protect you. A public key is 33 or 65 bytes. If you have a 32-byte x-only Taproot key, add 02 in front of it.

Is it safe to paste a public key here?

Yes. A public key can be shared without risk to your funds, though it can link your addresses together, so treat it as private information. The page works offline and sends nothing anywhere.

Does it work for Litecoin or Dogecoin?

Not directly. Those coins use the same HASH160 but different version bytes and bech32 prefixes; this tool covers Bitcoin, Ethereum/EVM and TRON.

You might also need