Docs · everything a note can do

Read it. Then seal.

Seal USDC or SOL into its pool and it becomes a note in a crowd. Unseal it at any address, with no return address. LOWKEY, and burning it to be heard, is coming soon.

The LOWKEY mint

Coming soon

Other Solana tokens already use the name. Only this mint is Lowkey: check it before you buy.

program · devnet ↗
01

How it works.

Seal in public. Wait for the stamp. Unseal anywhere, with nobody able to tell which note was yours.

Seal · deposit

Send LOWKEY, USDC or SOL from your wallet into its pool. It becomes a note, one of many. Sealing is public: everyone sees your wallet put coins in. SOL goes in as SOL and comes out as SOL.
  • 0.3% vetting fee → treasury
  • LOWKEY, USDC or SOL
  • min and max per note
Seal a note

The postman

Stamps new notes into the approved list the moment they land, unless the wallet that sealed them is on the blocklist or the sanctions list. Only stamped notes unseal. The list is public and your browser checks its root against the chain.
  • ready in seconds
  • root posted on chain

Unseal · withdraw

Your browser proves you own a stamped note without saying which one. Name any address; a fresh one is best. It arrives with no return address. Unseal part of a note and the rest stays sealed as a change note.
  • proof built in your browser
  • change note keeps the rest
Unseal a note

The courier

Carries your proof and pays the SOL, so the address you unseal to can be brand new and empty. The address, the amount and its fee are sealed inside the proof: the courier cannot change a single one. If it refuses, send the proof yourself.
  • pays the SOL
  • 0.3% fee, fixed in the proof

Your unseal key

Made in your browser the first time you seal. It is what unseals your notes. Type it on any device and every note comes back.

It is NOT a wallet seed phrase. Never type a seed phrase into Lowkey. Nobody from Lowkey will ever ask for your unseal key. Lose it and your notes stay sealed for good.

  • 12 words
  • never leaves your browser

Take back

The wallet that sealed a note can always take it back to itself, in public. It comes home stamped Returned to sender. Nobody can switch this exit off.
  • always on
  • public, back to the sealer
Take a note back

Privacy is a crowd. Wait longer, use round amounts and the crowd hides you; a quick unseal of an odd amount gives you away.

02

Speak.

Burn LOWKEY and your words go up on the Wall, on Solana, for good.

Coming soon

said lowkey

From a note, carried by the courier. The coins burn and the message lands with no wallet attached.
  • from a note
  • signed by nobody

said highkey

From your wallet, signed by it, for when you want it known. Hold no LOWKEY? Buy and speak in one transaction.
  • from your wallet
  • buy and speak in one go
  • up to 280 bytes
  • a minimum burn, set on chain
  • 100% burned, supply only goes down
  • reply to a word, or boost it, with a burn of your own
burning this so you know I mean it.
75,000 LOWKEY burnedsaid lowkey · signed by nobody

From a note, carried by the courier. Nobody can see who said it.

Burn to speakComing soonRead the Wall
03

Knock on a door.

A door is any Solana wallet, or a name. Leave a message at it, with a gift if you like.

Coming soon

The gift rule

The gift goes to the door. At least a tenth of it burns, so a knock always costs something.
  • burn ≥ gift ÷ 10
  • and ≥ the minimum burn

Lowkey or highkey

Knock lowkey and the door never learns who knocked. Knock highkey and your wallet signs it. Every door has a page with every knock it got.
  • lowkey: from a note
  • highkey: from your wallet
50,000 to the door ≥ 5,000 burned
Knock on a doorComing soon
04

Envelopes.

A red envelope of gifts. Whoever has the link opens one, and it is sealed into the crowd as their own note.

Send an envelope · gift link

Fund it, split it into gifts and share its link. The link works like cash: anyone who has it can open a gift, so share it only with the people it is for. Its secret sits after the #, which never reaches a server. Random amounts are public on chain: whoever holds the link sees the next gift before opening it.
  • up to 64 gifts
  • equal or random
  • expires within 90 days

Open your gift · seal it

Your gift is sealed as your own note, made from your unseal key: only you can unseal it. The usual vetting fee applies.
  • one gift per wallet
  • no SOL? the courier pays

Returned to sender

Until a gift is opened, anyone with the link can open it, the sender included. Gifts nobody opened go back to the sender once the envelope expires, or sooner if the pool can no longer take the next one.
  • after expiry
  • sooner if the pool stops taking gifts
  1. 16,667
  2. 16,667
  3. 16,667
  4. 16,667
  5. 16,667
  6. 16,667

100,000 LOWKEY in 6 gifts. One gift per wallet; each is sealed as the opener's own note.

05

Name your door.

Burn LOWKEY to give your wallet a name, so people can knock at it by name.

Coming soon

The rule

One name per door, one door per name, first come first served. Reserved: postman, courier, lowkey, admin, team, treasury, support, official.
  • 3 to 32 characters
  • a–z, 0–9, dashes inside

Yours to move

Burn from your wallet, or from a note so nobody sees who paid. Move the name to a new door any time. Your door's page lives at /@name.
  • from your wallet
  • or lowkey, from a note

Fits the rule. Burn to make it yours.

Name your doorComing soon
06

Seal from anywhere.

No LOWKEY, no SOL? Send ZEC from an exchange or any wallet and it arrives as a sealed note.

1

Get a one-time address

Your browser makes it from your unseal key. It works for one seal.

2

Send ZEC to it

From an exchange or any wallet. You see the quote and the slippage limit first.

3

It is sealed

