> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nullark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How private balance is counted

See how Nullark restores notes locally and includes only valid, pool-matched, unspent notes in your available balance.

There is no hidden account balance stored onchain. The browser restores candidate notes and checks each one. Only notes that belong to the selected pool, match their commitments, reach an accepted root, and remain unspent count toward your available balance.

```text
available balance = sum(amount of every accepted, unspent candidate note)
```

## Candidate note pipeline

| Stage | Required check | Failure result |
| --- | --- | --- |
| Discover | Event comes from the intended chain and pool | Ignore event |
| Recover | Encrypted payload or bearer export validates | Reject candidate |
| Match runtime | Chain, pool, runtime, amount, and format policy agree | Reject candidate |
| Re-derive | Recovered material produces the recorded commitment | Reject candidate |
| Find membership | Commitment reaches an accepted pool root | Exclude until verified |
| Spend check | Derived nullifier is not recorded | Mark spent when recorded |

Only a candidate that passes every row contributes to available balance.

## Worked example

Suppose local recovery finds three candidates:

| Note | Amount | Commitment check | Nullifier state | Balance contribution |
| --- | ---: | --- | --- | ---: |
| A | `0.02 ETH` | Matches | Unspent | `0.02 ETH` |
| B | `0.01 ETH` | Matches | Spent | `0 ETH` |
| C | `0.005 ETH` | Matches | Unspent | `0.005 ETH` |

```text
available balance = 0.02 + 0 + 0.005 = 0.025 ETH
```

If note B has not updated locally but the pool already records its nullifier, it stays excluded. The onchain spent state wins over local storage.

## Wallet-gated state and bearer recovery

Wallet-gated records may ask the active account to sign typed data before decryption. A saved recovery envelope gives you another way back into the same balance.

A valid bearer export can restore its note in a compatible clean browser, sometimes without the original wallet. Protect it like something that can spend funds, not like an ordinary app backup.

## What private balance includes

`Private balance` is the total of locally restored, spendable notes. Deposits, withdrawals, amounts, timing, commitments, nullifiers, submitters, and destinations still appear in public chain activity.

Your balance can take time to appear while Nullark catches up with RPC data, scans missing logs, validates recovery material, or refreshes an old root. None of that changes the contract state.

Use [Restore private balance](/use/restore-balance.md) for the recovery steps and [Nullifiers and spent state](/concepts/nullifiers.md) to understand when a note is definitively spent.
