SatoFinder Help

A single-file, fully client-side BSV wallet by SmartLedger Technology. Everything runs in your browser; no server sees your keys.

Two interfaces

SatoFinder ships two front-ends over the same wallet rules. Both derive identical addresses from the same mnemonic, and both apply the same ordinal/token protection described below. Pick whichever suits you:

They are not the same security model, and the differences are not cosmetic — see Alternate UI before you use it with real funds.

Security model

First run

On first visit you get three choices:

Write your mnemonic on paper. Do not screenshot or email it.

BIP39 passphrase (the "25th word")

BIP39 defines an optional passphrase that is fed into the seed derivation alongside the mnemonic. The same 12 or 24 words combined with a different passphrase produce a completely different wallet (different addresses, different keys). This is also known as the "25th word" or "BIP39 hidden wallet".

Derivation

SatoFinder supports both BIP32 (m/0'/external'/index') and BIP44 (m/44'/coin'/account'/change/index) paths.

The Wallet preset dropdown picks the right coin / account index for popular BSV wallets (Atomic, Exodus, Keevo, MoneyButton, RelayX, SimplyCash, Twetch). Editing any path field marks the preset as "custom".

Send

Enter the recipient address and amount (in satoshis). Click Build transaction. The app fetches UTXOs from WhatsOnChain, builds and signs the transaction using a two-pass fee calculation (no under-fee bugs), and shows you the full transaction (destination, amount, fee, change, raw hex) before you confirm.

Show raw transaction hex expands a panel with the signed hex, a Copy hex button, and a link that opens WhatsOnChain's broadcast page in a new tab. Paste the hex into WoC's Decode tab to independently verify inputs, outputs and fee before coming back here to confirm.

Nothing leaves your browser until you click Confirm & broadcast.

Fee rate. The default is 100 sat/KB, and the Fee rate field in the Send panel lets you change it — the value applies to Send and to recovery sweeps, persists across reloads, and is shown on the confirm screen so you can see the rate that actually built the transaction. It exists so a change in what miners accept doesn't need a new release: if your transactions stop confirming, raise it. Values are clamped to whole numbers between 1 and 100,000 sat/KB — anything else falls back to the default and says so, since a zero fee builds a transaction no miner will relay.

Tokens & ordinals (1Sat, BSV-20)

SatoFinder queries GorillaPool's 1Sat overlay (ordinals.gorillapool.io) on every Send and Sweep to identify UTXOs at your address that carry an inscription (1Sat ordinal / NFT), a BSV-20 token, or a lock script. These UTXOs are automatically excluded from the spendable set — otherwise a sweep or send would burn the NFT or destroy the token by paying it as fee or change.

The Send confirm and Sweep preview panels show a small "🛡 N ordinal/token UTXOs excluded" line whenever protection is in effect. The Alternate UI shows the same line on its Send and Recovery panels.

If the indexer is unreachable when you try to build a transaction, the build is blocked. Silently spending without protection could permanently destroy your ordinals or tokens. Retry when the indexer is back, or use a different network path. (We do not offer a "spend anyway" override in this release.)

The Tokens & ordinals panel is an informational read-only view of what's at your current derived address — useful before you change paths or sweep. Click Load tokens & ordinals to refresh it. Sending or transferring ordinals/tokens is not supported in this release; this is a recovery-focused tool.

Recovery sweep

If you've used multiple addresses under the same mnemonic, click Scan first 50 addresses to find UTXOs across the first 50 receive and 50 change addresses under your current preset. Bitails serves the multi-address lookup.

The Send recovered coins to field at the top of the panel sets where the sweep transactions go:

Each found address has its own Preview button. Click it to build (but NOT broadcast) the sweep transaction; an inline review block shows the destination, amount, fee, and raw hex. You can copy the hex and inspect it on WhatsOnChain's decode tab before clicking Confirm & broadcast. Only one preview is open at a time; Cancel discards it without broadcasting.

When there are 2 or more matches, a Sweep all button at the top broadcasts a sweep for each pending address in sequence — this path bypasses the per-row preview since the destination is already set explicitly at the top of the panel. Per-address results display next to each row; one failure does not block the rest.

Export & backup

The Export mnemonic panel re-asks for your password before revealing the mnemonic (so a casual onlooker can't read it). You can also download an encrypted backup file (satofinder-vault-…json) — useless without your password, safe to email or archive.

Alternate UI

The Alternate UI (satofinder-modern.html) is a second front-end with a panelled dashboard layout — sidebar navigation, live balance, and separate Wallet / Send / Recover / Tokens / History / Backup / Settings panels. It is not a relaxed or "lite" build: it enforces the same ordinal/token protection, the same hard-block when the indexer is unreachable, the same auto-lock, the same CSP inline-script hash pinning, and the same SHA-384 SRI pinning as Classic.

What is the same:

What is different — read this before using it with real funds:

Both pages link to each other in the footer, and both are covered by ./build.sh, which re-pins each page's inline-script CSP hash and verifies its SRI hashes against the live CDN.

Offline use & caching

SatoFinder no longer installs a service worker, and does not cache itself. Every visit loads the current code.

Earlier versions did cache the app and served it cache-first, refreshing only when the worker file itself changed. That file went untouched from v2.0.0 through v2.4.0, so anyone who had visited before kept running the v2.0.0 app — and never received the BIP39 passphrase support, the 24-word entropy fix, or the ordinal/token spend protection that stops a Send from burning an NFT. It failed silently; there was nothing to notice.

It also bought nothing. This wallet needs the network for balances, UTXOs, history and broadcast, and a Send is blocked unless the ordinal indexer can confirm your UTXOs are safe to spend — so an offline SatoFinder can derive an address and little else. The bundle's integrity comes from SHA-384 SRI, not from the cache.

If you used SatoFinder before v2.5.0: your browser will pick up a replacement worker that clears the old caches, unregisters itself, and reloads the page onto the live version. If you want to force it now, hard-reload (Ctrl/Cmd+Shift+R) or clear site data for this origin.

Want it offline anyway? Save the page. It is a single self-contained file — open the saved copy on an air-gapped machine to derive keys.

Disclaimer

SatoFinder is provided as-is, free, with no warranty. The author is not responsible for any loss of funds. Always verify the raw transaction hex before broadcasting if you are moving significant value, and test with small amounts first.

← Back to wallet

© SmartLedger Technology