1 · Derive stealth keys
++ A wallet signs the canonical Wraith message; the 64-byte signature is split into two + domain-separated seeds, and each seed expands into a key pair. The public halves form + your stealth meta-address — share it to receive payments. +
+ +Copy permalink — share the current step + inputs.
+2 · Send a stealth payment
+
+ A fresh one-time ephemeral keypair is generated per payment. ECDH with the recipient's
+ viewing key derives the one-time stealth address, and the stealth-announcer
+ contract emits an announcement event — simulated here as a Horizon event.
+
Copy permalink — share the current step + inputs.
+3 · Scan for incoming payments
++ Announcements are filtered by view tag (a single byte rejects ~255/256 non-matches), then + matched with ECDH + Ed25519 point addition. The batch below is parsed from the fixture + Horizon events, plus anything you constructed in the Send step. +
+ +No keys handy? Load the demo keys that match the fixture announcements.
+ +Announcement batch
+Copy permalink — share the current step + inputs.
+4 · Withdraw to your wallet
+
+ Only the recipient can spend from a stealth address: the stealth private scalar
+ (spendingScalar + hashToScalar(sharedSecret) mod L) signs the withdrawal.
+ This step simulates the transaction using the demo keys.
+
Copy permalink — share the current step + inputs.
+