Spaßkasse
Eine Self-Custody-Wallet für den Desktop. Die Schlüssel liegen auf deinem Gerät. Es gibt keinen Server, der sie hält — auch nicht verschlüsselt, auch nicht kurz.
Warum Tauri und nicht Electron
Nicht wegen der Bundle-Größe und nicht wegen Offlinefähigkeit. Sondern weil privates Schlüsselmaterial nie in einen JavaScript-Heap gelangen darf.
In JavaScript lässt sich ein Seed nach Gebrauch nicht zuverlässig löschen — der Garbage Collector entscheidet, und Kopien bleiben liegen. In Rust lässt sich das erzwingen. Electron ist gegenüber einer reinen Web-App ein echter Fortschritt, aber der Main-Prozess ist weiterhin JavaScript: Zeroisierung bleibt unmöglich, und der komplette npm-Baum bleibt im Signierpfad.
| Web-App | Electron | Tauri 2 | |
|---|---|---|---|
| Schlüssel vom JS-Kontext trennbar | nein | teilweise | ja |
| Speicher überschreibbar | nein (GC) | nein (GC) | ja |
| npm-Lieferkette im Signierpfad | vollständig | vollständig | minimal |
| XSS erreicht Schlüssel direkt | ja | ja | nein |
Was zugesichert wird
Schlüssel verlassen dieses Gerät nicht
Kein Server hält Schlüsselmaterial, Wiederherstellungsphrasen oder etwas daraus Ableitbares. Kein Konto auf unserer Seite. Keine Telemetrie, kein Analytics-SDK, kein Crash-Reporter, der Inhalte überträgt.
Google-Anmeldung entsperrt die Wallet nicht
Ein OAuth-Token ist ein Bearer-Credential: Google kann es erzeugen, ein kompromittierter Browser es stehlen, eine übernommene Sitzung es wiederholen. Wer damit Schlüssel entsperrt, hat eine Custodial-Wallet mit Extraschritten gebaut. Entsperrt wird ausschließlich lokal mit einer Passphrase über Argon2id. OAuth dient allein dazu, ein bereits verschlüsseltes Backup abzulegen — Google sieht Ciphertext ohne Schlüssel.
Keine selbstgebaute Kryptographie
Jede Primitive stammt aus einer auditierten oder breit geprüften Bibliothek, die vor der Aufnahme einzeln bewertet wird. Die offiziellen Testvektoren (BIP-32/39/84/86) laufen als Tests und werden nie übersprungen.
Laut scheitern
Kryptographische Operationen haben keinen stillen Fallback. Eine fehlgeschlagene Entschlüsselung, Ableitung oder Signatur ist ein harter Fehler, nie ein Standardwert.
Wogegen nicht geschützt wird
Das hier auszusprechen gehört zum Sicherheitsmodell. Eine Wallet, die mehr Schutz andeutet als sie hat, ist eine Wallet, deren Nutzer Risiken eingehen, denen sie nicht zugestimmt haben.
- Schadsoftware mit deinen Rechten. Ein Keylogger liest die Passphrase beim Tippen mit. Keine Software auf demselben Rechner verhindert das. Die ehrliche Antwort darauf ist eine Hardware-Wallet — deshalb steht Ledger-Unterstützung auf der Liste.
- Ein kompromittiertes Betriebssystem, Kernel oder eine kompromittierte Firmware.
- Eine vergessene Passphrase oder verlorene Wiederherstellungsphrase. Es gibt kein Zurücksetzen, keinen Wiederherstellungslink, keinen Support-Weg. Wir können nicht helfen, weil wir nichts halten.
- Eine schwache Passphrase. Argon2id mit 256 MiB kauft etwa 25–30 Bit Vorsprung gegenüber einer GPU-Farm. Eine achtstellige Passphrase rettet es nicht.
- Screenshot-Sperre als Garantie. Sie funktioniert unter macOS und Windows. X11 und Wayland bieten kein Äquivalent, und die Oberfläche behauptet dort auch keines.
- Zwischenablage-Manipulation. Die Zwischenablage wird 20 s nach dem Kopieren geleert, aber Clipboard-Manager haben den Inhalt längst dupliziert. Was wirklich schützt, ist die gruppierte Adressanzeige und der QR-Code als bevorzugter Empfangsweg.
Stand
| Phase | Inhalt | Stand |
|---|---|---|
| 0 | Fundament, IPC-Grenze, Bedrohungsmodell | fertig |
| 1 | Vault: Argon2id, XChaCha20-Poly1305, BIP-39/32, Auto-Lock | fertig |
| 2 | Chain-Fundament, Signer-Trennung, RPC-Regeln | fertig |
| 3 | Bitcoin (BIP-84/86, PSBT) und EVM (EIP-1559, ERC-20), nur Testnetz | größtenteils |
| 4 | Oberfläche, Onboarding, Bestätigungsschirme, Wiederherstellungsprobe | in Arbeit |
| 5 | Backups: Datei-Export, Drive-Sync, SLIP-39 | offen |
| 6 | WalletConnect, Ledger, Solana, Multisig | offen |
Mainnet ist nicht einkompiliert. Es liegt hinter einem Cargo-Feature, das standardmäßig aus ist; die CI schlägt fehl, falls es je in die Standardkonfiguration gerät. Eine Chain wird einzeln freigeschaltet — nach einem vollständigen Testnetz-Durchlauf, grünen Testvektoren und einem externen Review des Vault- und Signierpfads. Bitcoin kommt zuerst: sein Signierpfad hat keine Calldata, keine Freigaben und keine Typed-Data-Signaturen, also weniger, das beim ersten echten Netz schiefgehen kann.
Sicherung und Wiederherstellung
Drei Wege mit klar getrennten Zwecken. Sie zu verwechseln ist die häufigste Ursache für Totalverluste, deshalb erklärt die Oberfläche für jeden, was er wiederherstellt und was nicht.
- Wiederherstellungsphrase — die einzige Sicherung, die ohne Spaßkasse funktioniert. Alles andere ist Komfort obendrauf.
- Verschlüsselte Datei-Sicherung — enthält, was die Phrase nicht wiederherstellt: Konten, Bezeichnungen, Ableitungspfade, Adressbuch.
- Google-Drive-Sync — dieselbe Datei, die letzten fünf Stände, jederzeit abschaltbar. Google sieht ausschließlich Ciphertext.
Shamir über eine BIP-39-Phrase wird ausdrücklich abgelehnt: das ergibt ein Format, das sich nirgends außerhalb dieser Anwendung wiederherstellen lässt — also eine Sicherung, die genau dann versagt, wenn man sie braucht. SLIP-39 wird stattdessen als eigenständiges, bei der Erstellung einmalig gewähltes Seed-Schema angeboten.
Rechtlicher Hinweis
Eine rein non-custodial Wallet ohne Verfügungsgewalt über fremde Schlüssel fällt in Deutschland und der EU üblicherweise nicht unter das Kryptoverwahrgeschäft. Sobald Custody-Elemente, Swap-Funktionen, Fiat-Anbindung oder serverseitige Schlüsselanteile dazukämen, ändert sich die Einordnung (MiCAR, KWG). Genau diese sind bewusst außerhalb des Projektumfangs. Das ist ein Hinweis darauf, wo die Linie verläuft, keine Rechtsberatung.
Kontakt
Sicherheitsrelevante Funde bitte an martin.pfeffer@celox.io, nicht öffentlich. Das Repository ist bislang nicht öffentlich; es gibt daher noch keinen Quellcode-Link und keinen Download.