Enter the recipient's hex pubkey or load the built-in demo profile:
β WARNING β Real Wallet Connection
This PoC connects to a real browser wallet extension or native wallet app. If you confirm a transaction in your extension or wallet, it may actually be executed depending on your network settings. Only confirm a transaction if you genuinely intend to transfer funds. Your coins could be permanently lost. Do not use real wallets with real balances for testing.
What is this? A proof of concept for a proposed NIP: metadata-driven on-chain payments ("Sparks") triggered directly from a Nostr client.
How does it work? The recipient publishes a wallets array in their Kind 0 profile (an extension to NIP-01). Each entry specifies an asset, a chain (CAIP-2), an address, and a deep-link template. The sending client reads this data, auto-detects available wallet extensions in the browser (EIP-6963 for EVM, Wallet Standard for Sui/Solana/Bitcoin), and opens the wallet β either via the extension API on desktop, or via deep link on mobile.
Why not a Zap? A Spark (Kind 9736) is distinct from a Zap (Kind 9734/9735). Zaps are Lightning-only and settle in-app. Sparks open a native wallet and transfer on-chain assets β the actual transaction is signed and submitted by the user's wallet, not by the client. There is no receipt event: the sender receives confirmation directly from their wallet extension or app.
Wallet detection: Fully generic β no wallet names are hardcoded anywhere. Detection relies exclusively on open standards (EIP-6963, Wallet Standard) with a capability-scan fallback for wallets with a broken Wallet Standard implementation.
How to use: Load a recipient profile β select an asset β enter an amount β press Spark / Send.
The client first publishes a Kind 9736 Spark Request to the relay, then opens the wallet via extension API or deep link. A Name badge means a browser extension was detected. A deep link badge means a mobile fallback is available.
Notes on this PoC:
β Purely demonstrative. Shows how wallet data is read from a Nostr profile and handed off to an extension or deep link. The actual transaction is executed by the user's wallet.
β Kind 9736 Spark Requests are published to a real relay (wss://nos.lol). The sender key is ephemeral and generated fresh for this session only.
β The demo addresses are example addresses β do not send real funds.