One transaction buys LOWKEY on pump.fun and seals it as your note. The service pays every bit of SOL.

The one-time address can take the note back too, re-made from your 12 words. ZEC mint A7bd…QXaS.

07

Fees.

All on chain, all shown before you sign. LOWKEY buybacks: coming soon.

  1. 01

    Vetting fee

    Taken as the coins go in, gifts included, in every pool. The note holds the rest.

    0.3% of what you seal

    to treasury

  2. 02

    Courier fee

    Fixed in the proof, in the note's token. A small floor on tiny notes covers the SOL.

    0.3% of what a note spends

    to the courier

  3. 03

    Swap fee

    A note in one pool becomes a note in another, inside the crowd.

    0.3% of what a note swaps

    to treasury

  4. 04

    Trade fee

    LOWKEY trades against ZEC on pump.fun. Half the ZEC buys LOWKEY, and it burns.

    1% of every trade, in ZEC

    to treasury

  5. 05

    Burns

    Speak, knock and names destroy the coins for good.

    100% of what you burn

    to nobody

  • you seal100,000
  • vetting fee · 0.3% → treasury−300
  • your note99,700
  • courier fee · 0.3% → the courier−299.1
  • arrives, no return address99,400.9
  • Unsealed

Very small notes pay a small floor instead, so the courier's SOL is covered. You see the exact fee before you prove.

The fees of every pool, LOWKEY, USDC and SOL, go the way of the trade fee: they buy LOWKEY back, and it burns. Seal from anywhere adds a small ZEC fee for the swap and the SOL, quoted before you send.

08

Invite.

Share your link. Friends get fees back, you earn LOWKEY, every Monday.

Your friend

They open your link, and their wallet signs “Invited by @you” with its first Seal. No transaction, nothing on chain.
  • 50% of their vetting fees back
  • for 30 days

You

Your link is your door's name, or a short code for your wallet. Paid in LOWKEY every Monday at 00:00 UTC, out of the LOWKEY the treasury buys back.
  • 20% of their vetting fees
  • for 12 months

Only Seals count

A Seal comes from your wallet, so its fee is already public. Unseal, swap and courier fees are paid from notes. They are never linked to a wallet, so they never count.
  • a Seal is public
  • a note is not

The limits

The first invite a wallet signs, before its first Seal, is the one that counts. A rebate never exceeds the fee paid. Invite your own second wallet and it gets 70% of its fees back for 30 days (both shares), then 20% for the year. Who invited whom is shown only to the wallets themselves.
  • one invite per wallet
  • a weekly cap per inviter
09

The program.

One Anchor program does everything: pools, the courier, the postman's list, speak, knock, envelopes and names.

instructions

  • depositSeal
  • withdrawUnseal, direct
  • relayUnseal through the courier
  • ragequitTake back
  • speaksaid lowkey
  • speak_publicsaid highkey
  • knockknock lowkey
  • knock_publicknock highkey
  • send_envelopeSend an envelope
  • open_envelopeOpen your gift
  • return_envelopeReturned to sender
  • name_doorName your door
  • deposit_allSeal from anywhere
  • update_rootthe postman's stamp list

events, for indexers

  • Deposited
  • Withdrawn
  • Relayed
  • Spoke
  • Knocked
  • Ragequit
  • RootUpdated
  • EnvelopeSent
  • EnvelopeOpened
  • EnvelopeReturned
  • NameTaken

stack

  • Anchor 0.32 · Rust
  • 0xbow Privacy Pools circuits, unchanged
  • Poseidon on chain, Groth16 on BN254
  • SPL Token and Token-2022
10

Write a spender.

Any program can spend a note, as long as it is the one the proof names.

Rust
// the proof names who may spend the note, and what it may do
pub struct Withdrawal {
    pub processooor: Pubkey, // your program's PDA; it must sign
    pub data: Vec<u8>,       // your own Borsh payload
}
// context = keccak(borsh(Withdrawal), scope) mod p
require_keys_eq!(withdrawal.processooor, processooor.key(), LowkeyError::InvalidProcessooor);

Sign as the processooor

Your program signs with its PDA and calls withdraw. The note's coins arrive in your PDA's token account, and your code decides what happens next.
  • a PDA of your program
  • CPI into withdraw

Bind your data

Put your arguments in data. The proof commits to them, so whoever submits the transaction cannot change them.
  • data is in the proof
  • change it and it fails
11

Don't trust this page. Verify it.

Three checks, each one doable from a block explorer.

✓1

The mint

Match the LOWKEY mint at the top of this page with the coin page on pump.fun before you buy.

✓2

The program

Rebuild the program from source and compare its hash with the one deployed at the id above (solana-verify).

✓3

The roots

The app checks the pool's root and the postman's root against the chain before it builds any proof.

12

Audits and limits.

What has been checked, what has not, and the hard numbers.

  • Program reviewin-house only, no external audit yet
  • Circuits and trusted setup0xbow's, unchanged
  • Message280 bytes
  • Envelope64 gifts, 90 days
  • Name3 to 32 characters
  • Proof rootsthe pool keeps its last 128
  • Per notea pool minimum, maximum and total cap
  • Privacy is statistical. A small crowd, a quick unseal or a matching amount can give you away.
  • LOWKEY is a volatile token. Prices move, and burns are final.
  • Your unseal key has no reset and no support line. Write the 12 words down the first time you seal.
  • Lowkey is inspired by zipcoin and built on 0xbow's open-source Privacy Pools. It is not affiliated with either.

Read enough. Seal.