Auf dieser Seite
Air-Gap (Offline-Signieren per QR-Code)
Einen Signierablauf mit UR-kodierten QR-Codes erstellen, bei dem das Gerät offline bleibt.
Funktionsweise
- Anfrage erstellen: Eine UR-Nutzlast für die Signieranfrage erstellen (je Chain) und als animierte QR-Frames darstellen
- Gerät scannt: Das Gerät scannt den QR-Code, zeigt Details zur Prüfung auf dem Bildschirm und signiert offline
- Signatur abrufen: Das Gerät zeigt die Signatur-UR als animierten QR-Code an
- Übertragen: Die App scannt die Antwort, prüft sie und überträgt sie über Ihr Netzwerk
Schnellstart nach Chain
| Chain | Anfragetyp (App → Gerät) | Antworttyp (Gerät → App) |
|---|---|---|
| Ethereum & EVM | eth-sign-request | eth-signature |
| Bitcoin (PSBT) | crypto-psbt | crypto-psbt |
| Solana | sol-sign-request | sol-signature |
| Tron | tron-sign-request | tron-signature |
Kontoexporttypen (Gerät → App)
Diese UR-Typen werden verwendet, wenn das Gerät bei der Ersteinrichtung Kontoinformationen an die App exportiert:
| UR-Typ | Beschreibung |
|---|---|
crypto-hdkey | Export eines einzelnen HD-Schlüssels (BCR-2020-007 ) |
crypto-multi-accounts | Export eines chainübergreifenden Kontopakets |
API-Referenz
- Basis-API – Grundlegende UR-Typen:
CryptoHDKey,CryptoCoinInfo,CryptoKeypath
Pakete
# Keystone SDK & UR registries
npm install @keystonehq/keystone-sdk @keystonehq/bc-ur-registry-eth
# UR primitives
npm install @ngraveio/bc-urIntegration in Drittanbieter-Wallets
Wenn Sie OneKey Air-Gap in eine bestehende Wallet integrieren, müssen Sie sicherstellen, dass Ihr QR-Scanner diese UR-Typen an einen BC-UR-v2-Decoder (mit Fountain-Codierung) weiterleitet, nicht an einen älteren v1-Decoder.
UR-Typen, die Ihr Scanner akzeptieren muss
| Richtung | UR-Typ | Wann |
|---|---|---|
| Gerät → App | crypto-psbt | Signierte BTC-PSBT |
| Gerät → App | crypto-hdkey | HD-Schlüsselexport beim Verbinden |
| Gerät → App | crypto-multi-accounts | Export mehrerer Konten beim Verbinden |
| Gerät → App | eth-signature | ETH-Signaturantwort |
| Gerät → App | sol-signature | Signierte SOL-Transaktion |
| Gerät → App | btc-signature | BTC-Signatur (ohne PSBT) |
| App → Gerät | eth-sign-request | ETH-Signieranfrage |
| App → Gerät | sol-sign-request | SOL-Signieranfrage |
| App → Gerät | crypto-psbt | Unsignierte BTC-PSBT |
| Gerät → App | tron-signature | TRON-Signaturantwort |
| App → Gerät | tron-sign-request | TRON-Signieranfrage |
Häufiger Fehler: UR-Typ-Zuordnung
Einige Wallets verwenden eine Positivliste, um festzulegen, welche UR-Typen mit dem modernen BC-UR-v2-Decoder dekodiert werden (Fountain-Codes über @ngraveio/bc-ur). Typen, die nicht in der Positivliste stehen, werden möglicherweise an einen älteren v1-Decoder weitergereicht, der ein völlig anderes Kodierungsschema verwendet und dadurch den Scanner blockiert.
Wenn Ihr Scanner „Bitte weiter scannen“ anzeigt, aber nie fertig wird, prüfen Sie, ob der UR-Typ in Ihrer v2-Positivliste steht.
onekey-app-call-device (privates Protokoll)
Der UR-Typ onekey-app-call-device ist ein OneKey-internes Protokoll für Vorgänge zur Geräteverwaltung (z. B. getMultiAccounts, verifyAddress). Drittanbieter-Wallets sollten diesen Typ NICHT implementieren — er kann sich ohne Vorankündigung ändern. Verwenden Sie stattdessen die standardmäßigen Keystone-SDK-Methoden.
Demo & Beispiele
- React-Native-Demo: Air-Gap-Demo auf GitHub
- Scanner: AirGapScanner.tsx
- Chain-Hilfsfunktionen: sdk/
Hinweis: Air-Gap ist grundsätzlich offline. Es gibt keine Online-Testumgebung im Browser.