:::danger Disclaimer This project is experimental and based on a protocol which is still evolving everyday. Use with caution.
I will take no attempt at maintaining backwards compatibility at this stage. :::
A DLC can be seen as a smart contract involving two parties
, a future event
, a set of outcomes and a payoff function
.
An outcome
can be attested
by an oracle
. The oracle
does not need to interact with either party, and its only role is to attest
the outcome of the event.
The payoff function
determines the two parties' profit or loss depending on which outcome get attested
.
The oracle
roles is to define the event
and attest
a single outcome of the event.
Let's call Alice and Bob the two parties of the contract, and Olivia the oracle.
A DLC will show two transactions on the chain:
- The Funding Transaction
- The Contract Execution Transaction (CET)
The Funding Transaction
is a transaction built by the two parties of the contract, locking their collateral for the contract.
The Contract Execution Transaction
(or CET
) is the transaction distributing the locked collateral according to the payoff function
for the outcome attested by the oracle.
The following documentation is also explained in this video.
You need to add ndlc's docker fragment to your install with:
BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;opt-add-ndlc"
. btcpay-setup.sh -i
You can then use ndlc-cli.sh
to run use ndlc-cli, for example:
ndlc.sh oracle generate MyOwnOracle
Read our documentation on our GitHub repository.