ephemeral

Key concepts

The ten ideas the rest of the docs build on, from meta-addresses to the privacy set.

Each concept below gets one paragraph. The glossary has short definitions of every other term.

Stealth address

An ordinary Ethereum address that is used for exactly one payment. It looks like any other address and can hold ETH, tokens and NFTs. What makes it stealth is how it was made: the sender derived it from your public keys so that only you can recognise it and only you can compute its private key.

Meta-address

The public identity you share once instead of an address. It is two compressed public keys, the spending key and the viewing key, written as st:eth:0x followed by both keys. A meta-address never receives funds itself. Senders use it to compute a new stealth address for each payment.

Spending key and viewing key

You hold two private keys. The spending key is needed to move funds out of your stealth addresses. The viewing key is enough to find every payment made to you and see the amounts, but it cannot move anything. That split is what lets you give an accountant read-only access without giving up control.

KeyCan find your paymentsCan move your fundsShare it?
Spending keywith the viewing keyyesnever
Viewing keyyesnoonly for read-only access

Ephemeral key

A random key pair the sender creates for one payment, then forgets. Its public half, written P_e, is published with the payment so that the receiver can derive the same secret the sender used. The name ephemeral comes from it.

Announcement

A public event that the sender's transaction emits through the ERC-5564 Announcer contract. It contains the stealth address, the sender's ephemeral public key and a few bytes of metadata. Announcements are how receivers find payments without any message passing between sender and receiver.

View tag

The first byte of the hashed shared secret, published in each announcement. A receiver checks it before anything else: for an announcement that is not theirs, the tag matches only one time in 256. It makes scanning cheaper and it reveals almost nothing, since one byte cannot identify a receiver.

Registry

The ERC-6538 contract where an address can publish its meta-address. A sender who only knows your normal address can look up your meta-address there and pay you privately. Registering is one public transaction and it reveals only that the address accepts stealth payments.

Private name

A name such as name.ephmrl.eth that resolves to a fresh stealth address on every lookup. It will let anyone pay you privately from any wallet that resolves ENS names, including wallets that know nothing about stealth addresses. Planned. See Private names.

Leak

Any action that links a stealth address back to its owner. The cryptography of stealth addresses is not where leaks happen. They happen when funds move: withdrawing to the address that registered your keys, sweeping many stealth addresses into one wallet, paying gas from your main wallet. Our research measures five of them, H1 to H5.

Privacy set

The group of people your payment could plausibly belong to. A stealth payment hides you among everyone who uses stealth payments and could have received it. The set grows with every user and shrinks with every leak. Privacy here is statistical: it is a property of the crowd, not of one transaction.

On this page