Comment on page



Can I use this with any wallet?

For the time being, the Nocturne UI only supports MetaMask.

Canonical Address Registration

What's a "canonical address"?

A canonical Nocturne address is a public Nocturne address that can be used to generate more stealth addresses belonging to the owner of the corresponding Nocturne spending key. See Keys and Stealth Addresses

What do I get by registering my canonical address?

Registering your canonical address allows you to seamlessly and anonymously receive funds into Nocturne, even when the sender is public. It's an important part of making interactions between your private and public accounts as seamless as possible.

Nocturne MetaMask Snap

What's a MetaMask Snap?

A Snap is an application embedded within MetaMask that extends your wallet with additional functionality.

What does the Nocturne MetaMask Snap do?

The Nocturne MetaMask Snap securely generates and stores your Nocturne Keys, and nothing else. You can find the full source code of the Snap here.

How do I install the Nocturne MetaMask Snap?

When you connect your MetaMask wallet to the Nocturne UI, it will ask you to install the snap if you haven't already. You do not need to install the snap manually.

Key Generation and Recovery

How are my Nocturne keys generated?

When you first install the MetaMask Snap, it will ask you to sign the fixed message shown below. It will then generate your Nocturne Keys from this signature. Once your keys are generated, they will be stored exclusively in the Snap.
Make note of the currently connected Ethereum account in the signature confirmation window—this is the Ethereum account you will use if you ever delete the Snap and need to recover your Nocturne account.
IMPORTANT: You must double-check the URL of the application requesting your signature and ensure it matches the URL of the Nocturne UI ( If it doesn't, please report the malicious URL to [email protected].

How can I recover my Nocturne spending key?

Because your key is generated from a signature using an Ethereum account, as long as you have access to that same Ethereum account, you can re-generate your Nocturne spending key simply by re-signing the original fixed message you signed to generate your spending key the first time.

Balances and Syncing

After completing a deposit, transfer, or swap, the app says my funds aren't yet spendable. What does this mean?

As a gas optimization, the Nocturne protocol updates its internal Merkle tree in batches. This can take anywhere from a few minutes to a couple hours depending on current traffic.
While this might be annoying, this is the difference between a deposit costing ~240K gas and ~1M gas. At the time of writing, this saves you around $100 in gas fees.
Additionally, users will want to wait before spending their private funds after depositing. More time between deposit and spending improves privacy guarantees.

When I switch to a different account on MetaMask, my private balances don't change. Why?

While normal MetaMask allows a user to generate many public Ethereum addresses, the Nocturne MetaMask Snap stores exactly one spending key and thus provides you with a single Nocturne account. Your Nocturne account automatically generates one-time stealth addresses within Nocturne for privacy. Because of this, there is no need to use multiple Nocturne accounts.


Why do I need to wait several hours for my deposit to complete?
Please see Compliance for more details. Furthermore, spending funds soon after they are deposited reduces your privacy guarantees, so it's not a good idea to spend funds immediately after depositing.

When depositing, it looks like there’s an additional fee aside from the transaction sent on-chain. Why?

There are no fees taken on deposits. Under the hood there are two steps to depositing within Nocturne—the user initiating the deposit and the deposit being completing after it has gone through the filtering step (see Compliance). This additional "fee" is not a "deposit fee" but rather compensation for the gas cost of the second completion transaction performed on the user's behalf.


Why is my operation still queued/inflight?

To save on gas, the Bundler attempts to submit operations in batches, waiting up to 1 hour depending on current traffic. Note that this delay is subject to change in the future.
While this might be a bit annoying, the gas savings can be significant (upwards of $20), and waiting between operations is good for privacy.

How does gas work for operations (transfers and swaps)?

To compensate the bundler for relaying the transaction and batching it for gas savings, gas is paid out of your private balance within Nocturne, not your public balance. This prevents you from linking your addresses by having to top them up with gas. When you queue up an operation, the frontend will estimate how much it costs and add a private transfer to the bundler. When the operation is executed, any excess will be refunded back to your private balance within Nocturne.
This means that you must have enough WETH deposited within Nocturne to pay for the operation. Depending on current gas prices, the fee can be upwards of 0.02WETH. Therefore, we strongly recommend depositing in increments of at least 0.2 ETH.