# Introducing Firn

## Overview

*Firn* is a state-of-the-art, zero-knowledge privacy utility for Ethereum and EVM-based rollups. Firn supports not just private *payments*, but the private invocation of arbitrary smart contracts. Firn moreover allows deposits and withdrawals of arbitrary *amounts* of Ether, as well as private, peer-to-peer payments (in which the sender's and receiver's identities *and* the amount being transferred are all hidden). In this light, Firn can be viewed as something like a general-purpose private *wallet* for EVM-based blockchains.

**Unlike all other projects in the privacy space, Firn uses an&#x20;*****account-based*****&#x20;architecture.** In practical terms, this means that Firn's browser-based wallet can retrieve and synchronize your account state extremely efficiently, downloading less than a kilobyte of data in the process. Other projects require data downloads in the megabytes, and prohibitive synchronization times. These requirements have proven problematic for various ecosystem partners (including [*Aztec*](https://forum.aztec.network/t/request-for-proposals-note-discovery-protocol/2584) and [*Zcash*](https://zecsec.com/posts/scalable-private-money-needs-scalable-private-messaging/)). As privacy projects continue to grow and mature, we believe that our wallet's superior efficiency will prove decisive.

{% hint style="info" %}
Firn has been [audited by BlockSec](https://github.com/blocksecteam/audit-reports/blob/main/solidity/blocksec_firnprotocol_v1.0-signed.pdf). This audit captures the protocol's high-level payment, funds storage, and token logic. The protocol's cryptography—while designed and implemented according to the most exacting possible standards—has not yet gone through a formal audit.
{% endhint %}

## Quick links

{% content-ref url="overview/using-firn" %}
[using-firn](https://docs.firn.io/overview/using-firn)
{% endcontent-ref %}

{% content-ref url="overview/cryptographic-explainer" %}
[cryptographic-explainer](https://docs.firn.io/overview/cryptographic-explainer)
{% endcontent-ref %}


---

# 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.firn.io/introducing-firn.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.
