Skip to content

solid-apps/taproot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taproot

A multi-currency taproot wallet keyed by your identity — your secp256k1 key (nostr or your Solid WebID's CID Multikey) is your taproot address across Bitcoin, Litecoin, and Vertcoin (mainnet + testnets). Inspired by nostr.app/wallet. Experimental.

Receive + balance

  • Pick a chain → see your taproot address (bech32m with the chain's prefix: bc/tb, ltc/tltc, vtc/tvtc), a QR, a copy button, and an explorer link.
  • Balance via mempool.space for the Bitcoin chains (testnet4/testnet3/mainnet). Litecoin/Vertcoin show the address + explorer (per-chain APIs aren't wired here).
  • Shows your npub — same key, your nostr identity.

The address is derived from your public key only (nostr getPublicKey() or the WebID Multikey).

Send (Bitcoin chains)

Send to any address (tb1…/bc1…, legacy/segwit/taproot), an npub, or a raw 64-hex pubkey. Pick a fee rate (from mempool's recommendations), optionally attach an OP_RETURN message (≤80 bytes), then review → broadcast.

How it signs (the careful part):

  • This is a raw-key taproot output — your secp256k1 key is the witness-v1 output key (no BIP86 tweak), exactly matching the receive address.
  • Inputs are signed with the BIP341 sighash + a BIP340 schnorr signature computed by @cmdcode/tapscript (Signer.taproot.hash / Signer.taproot.sign) — proven crypto, not hand-rolled.
  • Solid: signs locally with the secp256k1 key read from your pod's owner-only /private/privkey.jsonld. The key is used in-memory, wiped after signing, and never leaves the page — only the signed transaction is broadcast.
  • Nostr: signs via your extension's window.nostr.signSchnorr (needs an extension that supports it, e.g. Alby / nos2x).
  • Every input signature is verified under your output key before broadcast. If any check fails, nothing is sent.
  • Mainnet is flagged in red and requires typing SEND to broadcast.

Test on testnet4 first (faucets linked from the reference's awesome-testnet4). This is experimental software — go slow with real funds.

Run

Static — open index.html, or install via the store to /public/apps/taproot/. Sign-in required.

AGPL-3.0-only.

About

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages