Live on Solana

Your balance is nobody’s business.

Every USDC payment on Solana shows the amount, who sent it and who got it, to anyone who looks. Unseen gives your wallet a private balance, so your payments stop telling your story.

CA

7Hx2…kP4q

One wallet, as a stranger sees it

What a stranger can see about one wallet, normally versus with Unseen
Fact Normal Unseen
Salary6,200 USDC, biweekly 
Paid byCq3V…uM9d (14×) 
Rent2,150 USDC → 4mNe… 
Savings18,240 USDC 
Last active4 min ago 
Anyone can read this on a public explorer.Only you can see it.

01 · Wallet

A private balance in your browser

Deposit USDC, pay any Unseen address and withdraw to any wallet. Your keys come from your wallet signature, and nobody at Unseen can move your funds.

Launch app

02 · Program

One small Solana program

It holds the money and only releases it when the math checks out. There's no admin key that can take it, not even ours.

How it's secured

03 · SDK · coming soon

Private payments in your product

The same code the app runs, packaged for wallets, payroll tools and AI agents. The private math always happens on the user's device, never on a server.

Developers

The problem

Solana is fast, cheap and completely see-through.

Paste a wallet into any explorer and you get its whole financial life: salary, rent, suppliers, savings and everyone it pays. Unseen keeps settlement on Solana and takes the details off the page.

A normal USDC transfer, as anyone sees it

PayrollSPL transfer

6,200.00 USDC

7Hx2…kP4q 9aBq…Qe1L

RentSPL transfer

2,150.00 USDC

4mNe…Zr8s Gt7w…2pXa

SupplierSPL transfer

18,940.00 USDC

Cq3V…uM9d 8kLr…Hn2T

FreelanceSPL transfer

1,275.00 USDC

Rz9k…3wYb 5pFd…aQ7m

FamilySPL transfer

400.00 USDC

2xWe…Lk6h Jm4s…Vc1r

API callsSPL transfer

0.42 USDC

Bv8n…Tq5e 6yHu…Pd3k

TreasurySPL transfer

125,000.00 USDC

Ns5g…Ej2w 3cKa…Wm8z

The same payments through Unseen

PrivateUnseen transfer

sealed receipt 3fa9e1…c07b

PrivateUnseen transfer

sealed receipt b81d44…9a2e

PrivateUnseen transfer

sealed receipt 0e7c3a…f415

PrivateUnseen transfer

sealed receipt d2a690…13cc

PrivateUnseen transfer

sealed receipt 5c11fe…7b80

PrivateUnseen transfer

sealed receipt 91e0b7…e6d2

PrivateUnseen transfer

sealed receipt a47f2c…08f9

Live demo · runs in your browser

Use it, then look at what the chain saw.

Click through a deposit, a private payment and a proof. On the right you'll see two views side by side: what you see, and what a stranger on an explorer sees. No wallet or money needed.

Move USDC from your wallet into the vault.

$USDC
Wallet: 0

Deposits are public: the chain sees your wallet put money in. Everything after this step is not.

What you see

Only you

Private balance

0USDC

Public wallet: 0 USDC

Your sealed receipts

  • None yet.

Activity

  • Nothing yet.

What the explorer sees

Anyone

Ledger fingerprint

00000000

Receipts · spent stamps

0 · 0

Nothing on chain yet. Shield some USDC to create the first public record.

A simulation in your browser. No wallet, no money, nothing sent anywhere.

Where the secret lives

Your numbers never leave your device.

Some privacy tools send your payment to their own server to be hidden. That server sees everything first, and becomes the thing to hack. Unseen does the private math right in your browser, so there's no central place your history can leak from.

  1. 01

    Your device

    Knows the amount, who it's for and your balance

    secret stays here
  2. 02

    The proof

    A small piece of math that says “this payment is valid” and nothing more

  3. 03

    Relayer

    Sends it for you and pays the network fee. Learns nothing.

  4. 04

    Solana

    Checks the math and settles the payment

Other tools: a server does it

A service sees your payment, then hides it.

Convenient, until that service is breached, subpoenaed or simply logs too much. Then every user’s past is exposed at once.

Unseen: your device does it

Only your device ever sees the numbers.

Your browser does the math in a few seconds. If one phone is hacked, one person is affected. There’s no server full of everyone’s history to steal.

Who it's for

For money that has a person behind it.

Stablecoins made onchain dollars useful. The missing piece was discretion, for the people, teams and software that actually move them.

Salaries

Pay a team in USDC without publishing a spreadsheet of who earns what.

Freelance income

