# Settlement Layer

The settlement layer entails an environment for finalizing transactions on the base chain(s).&#x20;

A classic ZK-Rollup network typically selects Ethereum as the base chain to verify proof and settle transactions. By contrast, zkLink Nova has the capability to securely aggregate liquidity and native assets across Ethereum and its L2s by allowing users to deposit funds from connected networks. To achieve that, we apply a new settlement paradigm (i.e. zkLink Nexus) to be able to settle on multiple Ethereum Layer 2 rollup networks.

In the architecture of an aggregated ZK-Rollup, on-chain transactions such as deposit will be relayed to the rollup network in real-time to deliver the best user experience. However, the hard finality of every transaction is achieved by multi-chain settlement, which depends on the result of ZKP verification and multi-chain state synchronization.

<figure><img src="/files/vLVhjS1mTAmWdOnBUu8c" alt=""><figcaption></figcaption></figure>

In order to optimize the on-chain verification cost, one Layer 2 network is designated as the **primary chain**, which is responsible for ZKP verification and checking on-chain transaction consistency. Currently, Linea is chosen to serve as the primary chain since it has the capability to execute zk-SNARKs proofs and has fast settlement finality on Ethereum Mainnet.

While the other chains will act as **secondary chains** that do not need to execute ZKP verification, through multi-chain state synchronization via canonical rollup bridges, it is equivalent to completing the verification on all chains.

The settlement process includes:

1. **Commit:** The sequencer submits the zk-proof and transaction batch to the verifier contract on the primary chain.
2. **Prove verification:** The zkLink contract checks the validity of the zk-proof.
3. **Synchronization:** The transaction sync hashes of secondary chains are forwarded to the primary chain via canonical rollup message bridges. The primary chain verifies if sync hashes are consistent with the on-chain transactions previously relayed by the sequencer. Upon the verification of ZKP and on-chain transaction consistency, transaction batch can be finalized and the batch root will be sent to secondary chains.
4. **Execution:** Upon successfully finalizing a batch of transactions and state change, each chain could proceed users' requests for fund withdrawals. &#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zklink.io/architecture/settlement-layer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
