> For the complete documentation index, see [llms.txt](https://docs.bladeblockchain.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bladeblockchain.tech/detailed-design/evm-compatible-data-structures/introduction.md).

# Introduction

There are four types of state tries:

* **World State Trie**
* **Transaction Trie**
* **Transaction Receipt Trie**
* **Account Storage Trie**

Each state trie is constructed using a **Merkle Patricia Trie** (MPT) .

Each block stores three central state tries:

* **World State Trie**
* **Transaction Trie**
* **Receipt Trie**

The **Account Storage Trie** (also known as the account storage contents trie) constructs the leaf nodes in the world state trie.

{% content-ref url="/pages/TpaOrb3YjZ1dMu4NtFpx" %}
[Block Structure](/detailed-design/evm-compatible-data-structures/block-structure.md)
{% endcontent-ref %}

***

## Why Use Merkle Patricia Trie?

The Merkle Patricia Trie data structure is used for the following reasons:

* **Efficient Lookups**:\
  Tries allow for efficient key-value lookups, insertions, and deletions with `O(log(n))` performance.
* **Cryptographic Verification**:\
  The Merkle tree structure enables cryptographic proofs of the data's integrity. Each node in the trie is hashed, and the **root hash** (stored in the block header) serves as a fingerprint of the entire state.
* **Incremental Updates**:\
  Only the parts of the trie that are modified need to be updated, making it efficient for frequent state changes.
