---
# System prepended metadata

title: RLP

---

# RLP 

let's look at the Appendix B of YP, it describes internals of RLP (Recursive length prefix). 

This is a encoding scheme, that is employed at Eth1.0, although many encoding's exist like JSON, YAML, BSON, XML etc...Encoding's can be classified into binary and non-binary formats  



>  * Recursive Length Prefix (RLP) encoding.

>  * The purpose of RLP is to encode arbitrarily nested arrays of binary data, and
>  * RLP is the main encoding method used to serialize objects in Ethereum. The
>  * only purpose of RLP is to encode structure; encoding specific atomic data
>  * types (eg. strings, integers, floats) is left up to higher-order protocols; in
>  * Ethereum the standard is that integers are represented in big endian binary
>  * form. If one wishes to use RLP to encode a dictionary, the two suggested
>  * canonical forms are to either use [[k1,v1],[k2,v2]...] with keys in
>  * lexicographic order or to use the higher-level Patricia Tree encoding as
>  * Ethereum does.
>  * The RLP encoding function takes in an item. An item is defined as follows:
>  * - A string (ie. byte array) is an item - A list of items is an item
>  * For example, an empty string is an item, as is the string containing the word
>  * "cat", a list containing any number of strings, as well as more complex data
>  * structures like ["cat",["puppy","cow"],"horse",[[]],"pig",[""],"sheep"]. Note
>  * that in the context of the rest of this article, "string" will be used as a
>  * synonym for "a certain number of bytes of binary data"; no special encodings
>  * are used and no knowledge about the content of the strings is implied.
>  * <p>
>  * See: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP
>  *
>  