# 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 %}
