Documentation
Everything you need to know about using Nøkto and integrating the SDK
Program ID
The stealth address program deployed on Solana
463ouCTi...TQeVu62aFee Recipient
Protocol fee recipient address
5ryJ537z...eprtaCSyProtocol Fee
Fee charged per stealth transfer
Scheme ID
Cryptographic scheme used (secp256k1)
Fee Payer Configuration
When building transactions, the fee payer must be set correctly. The sender pays for:
- Transaction fees (~0.000005 SOL)
- Protocol fee (0.002 SOL)
- Rent for the stealth address account (~0.00089 SOL)
Wallet Signature for Key Derivation
When using "Derive from Wallet", the same wallet signature always produces the same stealth keys. This is deterministic - you can restore your keys on any device by connecting the same wallet.
Indexer Sync Status
The "slots behind" indicator shows the gap between the last indexed transaction and the current blockchain slot. If no new stealth transfers occur, this number will naturally grow. It does not mean your transactions are missing.
Stealth addresses provide privacy by generating a unique, one-time address for each payment:
- Recipient publishes a stealth meta-address (contains two public keys)
- Sender uses the meta-address to derive a unique stealth address
- Sender sends funds to the stealth address and publishes an announcement
- Recipient scans announcements to find payments addressed to them
- Recipient derives the private key for matched addresses and withdraws funds
This way, the recipient's main wallet is never linked to incoming payments on-chain.
1. Key Generation
The recipient generates two secp256k1 keypairs: a spending keypair (Kspend) and a viewing keypair (Kview). These are combined into a stealth meta-address.
2. Address Derivation
The sender generates an ephemeral keypair (r) and computes a shared secret using ECDH with the recipient's viewing public key. The stealth address is derived as: P = Kspend + hash(shared_secret) * G
3. Announcement
The sender publishes the ephemeral public key and a view tag (first byte of the hash) on-chain. This allows the recipient to efficiently scan for payments.
4. Scanning
The recipient uses their viewing private key to check each announcement. The view tag allows quick filtering (only 1/256 announcements need full verification). For matches, they can derive the spending private key.