* Update messaging and serialization * Replace collection prefixes with bigsize instead of u16 * add test vectors * Use old serialization format for oracle messages * Add temporary contract id to offer message * Rename leftEndPoint to endPoint * Update test vectors * Fix forgotten types * Replace bigsize with u64 in payout curve and numeric outcome * Update test vectors * use bigsize for vector prefix in rounding intervals * Update test vectors setting base as u16 * Update test vector with fix to precision field * Update test vectors to include temporary contract id in offer message * Add protocol version to accept message * Add protocol version to sign message * Fix test vectors
Discreet Log Contract In Progress Specification
The specifications are currently a work-in-progress and currently being drafted.
Pull requests and comments welcome.
Please see our introduction for what a DLC is and a glossary of terms used in DLCs.
For learning more about DLC have a look at the resources page.
Also, check out the dlc-dev mailing list!
Specification Roadmap
Check out our version 0 milestone!
For more information on works in progress and TODOs, see our pull requests and our v0.1 project dashboard
Future Work
- DLC Transfers/Updates
- Option-style DLCs
- Taproot DLCs
- Construction and negotiation of DLCs in Lightning (#3)
Implementations
bitcoin-s
The team at Suredbits is working on a implementation of discreet log contracts in bitcoin-s.
cfd-dlc
The team at CryptoGarage is working on a C++ implementation library. A JavaScript wrapper is also available. This wrapper is currently used as inside the p2pderivatives application.
rust-dlc
@Tibo-lg and others are working on a new Rust DLC implementation
node-dlc and chainify-finance
The team at Atomic Finance is working on two typescript implementation libraries which build on top of cfd-dlc. These libraries are used in the Atomic Finance app which also uses react-native-cfddlc swift module for C++ bindings.
NDLC
@NicolasDorier has created a wip DLC implementation in C# which can be used with BTCPayServer
This work is licensed under a Creative Commons Attribution 4.0 International License.