Skip to content

Encode and decode Recursive Length Prefix data and inspect its nested structure.

Loading tool

About RLP Encoder / Decoder

Decode Recursive Length Prefix (RLP) hex into nested JSON and a tree showing each item's offset, prefix byte and payload length; non-canonical encodings are rejected. Items can be displayed as hex, UTF-8 or numbers. In encode mode, nested JSON arrays become RLP: 0x strings are raw bytes, numbers and "123n" strings are big-endian integers, and other strings are UTF-8.

Common uses

  • Inspect the fields of a legacy signed transaction
  • Debug RLP produced by your own encoder
  • Encode data for a CREATE address calculation or a custom protocol
  • Learn how RLP prefixes work by looking at real bytes

FAQ

What is RLP encoding?
Recursive Length Prefix is Ethereum's serialization for nested arrays of byte strings, used for transactions, blocks and other consensus data. It encodes structure and lengths only, not types.
How does the RLP prefix work?
A single byte below 0x80 encodes itself. A string of 0 to 55 bytes gets the prefix 0x80 plus its length; a list whose payload is 0 to 55 bytes gets 0xc0 plus its length. Longer items use 0xb7 or 0xf7 plus the length of the length.
How is zero encoded in RLP?
Integers are encoded as big-endian bytes without leading zeros, so 0 is the empty string, encoded as 0x80.