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
A relayer submits for you and pays gas, so your Stacks address never appears. The proof binds theirs, so the fee cannot be redirected.
You are submitting this yourself, so leave it at zero. Paying yourself 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 your incoming payments. It cannot move funds.
Records for your accountant
A file of your own payments, decrypted locally. Nothing is uploaded, and your spending key never leaves this device. They verify it with m1 audit-verify, holding no key of their own.
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.
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.
Both sources carry the same public daily closes, so the choice is only about who sees the request. Your own indexer means nobody does. The zkStacks feed is there if you have not set one up. 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.