Satoshi Escrow: Building a Trustless Bitcoin Escrow System
🚀 Inspiration
Satoshi Escrow was inspired by a 2010 post from Satoshi Nakamoto, where he outlined the concept of a 2-of-2 multisig escrow system. The idea was to create a trust-minimized way for two parties to trade without relying on a third-party custodian.
While platforms like Bisq and Private Law Society (PLS) implement similar mechanisms, they either introduce friction or require pre-approved arbitrators. We saw an opportunity to improve this model by making it:
- More flexible (optional third-party arbitration in a timelocked 2-of-3).
- More secure (offline-compatible signing, usable on air-gapped devices).
- More accessible (simple web interface, Nostr integration for easy signing and address derivation).
By leveraging Nostr and game-theoretic-sound multisig, we aimed to create a Bitcoin-native escrow that is easy to use, trustless, and fully self-custodial.
💡 What It Does
Satoshi Escrow provides a trust-minimized way to conduct peer-to-peer Bitcoin trades using 2-of-2 multisig escrow.
- Buyer and Seller lock 3P (price) BTC into a multisig address: 2P from the Buyer and 1P from the Seller,
- If the trade completes successfully, both parties sign off to release the funds fairly.
- If a dispute arises, an optional timelocked 2-of-3 multisig allows a trusted third party to intervene after N days.
- Works offline, ensuring private and air-gapped security.
- Requires only Nostr public keys (npubs) for the participant's and third party enrollment, and Nostr private keys (nsecs) to sign the transaction that resolves the escrow.
🛠 How We Built It
Satoshi Escrow is a static web app designed to generate, sign, and broadcast multisig transactions for secure escrow transactions. Here’s how it works:
- Frontend & UI: Built with Next.js, leveraging HTML, JavaScript, and WebAssembly (Wasm). The app is designed to be exported as a static webpage, allowing users to run it offline, even on air-gapped devices.
- Rust Bitcoin: Used to create secure P2WSH (SegWit v0) multisig transactions through the WASM interface.
- Signing: Transactions are signed locally using Nostr secret keys (nsec) for added security.
- Dispute Resolution: Allows for an optional third-party arbitrator through timelocked 2-of-3 multisig.
- Fee Estimation: Integrated with Mempool API for real-time fee adjustments.
- Broadcasting Transactions: Users can also broadcast the signed transactions from the app.
- Non-interactive Third-Party Arbitrator Enrollment: Since it depends on only npubs, the optional third-party arbitrator can be enrolled without having the need of interactivity, just plug his/her npub.
⚡ Challenges We Ran Into
🚧 Fee Estimation Complexity – The initial transaction fee might become outdated before signing, requiring Child Pays For Parent (CPFP) or external accelerators like mempool accelerator.
🚧 Interactive Signing Issues – Initially, we explored MuSig2 + Taproot (P2TR), but it failed due to its interactive nonce exchange requirement, otherwise participants can rugpull one another.
🚧 PSBTs are annoying to work with – We've fallback to raw transactions.
🚧 UI Simplicity vs. Functionality – Balancing ease of use while still allowing customizable parameters like escrow percentages, dispute rewards, and timelocks.
🏆 Accomplishments That We're Proud Of
✅ Built a working trustless Bitcoin escrow using only Bitcoin-native tools.
✅ Implemented a 2-of-2 and 2-of-3 multisig escrow, making it fully self-custodial.
✅ Designed a privacy-preserving and offline-compatible solution for secure P2P transactions.
✅ Integrated Nostr cryptographic keys (npub/nsec) for a seamless signing experience and escrow address creation.
🔍 What We Learned
Building Satoshi Escrow taught us a lot about:
✅ Bitcoin's script capabilities & Miniscript – Understanding how to create complex but efficient escrow transactions.
✅ Nostr integration – Using npub/nsec keys for cryptographic signing beyond just messaging and leveraging secp256k1.
✅ Air-gapped security – Making a tool that works offline for added safety in high-value transactions.
✅ Game-theoretic incentives – Designing mechanisms where all parties have logical incentives to act fairly.
🚀 What's Next for Satoshi Escrow
We see this as the foundation for a broader decentralized P2P trade ecosystem. Future improvements could include:
- Lightning escrow integration for faster transactions.
- Enhanced dispute resolution frameworks with decentralized oracles.
- More privacy features such as CoinJoin support.
- Taproot MuSig2 Support: enhanced on-chain privacy and less fees.
Final Thoughts
Satoshi Escrow takes a concept first proposed by Satoshi Nakamoto and brings it to life in a trustless, private, and Bitcoin-native way. By leveraging multisig and Nostr, we’ve built an escrow system that truly belongs to the users—not a third party.
🔹 Bitcoin-native escrow, finally done right. 🚀
Built With
- bitcoin
- bitcoinscript
- javascript
- mempool.space
- miniscript
- mutinynet
- next.js
- nostr
- segwit
- typescript
- webassembly

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