# How to Use NightFall

Nightfall is an L3 privacy blockchain originally incubated by EY and the Ethereum community, designed to bring enterprise-grade privacy to tokenized assets.

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

**Nightfall\_4 (NF\_4)** uses a Zero-Knowledge Proof (ZKP)-based protocol for private transfers of ERC-standard tokens:

* **ERC-20**: fungible tokens
* **ERC-721**: NFTs
* **ERC-1155**: multi-token standard
* **ERC-3525**: semi-fungible tokens

NF\_4 incorporates a **Layer-2 ZK-ZK rollup**, allowing transactions to be grouped into succinct proofs. Key properties:

* **Scalable:** private transfers typically cost \~6,000 gas
* **Fast finality:** finality is aligned with the underlying blockchain (EVM or SVM)
* **Rust-based:** implementation written in Rust, while preserving NF\_3’s API for compatibility

In order to run Nightfall you must run two applications: a `client` and a `proposer`.

\
The purpose of the `proposer` is to make Layer 2 blocks. It makes an endpoint available to `clients`. Clients are the application that normal users will employ to make transactions that are hidden by ZKP. Full instructions for How to Run a Proposer on Plume Testnet can be found [here](https://github.com/EYBlockchain/nightfall_4_CE/blob/master/doc/Plume_Testnet_Docs/plume_testnet_proposer_playbook.md).\
\
`clients` are the application that normal users will employ to make transactions that are hidden by ZKP. the user can intitiate three types of transaction via the `client`: Deposit, Transfer, and Withdraw. Full instructions for How to Run a Client Application on Plume Testnet can be found [here](https://github.com/EYBlockchain/nightfall_4_CE/blob/master/doc/Plume_Testnet_Docs/plume_testnet_client_playbook.md).


---

# 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.plume.org/plume/developers/how-to-guides/how-to-use-nightfall.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.
