Walleet

MNT sind zwei verschiedene Vermögenswerte — und andere Gründe, warum Währungskürzel täuschen

MNT ist der mongolische Tögrög. MNT ist auch Mantle, ein Krypto-Token. Der eine ist etwa ein Dreieinhalbtausendstel Dollar wert, der andere etwa einen Dollar. Sie liegen drei Größenordnungen auseinander und teilen sich einen Namen.

Speichert eine Finanz-App Ihre Bestände nach Währungskürzel und Sie halten beide, kann sie die zwei nicht auseinanderhalten. Es gibt keinen Fehler. Sie zeigt eine Zahl, und die Zahl ist um den Faktor einiger Tausend falsch.

Das ist eine kleine Geschichte über einen kleinen Fehler — und die klarste Veranschaulichung dafür, wie Walleet gebaut ist.

Die Annahme, die scheitert

ISO 4217 vergibt dreibuchstabige Kürzel an Landeswährungen: USD, EUR, JPY. Das ist ein echter Standard mit einer Registrierungsstelle, und innerhalb seines Bereichs sind die Kürzel eindeutig.

Krypto hat keine solche Stelle. Token wählen ihr Kürzel selbst, und nichts hält eines davon ab, ein bereits von ISO vergebenes zu wählen. Mehrere haben genau das getan.

Sobald eine App also Landeswährungen und Krypto zugleich bepreist, hört die Annahme, auf der fast ihr gesamter Code beruht — ein Kürzel bezeichnet einen Vermögenswert —, still auf zu stimmen. Nichts kündigt das an. Das Schema funktioniert weiter. Die Abfragen liefern weiter Zeilen. Nur eben die falschen.

Warum das schlimmer ist als ein normaler Fehler

Die meisten Fehler machen sich laut bemerkbar. Ein falscher Spaltenname wirft eine Ausnahme. Ein fehlender Datensatz liefert nichts.

Dieser liefert eine plausible Zahl. Ihr Vermögen wird berechnet, formatiert, gezeichnet und angezeigt — und ist falsch. Jede nachgelagerte Größe erbt den Fehler: die Summe, die Währungsaufteilung, die Veränderung zum Vormonat, das Allzeithoch. Nichts sieht kaputt aus.

Schlimmer noch: Es hängt von den Daten ab. Es geht nur bei Nutzern schief, die beide kollidierenden Vermögenswerte halten — bei MNT ein kleiner Kreis —, also übersteht es Tests, Review und Monate im Betrieb. So etwas findet man über eine Support-Mail mit „meine Summe sieht seltsam aus“, wenn man Glück hat.

Was Walleet tut

Ein Vermögenswert wird über ein Paar identifiziert: sein Kürzel und seinen Typ. MNT/Währung ist der Tögrög. MNT/Krypto ist Mantle. Das sind zwei Zeilen, zwei Preise, zwei Historien.

Das Paar geht überall mit. Die Währung eines Kontos ist ein Paar. Die Währung, in der Sie Ihr Vermögen lesen, ist ein Paar. Eine Kursabfrage nimmt ein Paar. Die Datenbank erzwingt es: Die Währung eines Kontos ist ein Fremdschlüssel auf Kürzel-und-Typ eines unterstützten Vermögenswertes, sodass sich kein Konto in einem Vermögenswert anlegen lässt, den es nicht gibt.

Und der Typ ist an den Systemgrenzen nicht optional. Die API verlangt ihn, wo er gebraucht wird, und die Teile des Codes, die mit Vermögenswerten umgehen, sind so geschrieben, dass das Weglassen der halben Angabe nicht kompiliert. Das ist Absicht: Eine Regel, die vom Review abhängt, wird irgendwann gebrochen — eine, die der Compiler durchsetzt, nicht.

Die andere Stelle, an der Kürzel täuschen

Dieselbe falsche Annahme taucht bei der Formatierung auf.

Der Standardmechanismus zur Währungsdarstellung im Browser nimmt ein dreibuchstabiges ISO-Kürzel. Geben Sie ihm vier — USDT, DOGE — liefert er keine Näherung. Er wirft eine Ausnahme. An der falschen Stelle nimmt das die ganze Seite mit, statt eine Zahl zu verunstalten.

Und ein dreibuchstabiges Krypto-Kürzel ist schlimmer, weil es angenommen wird. BTC hat drei Buchstaben, wird also bereitwillig formatiert — mit den zwei Nachkommastellen, die ISO vorgibt. Ein Zehntel Bitcoin erscheint als BTC 0,10, was in Ordnung ist, und tausend Satoshi als BTC 0,00, was es nicht ist.

Beide Fälle werden ausdrücklich behandelt: Kürzel werden klassifiziert, bevor sie einen Formatierer erreichen, und jeder Vermögenswert trägt seine eigene Genauigkeit. Landeswährungen beziehen sie aus denselben Standarddaten wie Ihr Betriebssystem — der Yen hat keine Nachkommastellen, der bahrainische Dinar drei — und Coins eine deklarierte, gedeckelt bei acht.

Acht ist eine erklärte Grenze, keine versteckte. Manche Token sind bis auf achtzehn Stellen teilbar, und eine Gleitkommazahl kann achtzehn signifikante Stellen nicht neben einem realistischen Bestand tragen. Also ist der Deckel dokumentiert und wird einheitlich angewendet, statt dass eine Zahl still ihr Ende verliert.

Warum das in einem Marketing-Artikel steht

Weil man es von außen nicht prüfen kann.

Jeder Vermögenstracker zeigt Ihnen eine Zahl. Keiner zeigt die Begründung, und vom Bildschirm aus sehen eine richtige Summe und eine um drei Größenordnungen falsche gleich selbstbewusst aus. Sie vertrauen der Arithmetik und können sie nicht einsehen.

Wir sagen Ihnen lieber, wo die scharfen Kanten sind und was dagegen getan wurde. Ein Team, das über den Tögrög nachgedacht hat, hat wahrscheinlich auch über die gewöhnlichen Fälle nachgedacht — und falls sich hier etwas als falsch herausstellt, gehört die Korrektur ins Produkt und nicht in die Formulierung.

Mehr dazu, wie die Arithmetik funktioniert, steht in was Vermögen in einer Währung wirklich bedeutet.