Private balance
Recent
Your notes
A note is spent whole. Cash out matches one note exactly.
Send
Paste any cbtc1 address. Saving it as a contact is optional.
Your browser proves the payment, then it settles in two chain transactions.
Advanced
Leave this at zero. This wallet submits your payment itself, so a relayer fee is paid to your own Stacks address, which only moves sats into public view.
Your payment address
Derived from a signature by your Stacks account. Rotating gives you a fresh address; old ones keep working.
Viewing key
Lets someone read the payments made to the address shown above, and nothing else. Each address has its own key, so pick the address first. It cannot move funds, and it cannot show what you sent. They open it under Check an account on this app's first screen.
Records for your accountant
A file that proves what this account received and spent. It is built on this device and nothing is uploaded. Whoever you give it to checks it on the first screen of this app, under Check an account, and needs no key of their own.
Period
Include
What the recipient will learn
- Will see: the amount and date of every row above, and the transaction each one settled in.
- Will see: this account's authority key. Every deposit publishes that key on chain, so it also lets them link your deposits to each other.
- Will not see: your seed, or anything that could spend.
- Will not see: who you paid, unless you tick payee names.
- Cannot confirm: that nothing was left out. A file proves what is in it. To show every payment received, share your viewing key as well.
Two addresses
- Stacks address public
- not connected
- Payment address private
- not set up
The first pays gas and is visible to everyone. The second is what people pay you at, and the pool never learns the two belong together.
Activity
Amounts are shown in sBTC first. A payment to you carries no sender on record, because the chain never had one.
Contacts
Names are stored on this device only.
Check an account
Check what an account received and spent. Give either or both: a records file proves every line in it, and a viewing key shows every payment the account received, which is the only way to confirm the file left nothing out. You need no wallet and no key of your own, and nothing is uploaded or kept.
Records file optional
Settings
Chain data
Spending needs a Merkle path, and the chain never gives you one: it stores 33 values and no path. So the pool has to be rebuilt from its events, either here or by a server.
In this tab reads a public Stacks node directly and rebuilds the pool here. Nothing is hosted, and nobody learns which leaves you care about. The first scan makes one request per pool transaction and takes a moment; after that it is cached, because a mined transaction never moves.
An indexer has already done that work, which is the answer for a pool too large to scan from a phone. It reads public data only and never sees a key, but it does learn which leaves you ask about.
Run your own
Network
Which Stacks node this wallet reads. Hiro's public one by default, which needs no key and no setup. Point it at your own to stop one operator seeing every request, or to read a pool too large for a public node's rate limit.
Contracts:
Dollar values
Off by default. Turned on, the wallet shows what each payment was worth on the day it happened, and lets you enter amounts in dollars.
Every source carries the same public daily closes, so the choice is only about who sees the request. This tab means nobody does, which is why it is the default. The zkStacks feed is there if you would rather not download the whole history. Records you export name whichever was used.
What a shared indexer sees. The whole daily history is downloaded once a day and every date is looked up here, on this device. It learns that an address fetched a public file, and not which dates you looked up, how many payments you have, or when they happened.
What this browser stores
Not your private key. It is worked out from a wallet signature each time you open zkStacks and is never written to this device, so there is nothing here to steal and nothing to back up. The cost is the signature request on every visit.
Your history, unencrypted. Amounts, the people you paid, memos, contacts, your published addresses and the notes found by scanning are all kept in this browser in the clear. Anything with access to this profile, an extension with permission on this site, profile sync, or somebody reading the disk, can read them.
None of it is uploaded. Losing this browser loses the payee names and memos; your balance and your sent and received history come back from the pool when you reconnect. Forget this device, under the connection menu, deletes all of it.