In the spirit of "building in the open" here's a fuzzy video show 3 users entering into a competition, creating an aggregate signature via musig2 and broadcasting the funding transaction of a dlctix contract after the coordinator's wallet successfully signs it. Next will be getting the payout out functionality working/hooked up along with a nostr public chat group.

Once the features have all landed, and there's been a bit of code clean up, all the code will be open sourced

https://streamable.com/c91tsg

Technologies used so far:

- bdk-wallet in the browser and server: https://github.com/bitcoindevkit/bdk

- nostr-sdk in the browser and server: https://github.com/rust-nostr/nostr/tree/master/crates/nostr-sdk

- dlctix in the browser and server: https://github.com/conduition/dlctix

The bitcoin regtest environment is being manager and run via doppler locally as well (creating the bitcoin node, esplora instance and a few connected lightning nodes): https://github.com/tee8z/doppler

Reply to this note

Please Login to reply.

Discussion

What the funding transaction from the demo video ends up looking like:

```

bd1 getrawtransaction "9f49d3a42c35e75a4e0c9c37aecc4454d56b4e27661a1589721f912282c8c299" true

WARN[0000] /home/tee8z/.doppler/v0.4.0/doppler-cluster.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion

{

"txid": "9f49d3a42c35e75a4e0c9c37aecc4454d56b4e27661a1589721f912282c8c299",

"hash": "01114229cce8a2875b609fcf65cf9c1ceab4382ddb41d114567878e7532845cf",

"version": 2,

"size": 205,

"vsize": 154,

"weight": 616,

"locktime": 0,

"vin": [

{

"txid": "e46ca3d09e4c46bff6361fb490096573ed37f7f09fd01cf54dcdc06c9781a5a0",

"vout": 1,

"scriptSig": {

"asm": "",

"hex": ""

},

"txinwitness": [

"d4f07e09193ff4e3623586959dbe52e3c7ac4aeee1d713f4197a45dd080e864346139e78ef0961084c828c52b22db830cd9ac07dd3e665c92aaf216e97e9c234"

],

"sequence": 4294967295

}

],

"vout": [

{

"value": 0.00015000,

"n": 0,

"scriptPubKey": {

"asm": "1 ec54c620f5967cbc751d2f5b327bbe8763dabd284c1b0d9157a389e92386d843",

"desc": "rawtr(ec54c620f5967cbc751d2f5b327bbe8763dabd284c1b0d9157a389e92386d843)#ldxg2ce5",

"hex": "5120ec54c620f5967cbc751d2f5b327bbe8763dabd284c1b0d9157a389e92386d843",

"address": "bcrt1pa32vvg84je7tcaga9adny7a7sa3a40fgfsdsmy2h5wy7jguxmppsqvfxk0",

"type": "witness_v1_taproot"

}

},

{

"value": 999.99944200,

"n": 1,

"scriptPubKey": {

"asm": "1 77a99c96ecdf0128fc71423c7d795833d3d5b8cdb3e739617dd7af07de5cae42",

"desc": "rawtr(77a99c96ecdf0128fc71423c7d795833d3d5b8cdb3e739617dd7af07de5cae42)#3a08tt8u",

"hex": "512077a99c96ecdf0128fc71423c7d795833d3d5b8cdb3e739617dd7af07de5cae42",

"address": "bcrt1pw75ee9hvmuqj3lr3gg78672cx0fatwxdk0nnjcta67hs0hju4epq6kfkkx",

"type": "witness_v1_taproot"

}

}

],

"hex": "02000000000101a0a581976cc0cd4df51cd09ff0f737ed73650990b41f36f6bf464c9ed0a36ce40100000000ffffffff02983a000000000000225120ec54c620f5967cbc751d2f5b327bbe8763dabd284c1b0d9157a389e92386d843080e76481700000022512077a99c96ecdf0128fc71423c7d795833d3d5b8cdb3e739617dd7af07de5cae420140d4f07e09193ff4e3623586959dbe52e3c7ac4aeee1d713f4197a45dd080e864346139e78ef0961084c828c52b22db830cd9ac07dd3e665c92aaf216e97e9c23400000000",

"blockhash": "038d071dfa201816cc8f51af3b83e61468a16b653c78218fd86a98fc579d42b3",

"confirmations": 1,

"time": 1737912980,

"blocktime": 1737912980

}

```