Lantern Zero

For Zcash wallets

Know the moment you're paid.

Lantern Zero is an open protocol for real-time Zcash payment notifications. It wakes your wallet every 30 minutes so it stays in sync. Turn on scanning and it tells you within seconds when a payment arrives.

Pre-alpha · the hosted service isn't open yet

Two modes, one URL

Choose how much the server knows

Default

Keyless wake-ups

Every device gets the same quiet ping every 30 minutes. Your wallet wakes, downloads the new blocks and finds your payments itself. The server never sees a viewing key.

Opt-in

Payment alerts in seconds

Lend the server an incoming viewing key for 24 hours to 7 days. It watches new blocks and the mempool, sends an encrypted alert, and tells your wallet which blocks to scan first.

Open source

Run your own

The server, push gateway and client library are open source under MIT or Apache-2.0. Hosted and self-hosted servers use the same connection URL.

How it works

Three steps, then nothing to think about

  1. Get a connection URL

    Sign up on the web. Your browser creates the account token, and the service only ever stores a hash of it.

  2. Paste it into your wallet

    It works like a custom server address. Wallets accept it by paste or by scanning a QR code.

  3. Your wallet stays current

    It wakes every 30 minutes and checks about 72 new blocks on the phone. With scanning on, it hears about a payment within seconds.

Example connection URL

lanternzero://lanternzero.com#lzt_…7Qa2

The part after # is your account token. Wallets keep it in the keychain and show only the last four characters.

Privacy

What the server can and can't see

These rules are part of the open protocol, and the code is tested against them.

  • Not your IP address

    Every request travels through an independent relay using Oblivious HTTP. The relay sees your address but not the request; the server sees the request but not your address.

  • Not which mode you use

    Requests from default and scanning users look the same, and everyone gets the same scheduled pings. Instant payment alerts are the one exception, explained below.

  • Not what you were paid

    Pushes are encrypted to your device and padded to the same size, so no amount, memo or transaction ID is readable on the way. Apple and Google see only when a push arrives.

  • Not your keys, for long

    A viewing key you lend is held only in memory, never on disk, in logs or in backups. It is dropped when the lease ends, and payment matches are deleted within 7 days.

Who sees what, hop by hop

Your wallet's requests go out through a relay. Pings and payment alerts come back through your wallet's push service. Each party sees only what it needs to pass a message along.

Show who sees what in

No viewing key is lent. The server learns only that your account exists, and every phone gets the same ping on the same 30-minute schedule.

Your wallet lends the server a viewing key, so it sees the payments you receive while the key is lent. Alerts ride inside the next scheduled ping, up to about 35 minutes later, so the push services learn nothing new.

Alerts arrive within seconds as an extra push. That push falls outside the schedule, so the push gateway and Apple or Google can tell when you were paid, though not how much.

  1. Your phone

    Your wallet. Spending keys never leave it.

    • Sees: All your funds
  2. Relay

    An independent organization

    • Sees: Your IP address
    • Sees: Request size, timing
    • Can't see: Request contents
  3. Lantern Zero

    Our server, or self-hosted

    • Sees: Your account exists
    • Can't see: Your payments
    • Sees in this mode: Your payments
    • Can't see: Your IP address
  4. Push gateway

    Your wallet's developer

    • Sees: Your push token
    • Sees: Push timing
    • Can't see: When you're paid
    • Sees in this mode: When you're paid
    • Can't see: Ping contents
  5. Apple or Google

    Delivers the push

    • Sees: Push timing
    • Can't see: When you're paid
    • Sees in this mode: When you're paid
    • Can't see: Ping contents
  6. Back to your phone, which decrypts the ping and wakes your wallet or shows an alert
The limits, in plain words
  • Your light wallet server still sends your wallet its blocks. It sees your IP address and which blocks you download, just as it does today.

  • If a relay and the server worked together, they could link your IP address to your account. That's why relays are run by independent organizations, and wallets spread requests across at least two of them.

  • Hiding in the crowd needs a crowd. Every wallet's requests look the same, so you blend in with the server's other users. On a server with few users, that hides little.

  • Push records can be requested. Governments can get push records from Apple, Google or a push gateway with legal process. With instant alerts, those records show when you were paid.

Every limit is listed in the protocol spec.

For wallet developers

Add Lantern Zero to your wallet

Accept a connection URL, run a push gateway, and your users get faster sync without trusting a new party with their keys.

  • Your push gateway holds your APNs and FCM credentials. Pings reach it encrypted to the device.
  • Run the reference gateway yourself, or have us host one for you.
  • Pre-fill your own Lantern Zero URL so users never have to paste one.
  • A Rust client library with Swift and Kotlin bindings is in progress.

A bridge to Tachyon

Lantern Zero keeps wallets fast until Zcash's Tachyon upgrade changes how wallets find payments. Follow along while we build it in the open.