SOLANA 𝕏 @null__sol

Every transaction is a line in a public log.NULL writes a zero.

Balances, amounts, counterparties: on Solana, all of it is readable by anyone, forever. NULL moves your tokens into a shielded pool. Inside it, zero-knowledge proofs check the math, and the chain stores nothing readable. When you need to prove something, a view key fills in the blanks, for the people you choose.

zkproofs, not trust
view keysdisclose on your terms
relayersno gas link to you
what the log says

Same wallet. Three readers.

The public explorer reads null where your history should be. You read everything. Someone holding your view key reads only what you shared. Demo data.

demo wallet

shield · send · unshield

A simulated wallet. Nothing here touches the chain, and no SOL moves.

wallet: not connected (demo)
public balance
12.400 SOL
shielded balance
0.000 SOL

// moves SOL from your public balance into the shielded pool.

null@solana:~$ ready
// choose an action on the left
how it works

Three calls. No trust required.

01 / shield()

into the pool

Deposit SOL or a supported SPL token. You get a private note only your keys can read. The log gets a deposit, then nothing.

02 / prove()

math, not exposure

Every private transfer carries a zero-knowledge proof: inputs equal outputs, nothing spent twice. Validators check the proof. The amounts are never written.

03 / unshield()

out, anywhere

Withdraw to any address. A relayer can pay the gas, so the new address has no fee trail back to the old one. The trail returns null.

view keys

Nothing to see.
Everything to prove.

Privacy isn't hiding from everyone forever. It's deciding who gets to read. A view key is read-only: it fills in the nulls for one reader, and it can never move funds.

  • 01Scope it: one token, one date range, or one account.
  • 02Hand it to your accountant, an auditor or an exchange that asks.
  • 03They verify. Nobody else sees a thing.
  • !!Once someone has read data with a key, you can't un-show it. Share carefully.
nvk1·0000000000000000000000000000000000
scopeSOL · 2026-07-01 → 2026-09-30
can readincoming, outgoing, balance
can spendnever
$NULL

The token that keeps the log empty.

A small fee on unshielding keeps relayers paid and buys back $NULL. Holders vote on which tokens the pool supports next.

unshield fee0.15%

Charged only when you leave the pool.

to relayers50%

Pays the people who submit your transactions.

buyback & burn50%

Buys $NULL on the market and burns it.

governance1 token
1 vote

Which SPL tokens get a shielded pool next.

limits · read this

What a null can't hide.

The crowd is the coverA shielded pool is only as private as it is busy. Early on, with few users, deposits and withdrawals are easier to link.
Timing leaksShielding 3.17 SOL and unshielding 3.17 SOL a minute later is easy to connect. Wait, and vary amounts.
Audits firstNULL is pre-launch. Circuits and contracts will be audited before mainnet, and the reports published.
Your keys, your problemLose your keys and nobody can recover the notes. That's the point, and the risk.
No. A mixer pools coins and hopes. NULL uses zero-knowledge proofs inside a shielded pool, and view keys let you show your history to anyone you choose, which mixers can't do.
No. Notes are encrypted to your keys. The team, validators and relayers see proofs and encrypted data, nothing readable.
That a valid proof wants to withdraw to some address. Not who you are, not your balance. You can also submit withdrawals yourself.
SOL first, then SPL tokens voted in by $NULL holders.
Not yet. The contract address will be posted on 𝕏 by @null__sol. Anything posted anywhere else is not us.