OpenARK is a specification for extending Bitcoin's Lightning Network with VTXO-based (Virtual Transaction Output) multi-channel architecture. It enables trust-minimized off-chain transactions through an Ark Service Provider model while maintaining HTLC compatibility with existing Lightning infrastructure.
OpenARK combines three key technologies:
- ARK Protocol: VTXO-based transaction model with collaborative rounds
- Lightning Network: HTLC-compatible payment channels
- Nostr: Decentralized transport protocol for messaging
- Wallet sovereignty: Wallets can run their own ASP infrastructure rather than onboarding onto third-party ASPs
- No vendor lock-in: Decentralized architecture where wallets maintain control
- Liquidity separation: External liquidity providers can fund ASP rounds without controlling the ASP itself
- Open messaging: Nostr-based transport provides transparent, auditable communication
- HTLC-compatible model (must be part of a Lightning chain)
- Support for RGB in ARK, defining how the RGB asset model works in these channels
- Use Nostr as a transport protocol (see NIP-150)
- BOLT Document: Specification for extending Lightning to support VTXO-based multi-channel with a trusted party as resolver (ARK-channel)
- NIP Document: Nostr-based transport model for OpenARK messages
| Document | Description |
|---|---|
| 15-open-ark.md | Main specification with roles, examples, and transaction types |
| nip-150.md | Nostr message format specification (kind 150) |
| LIGHTNING.md | Comparison of Lightning vs OpenARK payment flows |
- VTXO Tree Diagram - Structure of a VTXO tree with multiple users
- Atomic Swap Diagram - Cross-atomic swap between Alice and Bob
- Ark Service Provider (ASP): Operates the Nostr relay and runs the ARK
- Co-Verifier: Holds one key to the shared signature plus their own User key
- User: Holds only their own User key
- Round Messages: new_round_initiate, new_round_join, new_round_vtxo_tree_proposal, etc.
- VTXO Messages: vtxo_spend_request, vtxo_spend_confirmed, vtxo_spend_complete
- HTLC Templates: HTLC_Offer, HTLC_Success, HTLC_Timeout
| Aspect | OpenARK | Other Implementations |
|---|---|---|
| ASP operation | Wallet-operated | Centralized ASP recruits wallets |
| Fee capture | Wallet keeps majority | ASP captures fees |
| Liquidity model | Trustless external LPs | ASP must self-fund |
| Wallet dependency | None (run your own) | High (on ASP availability) |
| Messaging | Nostr (open, auditable) | Varies (JSON-RPC, gRPC) |
| Aspect | Status |
|---|---|
| Design | Complete |
| Testnet | Running |
| Mainnet | Not ready |
- Read the main specification to understand the protocol
- Review the message format specification for Nostr integration
- Study the examples in the main spec:
- Example 1.0: Creating a VTXO tree
- Example 1.1: Alice pays Bob
- Example 1.2: Round transitions with onboarding/offboarding
- ARK Protocol - Original ARK specification
- Lightning Network - Bitcoin Layer 2 payment channels
- Nostr Protocol - Decentralized messaging protocol
- RGB Protocol - Smart contracts on Bitcoin
This is a specification project. Contributions are welcome via pull requests for:
- Clarifications to existing specifications
- Additional examples
- Diagram improvements
- Protocol extensions