Signing Operations

Message Signing, Transaction Signing, and QR Export/Import Workflows

1. Message Signing Workflow

1
Input Message and Nonce Generation

User enters plaintext message. A UUID v4 nonce is auto-generated (can be refreshed). SHA-256 hash displays in real-time.

Sign Message
Message
Nonce (UUID)
Input
SHA-256 Hash
Real-time Computation
0x7f2a5c8b1d4e9a3f6c8e2b5d7a1c4f8e9b2d5a7c
Concatenated: message|nonce
Hash
2
Signature Display and Server Submission

After signing, the DER-encoded signature is displayed as uppercase hex. If a signing server URL is configured, user can submit via "Submit" button.

Signed
Signature (DER)
3045022100f7a8b2c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9
✓ Copied to clipboard
Result
Server Submit
Nonce:
a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6
Signature:
0x3045022100f7a8...
Submit to Server

2. Transaction Signing Workflow

1
Network Selection and Gas Oracle

User taps the network indicator bar to open `NetworkSelectorSheet`. Live gas data (Safe/Standard/Fast), ETH price, and account balance are fetched from Etherscan v2 API.

Sign Transaction
Ethereum Mainnet (1)
Safe: 18.5 gwei
Standard: 21.3 gwei
Fast: 25.7 gwei
ETH/USD: $3,485.23
Balance: 1.25 ETH
Network & Gas
Select Network
  • Ethereum Mainnet
  • Base
  • Arbitrum One
  • Polygon
  • Sepolia (testnet)
Networks
2
Transaction Fields and Preview

User configures transaction fields: nonce, to address, value, gas limit, gas price, priority fee, data. A JSON preview is rendered below the form.

Tx Fields
Inputs
Transaction JSON
{ "nonce": "0x5", "to": "0x742d35Cc6634C0532925a3b844Bc...", "value": "0x6f05b59d3b20000", "gasLimit": "0x5208", "gasPrice": "0x4f9c90800" }
Preview

3. QR Export and Import Cycle

1
QR Export Sheet with Multi-Part Animation

The "Export" button opens `ExportKeySheetView`. Multi-part QR codes auto-cycle with dot indicators. Transfer passphrase is displayed for secure communication.

Export Key (QR)
▦▦▦▦▦
▦ ▦▦ ▦
▦▦▦▦▦
Part 1 of 3
● ○ ○
Passphrase:
QR Export
Export Destinations
🔐 Secure Enclave
✓ Saved
☁️ iCloud Keychain
Available
💾 Files
Available
Backup Destinations
2
QR Scanner and Reassembly

Opening "QR Code" mode in `CreateKeySheetView` opens `QRScannerView`. Camera scans multi-part QR codes. Progress displays "X of Y parts scanned" with dot indicators.

Scan QR Codes
[Camera Preview]
Point at rotating QR codes
Camera
Scanning Progress
2 of 3 Parts Scanned
🟢 🟢 ⚪
Part 1: ✓
Part 2: ✓
Part 3: pending
Medium haptic on each scan
Progress
Passphrase Prompt
All parts scanned!
Enter transfer passphrase to decrypt:
Decrypt