This is device firmware, not a re-creation of it: the actual Python that runs on a SeedSigner, in this tab. Two builds are on offer, stock SeedSigner and the 3rdIteration smartcard fork; the control under the device says which one is running and switches between them.
Its Python is executed by Pyodide (CPython compiled to WebAssembly) inside a Web Worker. The wallet code itself is unmodified; only the places it reaches for hardware are replaced.
Nothing leaves your browser. The wallet has no network of any kind, and the
page's content security policy names exactly one other origin it may reach:
signet.bitsaga.be, the faucet and proof endpoints of Bitsaga Signet,
which nothing asks anything unless you start the multisig tutorial.
It is a simulator. Treat every key it shows as public and never type a seed phrase you rely on. Mainnet works here exactly as on hardware, and that is the danger: on Mainnet this page exports the correct mainnet account keys and produces real, valid mainnet signatures. It sits in the device's own Settings and Advanced menus where it always has, neither hidden nor recommended, and the multisig tutorial has no use for it: Bitsaga Signet does the whole thing.
Source, and a build script that rebuilds this wallet from a pinned upstream commit so you can check the claim above yourself: seedsigner-sim. Technical details, beside this, has the pin, both published hashes and everything the wallet zip carries. The device firmware lives in seedsigner-os.
The page is checking itself, so this is a convenience and not proof: only rebuilding the zip and comparing the hash is a check that does not depend on this page being honest.
The upstream tree at the commit above, this repository's stand-ins for the hardware a browser does not have, and these pinned dependencies. Nothing else.
Check it yourself: rebuild the zip · the same rebuild on a clean runner · tests · upstream's own tests · source · latest release
Simulator. Never enter a seed phrase you rely on; use a throwaway test seed. On Mainnet this page holds the real mainnet keys for whatever you give it, with no secure element under them: treat anything typed in as public.
starting…