Hex Converter

Hex, decimal, and UTF-8 text — type into any one and the other two update instantly.

Why hex shows up everywhere in Ethereum

Addresses, transaction hashes, calldata, storage slots — Ethereum represents almost everything as raw bytes, and hex is the standard way to write bytes as text. A block explorer showing you0x48656c6c6f is showing you 5 bytes; whether those bytes are meant to be read as a number, a string, or something else entirely depends on context the hex itself doesn’t carry.

When each field is useful

Decimal is what you want when a hex value is actually a plain number — a token ID, a block number, an amount before you know its decimals. Text is for the cases where on-chain bytes are meant to be read as a string, like some NFT metadata fields or ENS-adjacent data. Not every hex string is valid UTF-8 text, and this tool tells you plainly when that’s the case rather than showing mangled output.

How this tool works

Every conversion happens with native BigInt and the browser’s built-in text encoder/decoder — no library, no rounding, no size limit beyond what your browser can hold in memory. Nothing you type is sent anywhere.

Frequently asked questions

Leading zero bytes don't change a number's value, so converting hex → decimal → hex again can drop them (0x00ff becomes 0xff). This tool preserves your exact input in the field you're typing in — it only normalizes the other two.

Not every byte sequence is valid UTF-8 text — raw calldata, hashes, and binary data usually aren't. When that's the case, there's no honest text to show, so the tool says so instead of guessing with replacement characters.

No — this tool works on raw byte sequences (hex) and their unsigned decimal value, which is what you'll see for token IDs, amounts, and most on-chain data. Signed integers need a different (two's complement) interpretation this tool doesn't attempt.

No. All conversion happens locally in your browser — nothing you type here is transmitted anywhere.