✨ Inspiration
TANOS was inspired by a friend who is building a marketplace on the Nostr ecosystem. He previously implemented a similar concept for Cashu–Nostr swaps (sig4sats-script) and even proposed a NIP for atomic signature swaps.
This showed me that these types of cryptographic primitives can have real, practical value in the Bitcoin ecosystem — and this hackathon was the perfect opportunity to contribute with something meaningful.
⚡ What it does
TANOS enables trustless and atomic swaps between a signed Nostr event and a Bitcoin Taproot UTXO, using adaptor signatures. It ensures that either the event is revealed and Bitcoin is paid — or nothing happens.
🛠️ How I built it
I built a custom library in Go to handle the cryptographic operations required for the swap. It uses:
The core logic handles adaptor signature creation, nonce tweaking, Taproot output construction, and final signature recovery.
🧱 Challenges I ran into
- Correctly computing adaptor signatures according to BIP340
- Handling point negation and parity bits to ensure valid Schnorr signatures
- Validating Taproot tweak logic
- Managing the interaction between Bitcoin and Nostr in a stateless way
🏆 Accomplishments I'm proud of
- Successfully recovering a valid Nostr signature via adaptor signature
- Fully trustless and atomic behavior with no escrow or third party
- A working cryptographic core written from scratch in Go
📚 What I learned
- That I don’t know nearly enough cryptography 😅
- Seriously, I gained deep insight into the intricacies of Schnorr signatures, Taproot script construction, and Bitcoin’s sigops limitations
- I also gained experience integrating off-chain protocols (Nostr) with on-chain enforcement (Bitcoin)
🚀 What's next for TANOS
- Implement a proper timelock refund path to prevent stuck funds or malicious behavior
- Test extensively on testnet and signet
- Add unit tests, documentation, and example flows
- Release a beta version for feedback
- Collaborate with other Nostr and Bitcoin projects to support adoption and integration

Log in or sign up for Devpost to join the conversation.