Bill every client in stablecoins. None of them can look up what the others pay you.

Company treasury

Pay vendors and move reserves without broadcasting your burn rate to competitors.

AI agents

Give an agent a spending budget it can use per request, without exposing the wallet behind it.

Everyday money

Save, split rent and send to family without strangers tracking your net worth.

Creators and tips

Accept support from your audience without turning your income into a public leaderboard.

Payroll · coming soon · try the preview

Payday, without the public spreadsheet.

Drop in a list of people and amounts. Unseen pays each of them from your private balance, so neither the salaries nor the company wallet show up publicly.

Upload a CSV
name, Unseen address, amount
Preview the public view
No names, no amounts
Run it
~1 second per person

November payroll

5 people · USDC

Ready
  • AB

    Ayo Bakare

    unseen1ay0…zn8g

    6,200

    Queued
  • MT

    Mei Tanaka

    unseen1me7…5za9

    5,400

    Queued
  • LO

    Lucía Ortega

    unseen1lu5…7k4d

    4,850

    Queued
  • SW

    Sam Whitfield

    unseen1s4m…5e2n

    4,100

    Queued
  • PR

    Priya Raman

    unseen1pr7…2c9h

    3,600

    Queued
Treasury wallet hidden0 of 24,150 USDC

Agents · coming soon

Give your agent a budget, not your treasury.

Agents that pay per request leave a trail that maps your whole stack: which APIs you use, how often, and how much is in the wallet funding them. Unseen lets them pay from a private balance with a spending limit instead.

  • Per-call payments over x402, paid from a private balance
  • Daily and per-request spending caps, checked before anything is sent
  • The wallet that funds the agent never appears on chain
  • An MCP server so any model can pay, inside your limits
research-agentbudget 5.00 USDC / day

For developers · SDK coming soon

Private payments in three calls.

We’re packaging the same code the app runs into an SDK for wallets, apps and agents. This is the API we’re building toward; it isn’t on npm yet.

import { Unseen } from "@unseen/sdk";const unseen = await Unseen.connect({ connection, wallet });// Wallet -> private balance. The deposit is public, the rest isn't.await unseen.shield({ mint: USDC, amount: 250_000_000n });// Proof is built on this device, then handed to the relayer.const { signature } = await unseen.send({  to: "unseen1m7qz4x0d8kfr2c5h9wn3tj6y…",  amount: 120_000_000n,});
Preview API · subject to change

Trust the code,
not us.

Read the risks

No one can take the money

There is no admin withdrawal, not even for us. Money only moves when its owner's device proves it's theirs.

Withdrawals can't be paused

The admin can pause new deposits, nothing more. Sending and withdrawing always work.

Limits set on chain

Every deposit and the vault as a whole have a ceiling the program enforces, so the amount at risk always stays bounded.

FAQ

Fair questions.

How does it work, in plain English?

Think of a coat check. Handing your coat in is public: people see you walk up and how big it is (that's a deposit). You get a ticket only you can use. Inside, you can hand the value of your ticket to someone else and nobody sees it (a private payment). When someone collects a coat, people see them leave with it (a withdrawal). With enough tickets in the room, nobody can tell whose coat it was.

What exactly is public?

Deposits and withdrawals: the wallet, the amount and the time, because money visibly enters and leaves Unseen. Private payments inside Unseen only show that a payment happened and the relayer's small fee. Not who sent it, who got it, or how much.

Why does privacy get better over time?

Unseen hides you in the crowd of everyone using it. In the first days there are few others to blend in with, so a careful observer can guess more. Using common amounts, waiting before you withdraw, and withdrawing to a fresh wallet all help.

Who pays the SOL network fee?

For private transfers and withdrawals, a relayer signs and pays so your wallet never appears. It takes a small flat fee in USDC from the transfer itself. Deposits are signed by your own wallet.

Where do my keys come from?

You sign one message with your wallet. Unseen derives your private keys from that signature in your browser, so the same wallet gets the same keys on any device and nothing is stored on a server. Only sign that message on useunseen.lol.

Which tokens are supported?

USDC only for now. Each token gets its own pool so amounts can't be mixed across assets.

What are the risks?

Unseen hasn't had an independent security audit yet. A bug in the circuit or program could lose funds, which is why the program limits deposits to 1,000 USDC each and 50,000 USDC in total. Only deposit what you can afford to lose.

Can Unseen freeze my money?

No. The program has no admin withdrawal, and the admin switch only pauses new deposits. Sending and withdrawing keep working.

Your next payment doesn’t need an audience.

Deposit a few USDC and send your first private payment. It takes about a minute.