> For the complete documentation index, see [llms.txt](https://docs.pantherprotocol.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pantherprotocol.io/docs/learn/utxos/merkle-trees.md).

# Merkle Trees

Merkle trees

| Status                    | Entrypoint                            |
| ------------------------- | ------------------------------------- |
| In development on testnet | [dApp](/docs/panther-core/testnet.md) |

### Introduction

Panther’s [Shielded Pool](/docs/panther-core/panther-core/shielded-pool.md) architecture includes the following Merkle trees:

* [Bus](#bus-tree) processes UTXOs collectively by batching them
* [Taxi](#taxi-tree) processes UTXOs individually
* Ferry manages UTXO data in the multi-chain Panther ecosystem

In the dApp, users can choose between batched processing (taking the bus) and fast processing (taking the taxi) from the toggle available under the **Fee** section when submitting a transaction.

### Bus tree

Within the “Bus” tree, each leaf is a commitment to:

* An “asset” UTXO representing a [zAsset](/docs/panther-core/panther-core/overview.md) (or zNFTs) (essentially an “IOU” for the corresponding underlying collateral locked on the Panther Vault)
* “zAccount” UTXO, a record that keeps information about the owner of a zAccount

The name *Bus Tree* refers to the UTXOs being committed to the tree in batches of up to 64 UTXOs rather than individually. To get on the “bus”, a UTXO needs to be queued and wait until a [zMiner](/docs/ecosystem/ecosystem-operators/zminer.md) processes that queue.

The “bus” approach makes the process more cost-efficient as all UTXOs in a queue share processing costs. As such, the individual cost for a transaction per user is much lower. On the other hand, users are dependent on the zMiner to process the queue. Just as users of a blockchain incentivize miners to pick up their transactions by defining how much they are willing to pay for “gas”, Panther Protocol users define the reward (denominated in $zZKP) that they are willing to pay to the zMiner who processes their UTXOs.

### Taxi tree

Taxi tree has been released with [Stage 5](/docs/changelog/overview-1/stage-5.md) of the testnet dApp.

To avoid "waiting for the bus," the Taxi tree allows UTXOs to be processed individually to enable near-instant spending. This removes the wait time required to process a batch, with an extra cost tradeoff.
