summaryrefslogtreecommitdiff
path: root/70/4a2086b169a9ff9967ea56120bfe2f2b6b8c94
blob: a1f6d8abb6955a9aeffa78699febe00bc74fbc28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
Return-Path: <jeremy.l.rubin@gmail.com>
Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 211A4C0011
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 22 Feb 2022 18:05:37 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp1.osuosl.org (Postfix) with ESMTP id ED1158188B
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 22 Feb 2022 18:05:36 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -0.854
X-Spam-Level: 
X-Spam-Status: No, score=-0.854 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, NUMERIC_HTTP_ADDR=1.242,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 WEIRD_PORT=0.001] autolearn=ham autolearn_force=no
Authentication-Results: smtp1.osuosl.org (amavisd-new);
 dkim=pass (2048-bit key) header.d=gmail.com
Received: from smtp1.osuosl.org ([127.0.0.1])
 by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Y3Xr5Y1c1IVr
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 22 Feb 2022 18:05:35 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
Received: from mail-vk1-xa34.google.com (mail-vk1-xa34.google.com
 [IPv6:2607:f8b0:4864:20::a34])
 by smtp1.osuosl.org (Postfix) with ESMTPS id 4D236817A9
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 22 Feb 2022 18:05:35 +0000 (UTC)
Received: by mail-vk1-xa34.google.com with SMTP id x62so3102655vkg.6
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 22 Feb 2022 10:05:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
 bh=EVc0+Gn3l+Crm3g/nBoNNx7t0Gy5TDjHPuyK3p/mybI=;
 b=X/SmKwxXfibQaQzYnwDm7Yh3e7f4DsrKWg1IKVzzMumc9NUUSUNaYEkmWWga3vc9zg
 6btQNkyEJ1BZI4xZ6RCGyWcDrAwv7faT0DKGoeMJUAi/c/1B7gz+T/KW9nQ9ledm7G/T
 RomHr6AncB/ErSv1pV1n7daStZF9jzdwfkKiv9iGqTozdolw148IzVJj+ZPkhGuD/1y+
 FnUvD0qGCUyFUfar86uyZYO3Xe4I49jhJadwvWH7dHoqL7lFw6lsXMRAsPzfWlIpNXul
 tXDkw7+uKH4zZONAEIfFfD48Tkd86MB6q1qLmIDEQiZxKHUh4ZCUqnEB/0MYEIgwTQTU
 FOrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to;
 bh=EVc0+Gn3l+Crm3g/nBoNNx7t0Gy5TDjHPuyK3p/mybI=;
 b=pSAxRMks+q3lXBKShen5wP9wnZ0tPR6AU7UA+wPmYplX62CBvkI7+k9u7/20SXsRDg
 S+bkWAmp4ynKFPLVMMdFtE1dL3/n0Qa9iZwB4DLiaHQTYwy0yV91MH0IyPf5lgyXICqC
 3XhP83XmU7V5gOs5jag47gGMkwwkv0NrPYdigw84LXLZ6b+rneabG3SVpXGLeHL822yM
 DrPM6XeQDu/QQg7zX72BIxIQ8CRDpmJZWH16TKHqy2OR7NrgW2dx/V1XYBVNOcS3K7HW
 HBKWxgzgM5bQ1HLKjA2ivcK3hJPUBPXSRTogsf17KB7DL1O0tPD2jGBIt8M57Ib+ZVz/
 d/zw==
X-Gm-Message-State: AOAM530ypPcNRNfSIzifXExrYd10Acv4JZWIPR57LJX5y8hyRXWircOP
 hqaQxSdb9QUI3UpSbLOGNfhXCkxpdoD5+/cbuQo19/nEZthmEA==
X-Google-Smtp-Source: ABdhPJypRIrWEMcmV3eT9Y8dQ595xVJ0xSKg9HVLbofTO5Nh5iZKbxI8HjWr4f0HB0SCyoRTCjva2bKvf8mUzBNy1YE=
X-Received: by 2002:a05:6122:2229:b0:32d:1642:b58b with SMTP id
 bb41-20020a056122222900b0032d1642b58bmr10688780vkb.27.1645553133658; Tue, 22
 Feb 2022 10:05:33 -0800 (PST)
MIME-Version: 1.0
References: <CAD5xwhjBvGLC5AHR4Xngnkg78A_UV4AkPUKAi0COzCxMZnVeNQ@mail.gmail.com>
In-Reply-To: <CAD5xwhjBvGLC5AHR4Xngnkg78A_UV4AkPUKAi0COzCxMZnVeNQ@mail.gmail.com>
From: Jeremy Rubin <jeremy.l.rubin@gmail.com>
Date: Tue, 22 Feb 2022 10:05:21 -0800
Message-ID: <CAD5xwhjd2yUbANH9=NHQ5FdmPtEcfA4vBPQXV4Hjwfi36L=QSg@mail.gmail.com>
To: Bitcoin development mailing list <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="000000000000fda52e05d89f312f"
X-Mailman-Approved-At: Tue, 22 Feb 2022 18:11:16 +0000
Subject: Re: [bitcoin-dev] BIP-119 CTV Meeting #4 Draft Agenda for Tuesday
 February 22nd at 12:00 PT
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Tue, 22 Feb 2022 18:05:38 -0000

--000000000000fda52e05d89f312f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Devs,

As promised, a Sapio Tutorial. In this tutorial we'll walk through how to
use the Sapio CLI to generate contracts and play with them on the network.
We'll use a congestion control tree because it's very simple! We will walk
through this step-by-step during the meeting today.

-1. Install JQ (json manipulating tool) if you don't have it / other things
needed to run a bitcoin node.
0. Set up a node as described above.  You'll likely want settings like this
in your bitcoin.conf too:
[signet]
# generate this yourself

rpcauth=3Dgenerateme:fromtherpcauth.pyfile
txindex=3D1
signetchallenge=3D512102946e8ba8eca597194e7ed90377d9bbebc5d17a9609ab3e35e70=
6612ee882759351ae

rpcport=3D18332
rpcworkqueue=3D1000
fallbackfee=3D0.0002

Get coins https://faucet.ctvsignet.com/ / DM me

1. Follow the install instructions on
https://learn.sapio-lang.org/ch01-01-installation.html You can skip the the
sapio-studio part / pod part and just do the Local Quickstart up until
"Instantiate a contract from the plugin". You'll also want to run *cargo
build --release* from the root directory to build the sapio-cli.


2. Open up the site https://rjsf-team.github.io/react-jsonschema-form/
3. Run *sapio-cli contract api --file
plugin-example/target/wasm32-unknown-unknown/debug/sapio_wasm_plugin_exampl=
e.wasm*
4. Copy the resulting JSON into the RJSF site
5. Fill out the form as you wish. You should see a JSON like
{
"context": {
"amount": 3,
"network": "Signet",
"effects": {
"effects": {}
}
},
"arguments": {
"TreePay": {
"fee_sats_per_tx": 1000,
"participants": [
{
"address": "tb1pwqchwp3zur2ewuqsvg0mcl34pmcyxzqn9x8vn0p5a4hzckmujqpqp2dlma"=
,
"amount": 1
},
{
"address": "tb1pwqchwp3zur2ewuqsvg0mcl34pmcyxzqn9x8vn0p5a4hzckmujqpqp2dlma"=
,
"amount": 1
}
],
"radix": 2
}
}
}

You may have to delete some extra fields (that site is a little buggy).

Optionally, just modify the JSON above directly.

6. Copy the JSON and paste it into a file ARGS.json
7. Find your sapio-cli config file (mine is at
~/.config/sapio-cli/config.json). Modify it to look like (enter your
rpcauth credentials):
{
 "main": null,
 "testnet": null,
 "signet": {
   "active": true,
   "api_node": {
     "url": "http://0.0.0.0:18332",
     "auth": {
       "UserPass": [
         "YOUR RPC NAME",
         "YOUR PASSWORD HERE"
       ]
     }
   },
   "emulator_nodes": {
     "enabled": false,
     "emulators": [],
     "threshold": 1
   },
   "plugin_map": {}
 },
 "regtest": null
}

8. Create a contract template:
*cat ARGS.json| ./target/release/sapio-cli contract create  --file
plugin-example/target/wasm32-unknown-unknown/debug/sapio_wasm_plugin_exampl=
e.wasm
 | jq > UNBOUND.json*
9. Get a proposed funding & binding of the template to that utxo:

*cat UNBOUND.json| ./target/release/sapio-cli contract bind | jq >
BOUND.json*
10. Finalize the funding tx:

*cat BOUND.json | jq ".program[\"funding\"].txs[0].linked_psbt.psbt" |
xargs echo | xargs -I% ./bitcoin-cli -signet utxoupdatepsbt % |  xargs -I%
./bitcoin-cli -signet walletprocesspsbt % | jq ".psbt" | xargs -I%
./bitcoin-cli -signet finalizepsbt % | jq ".hex"*

11. Review the hex transaction/make sure you want this contract... and then
send to network:



*./bitcoin-cli -signet sendrawtransaction
020000000001015e69106b2eb00d668d945101ed3c0102cf35aba738ee6520fc2603bd60a87=
2ea0000000000feffffff02e8c5eb0b000000002200203d00d88fd664cbfaf8a1296d3f7176=
25595d2980976bbf4feeb10ab090180ccdcb3faefd020000002251208f7e5e50ce7f65debe0=
36a90641a7e4d719d65d621426fd6589e5ec1c5969e200140a348a8711cb389bdb3cc0b1050=
961e588bb42cb5eb429dd0a415b7b9c712748fa4d5dfe2bb9c4dc48b31a7e3d1a66d9104bbb=
5936698f8ef8a92ac27a650663500000000*


12. Send the other transactions:

*cat BOUND.json| jq .program | jq ".[].txs[0].linked_psbt.psbt" | xargs -I%
./target/release/sapio-cli psbt finalize --psbt %  | xargs -I%
./bitcoin-cli -signet sendrawtransaction %*



Now what?

- Maybe load up the Sapio Studio and try it through the GUI?
- Modify the congestion control tree code and recompile it?
- How big of a tree can you make (I did about 6000 last night)?
- Try out other contracts?
--
@JeremyRubin <https://twitter.com/JeremyRubin>


On Mon, Feb 21, 2022 at 7:36 PM Jeremy Rubin <jeremy.l.rubin@gmail.com>
wrote:

> Hi All,
>
> Apologies for the late posting of the agenda. The 4th CTV meeting will be
> held tomorrow at 12:00 PT in ##ctv-bip-review in Libera.chat.
>
> Tomorrow the conversation will be slightly more tutorial focused. If you
> have time in advance of the meeting, it might be good to do some of this =
in
> advance.
>
> 1) Discussion: What is the goal of Signet? (20 minutes)
>     - Do we have a "decision function" of observations from a test networ=
k?
>     - What applications should be prototyped/fleshed out?
>     - What level of fleshed out matters?
>     - Should we add other experiments in the mix on this net, like
> APO/Sponsors?
>     - Should we get e.g. lightning working on this signet?
> 2) Connecting to CTV Signet Tutorial (10 mins)
>
> We'll make sure everyone who wants to be on it is on it & debug any issue=
s.
>
> *Ahead of Meeting: Build this
> branch https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify-si=
gnet-23.0-alpha
> <https://github.com/JeremyRubin/bitcoin/tree/checktemplateverify-signet-2=
3.0-alpha>*
>
> Connect to:
> ```
> [signet]
>
> signetchallenge=3D512102946e8ba8eca597194e7ed90377d9bbebc5d17a9609ab3e35e=
706612ee882759351ae
> addnode=3D50.18.75.225
> ```
>
> 3) Receiving Coins / Sending Coins (5 mins)
> There's now a faucet for this signet: https://faucet.ctvsignet.com
> And also an explorer: https://explorer.ctvsignet.com
>
> 4) Sapio tutorial (25 minutes)
>
> *Ahead of meeting, if you have time: skim https://learn.sapio-lang.org
> <https://learn.sapio-lang.org> & download/build the sapio cli & plugin
> examples*
>
> We'll try to get everyone building and sending a basic application (e.g.
> congestion control tree or vault) on the signet (instructions to be poste=
d
> before meeting).
>
> We won't use Sapio Studio, just the Sapio CLI.
>
> 5) Sapio Q&A (30 mins)
>
> After some experience playing with Sapio, more general discussion about
> the project and what it may accomplish
>
> 6) General Discussion (30 minutes)
>
>
> Best,
>
> Jeremy
>
> --
> @JeremyRubin <https://twitter.com/JeremyRubin>
>

--000000000000fda52e05d89f312f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div class=3D"gmail_default" style=3D"font-family:ari=
al,helvetica,sans-serif;font-size:small;color:#000000">Hi Devs,</div><div c=
lass=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font=
-size:small;color:#000000"><br></div><div class=3D"gmail_default" style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">As pr=
omised, a Sapio Tutorial. In this tutorial we&#39;ll walk through how to us=
e the Sapio CLI to generate contracts and play with them on the network. We=
&#39;ll use a congestion control tree because it&#39;s very simple! We will=
 walk through this step-by-step during the meeting today.<br></div><div cla=
ss=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-s=
ize:small;color:#000000"><br></div><div class=3D"gmail_default" style=3D"fo=
nt-family:arial,helvetica,sans-serif;font-size:small;color:#000000">-1. Ins=
tall JQ (json manipulating tool) if you don&#39;t have it / other things ne=
eded to run a bitcoin node.<br></div><div class=3D"gmail_default" style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">0. Se=
t up a node as described above.=C2=A0 You&#39;ll likely want settings like =
this in your bitcoin.conf too:<br></div><div><span style=3D"font-family:mon=
ospace">[signet]</span></div><div><span style=3D"font-family:monospace"><sp=
an class=3D"gmail_default" style=3D"font-size:small;color:rgb(0,0,0)"># gen=
erate this yourself</span>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <span class=
=3D"gmail_default" style=3D"font-size:small;color:rgb(0,0,0)">rpcauth=3Dgen=
erateme:fromtherpcauth.pyfile</span>=C2=A0 =C2=A0 =C2=A0</span></div><span =
style=3D"font-family:monospace">txindex=3D1<br>signetchallenge=3D512102946e=
8ba8eca597194e7ed90377d9bbebc5d17a9609ab3e35e706612ee882759351ae <br>rpcpor=
t=3D18332<br>rpcworkqueue=3D1000<br>fallbackfee=3D0.0002</span></div><div><=
span style=3D"font-family:monospace"><br></span></div><div>G<span class=3D"=
gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-size:sm=
all;color:rgb(0,0,0)">et coins <a href=3D"https://faucet.ctvsignet.com/">ht=
tps://faucet.ctvsignet.com/</a> / DM me<br></span></div><div><span class=3D=
"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-size:s=
mall;color:rgb(0,0,0)"><br></span></div><div><span class=3D"gmail_default" =
style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0=
,0,0)"></span><span class=3D"gmail_default" style=3D"font-family:arial,helv=
etica,sans-serif;font-size:small;color:rgb(0,0,0)"><span style=3D"font-fami=
ly:monospace"></span></span><span class=3D"gmail_default" style=3D"font-fam=
ily:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><span styl=
e=3D"font-family:monospace"></span></span></div><div><span class=3D"gmail_d=
efault" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;col=
or:rgb(0,0,0)"><span style=3D"font-family:monospace"></span></span></div><d=
iv><div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,s=
ans-serif;font-size:small;color:#000000">1. Follow the install instructions=
 on <a href=3D"https://learn.sapio-lang.org/ch01-01-installation.html">http=
s://learn.sapio-lang.org/ch01-01-installation.html</a> You can skip the the=
 sapio-studio part / pod part and just do the Local Quickstart up until &qu=
ot;Instantiate a contract from the plugin&quot;. You&#39;ll also want to ru=
n <i>cargo build --release</i> from the root directory to build the sapio-c=
li.</div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,=
sans-serif;font-size:small;color:#000000"><br></div><br><div class=3D"gmail=
_default" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;c=
olor:#000000">2. Open up the site <a href=3D"https://rjsf-team.github.io/re=
act-jsonschema-form/">https://rjsf-team.github.io/react-jsonschema-form/</a=
></div><span class=3D"gmail_default" style=3D"font-family:arial,helvetica,s=
ans-serif;font-size:small;color:rgb(0,0,0)">3</span>. Run <i>sapio-cli cont=
ract api --file plugin-example/target/wasm32-unknown-unknown/debug/sapio_wa=
sm_plugin_example.wasm</i><br></div><div>4.<span class=3D"gmail_default" st=
yle=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0=
,0)"> Copy the resulting JSON into the RJSF site</span></div><div><span cla=
ss=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-s=
ize:small;color:rgb(0,0,0)">5. Fill out the form as you wish. You should se=
e a JSON like</span></div><div class=3D"gmail_default" style=3D"font-family=
:arial,helvetica,sans-serif;font-size:small;color:#000000"><div style=3D"co=
lor:rgb(0,0,0);background-color:rgb(255,255,254);font-family:&quot;Droid Sa=
ns Mono&quot;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&quo=
t;;font-weight:normal;font-size:14px;line-height:19px;white-space:pre"><div=
><span style=3D"color:rgb(0,0,0)">{</span></div><div><span style=3D"color:r=
gb(0,0,0)">  </span><span style=3D"color:rgb(163,21,21)">&quot;context&quot=
;</span><span style=3D"color:rgb(0,0,0)">: {</span></div><div><span style=
=3D"color:rgb(0,0,0)">    </span><span style=3D"color:rgb(163,21,21)">&quot=
;amount&quot;</span><span style=3D"color:rgb(0,0,0)">: </span><span style=
=3D"color:rgb(9,134,88)">3</span><span style=3D"color:rgb(0,0,0)">,</span><=
/div><div><span style=3D"color:rgb(0,0,0)">    </span><span style=3D"color:=
rgb(163,21,21)">&quot;network&quot;</span><span style=3D"color:rgb(0,0,0)">=
: </span><span style=3D"color:rgb(4,81,165)">&quot;Signet&quot;</span><span=
 style=3D"color:rgb(0,0,0)">,</span></div><div><span style=3D"color:rgb(0,0=
,0)">    </span><span style=3D"color:rgb(163,21,21)">&quot;effects&quot;</s=
pan><span style=3D"color:rgb(0,0,0)">: {</span></div><div><span style=3D"co=
lor:rgb(0,0,0)">      </span><span style=3D"color:rgb(163,21,21)">&quot;eff=
ects&quot;</span><span style=3D"color:rgb(0,0,0)">: {}</span></div><div><sp=
an style=3D"color:rgb(0,0,0)">    }</span></div><div><span style=3D"color:r=
gb(0,0,0)">  },</span></div><div><span style=3D"color:rgb(0,0,0)">  </span>=
<span style=3D"color:rgb(163,21,21)">&quot;arguments&quot;</span><span styl=
e=3D"color:rgb(0,0,0)">: {</span></div><div><span style=3D"color:rgb(0,0,0)=
">    </span><span style=3D"color:rgb(163,21,21)">&quot;TreePay&quot;</span=
><span style=3D"color:rgb(0,0,0)">: {</span></div><div><span style=3D"color=
:rgb(0,0,0)">      </span><span style=3D"color:rgb(163,21,21)">&quot;fee_sa=
ts_per_tx&quot;</span><span style=3D"color:rgb(0,0,0)">: </span><span style=
=3D"color:rgb(9,134,88)">1000</span><span style=3D"color:rgb(0,0,0)">,</spa=
n></div><div><span style=3D"color:rgb(0,0,0)">      </span><span style=3D"c=
olor:rgb(163,21,21)">&quot;participants&quot;</span><span style=3D"color:rg=
b(0,0,0)">: [</span></div><div><span style=3D"color:rgb(0,0,0)">        {</=
span></div><div><span style=3D"color:rgb(0,0,0)">          </span><span sty=
le=3D"color:rgb(163,21,21)">&quot;address&quot;</span><span style=3D"color:=
rgb(0,0,0)">: </span><span style=3D"color:rgb(4,81,165)">&quot;tb1pwqchwp3z=
ur2ewuqsvg0mcl34pmcyxzqn9x8vn0p5a4hzckmujqpqp2dlma&quot;</span><span style=
=3D"color:rgb(0,0,0)">,</span></div><div><span style=3D"color:rgb(0,0,0)"> =
         </span><span style=3D"color:rgb(163,21,21)">&quot;amount&quot;</sp=
an><span style=3D"color:rgb(0,0,0)">: </span><span style=3D"color:rgb(9,134=
,88)">1</span></div><div><span style=3D"color:rgb(0,0,0)">        },</span>=
</div><div><span style=3D"color:rgb(0,0,0)">        {</span></div><div><spa=
n style=3D"color:rgb(0,0,0)">          </span><span style=3D"color:rgb(163,=
21,21)">&quot;address&quot;</span><span style=3D"color:rgb(0,0,0)">: </span=
><span style=3D"color:rgb(4,81,165)">&quot;tb1pwqchwp3zur2ewuqsvg0mcl34pmcy=
xzqn9x8vn0p5a4hzckmujqpqp2dlma&quot;</span><span style=3D"color:rgb(0,0,0)"=
>,</span></div><div><span style=3D"color:rgb(0,0,0)">          </span><span=
 style=3D"color:rgb(163,21,21)">&quot;amount&quot;</span><span style=3D"col=
or:rgb(0,0,0)">: </span><span style=3D"color:rgb(9,134,88)">1</span></div><=
div><span style=3D"color:rgb(0,0,0)">        }</span></div><div><span style=
=3D"color:rgb(0,0,0)">      ],</span></div><div><span style=3D"color:rgb(0,=
0,0)">      </span><span style=3D"color:rgb(163,21,21)">&quot;radix&quot;</=
span><span style=3D"color:rgb(0,0,0)">: </span><span class=3D"gmail_default=
" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb=
(0,0,0)">2</span></div><div><span style=3D"color:rgb(0,0,0)">    }</span></=
div><div><span style=3D"color:rgb(0,0,0)">  }</span></div><div><span style=
=3D"color:rgb(0,0,0)">}</span></div><div><span style=3D"color:rgb(0,0,0)"><=
br></span></div>Y<span class=3D"gmail_default" style=3D"font-family:arial,h=
elvetica,sans-serif;font-size:small;color:rgb(0,0,0)">ou may have to delete=
 some extra fields (that site is a little buggy).</span></div><div style=3D=
"color:rgb(0,0,0);background-color:rgb(255,255,254);font-family:&quot;Droid=
 Sans Mono&quot;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&=
quot;;font-weight:normal;font-size:14px;line-height:19px;white-space:pre"><=
span class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-seri=
f;font-size:small;color:rgb(0,0,0)"><br></span></div><div style=3D"color:rg=
b(0,0,0);background-color:rgb(255,255,254);font-family:&quot;Droid Sans Mon=
o&quot;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&quot;;fon=
t-weight:normal;font-size:14px;line-height:19px;white-space:pre"><span clas=
s=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-si=
ze:small;color:rgb(0,0,0)">Optionally, just modify the JSON above directly.=
<br></span></div><div style=3D"color:rgb(0,0,0);background-color:rgb(255,25=
5,254);font-family:&quot;Droid Sans Mono&quot;,&quot;monospace&quot;,monosp=
ace,&quot;Droid Sans Fallback&quot;;font-weight:normal;font-size:14px;line-=
height:19px;white-space:pre"><span class=3D"gmail_default" style=3D"font-fa=
mily:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></spa=
n></div><div style=3D"color:rgb(0,0,0);background-color:rgb(255,255,254);fo=
nt-family:&quot;Droid Sans Mono&quot;,&quot;monospace&quot;,monospace,&quot=
;Droid Sans Fallback&quot;;font-weight:normal;font-size:14px;line-height:19=
px;white-space:pre"><span class=3D"gmail_default" style=3D"font-family:aria=
l,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">6. Copy the JSON a=
nd paste it into a file ARGS.json<br></span></div><div style=3D"color:rgb(0=
,0,0);background-color:rgb(255,255,254);font-family:&quot;Droid Sans Mono&q=
uot;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&quot;;font-w=
eight:normal;font-size:14px;line-height:19px;white-space:pre"><span class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small;color:rgb(0,0,0)">7. </span><span class=3D"gmail_default" style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">Fi=
nd your sapio-cli config file (mine is at ~/.config/sapio-cli/config.json).=
 Modify it to look like (enter your rpcauth credentials):</span></div><div =
style=3D"color:rgb(0,0,0);background-color:rgb(255,255,254);font-family:&qu=
ot;Droid Sans Mono&quot;,&quot;monospace&quot;,monospace,&quot;Droid Sans F=
allback&quot;;font-weight:normal;font-size:14px;line-height:19px;white-spac=
e:pre"><span class=3D"gmail_default" style=3D"font-family:arial,helvetica,s=
ans-serif;font-size:small;color:rgb(0,0,0)"><span style=3D"font-family:mono=
space"><span style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rg=
b(255,255,255)">{</span><br><span style=3D"font-weight:bold;color:rgb(0,0,0=
);background-color:rgb(255,255,255)"> =C2=A0</span><span style=3D"font-weig=
ht:bold;color:rgb(84,84,255);background-color:rgb(255,255,255)">&quot;main&=
quot;</span><span style=3D"font-weight:bold;color:rgb(0,0,0);background-col=
or:rgb(255,255,255)">: </span><span style=3D"font-weight:bold;color:rgb(104=
,104,104);background-color:rgb(255,255,255)">null</span><span style=3D"font=
-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)">,</span><b=
r><span style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255=
,255,255)"> =C2=A0</span><span style=3D"font-weight:bold;color:rgb(84,84,25=
5);background-color:rgb(255,255,255)">&quot;testnet&quot;</span><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)">: =
</span><span style=3D"font-weight:bold;color:rgb(104,104,104);background-co=
lor:rgb(255,255,255)">null</span><span style=3D"font-weight:bold;color:rgb(=
0,0,0);background-color:rgb(255,255,255)">,</span><br><span style=3D"font-w=
eight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=A0</spa=
n><span style=3D"font-weight:bold;color:rgb(84,84,255);background-color:rgb=
(255,255,255)">&quot;signet&quot;</span><span style=3D"font-weight:bold;col=
or:rgb(0,0,0);background-color:rgb(255,255,255)">: {</span><br><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =
=C2=A0=C2=A0=C2=A0</span><span style=3D"font-weight:bold;color:rgb(84,84,25=
5);background-color:rgb(255,255,255)">&quot;active&quot;</span><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)">: =
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">t=
rue</span><span style=3D"font-weight:bold;color:rgb(0,0,0);background-color=
:rgb(255,255,255)">,</span><br><span style=3D"font-weight:bold;color:rgb(0,=
0,0);background-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0</span><span sty=
le=3D"font-weight:bold;color:rgb(84,84,255);background-color:rgb(255,255,25=
5)">&quot;api_node&quot;</span><span style=3D"font-weight:bold;color:rgb(0,=
0,0);background-color:rgb(255,255,255)">: {</span><br><span style=3D"font-w=
eight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-weight:bold;color:rgb(84,84=
,255);background-color:rgb(255,255,255)">&quot;url&quot;</span><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)">: =
</span><span style=3D"color:rgb(24,178,24);background-color:rgb(255,255,255=
)">&quot;<a href=3D"http://0.0.0.0:18332">http://0.0.0.0:18332</a>&quot;</s=
pan><span style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(2=
55,255,255)">,</span><br><span style=3D"font-weight:bold;color:rgb(0,0,0);b=
ackground-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><sp=
an style=3D"font-weight:bold;color:rgb(84,84,255);background-color:rgb(255,=
255,255)">&quot;auth&quot;</span><span style=3D"font-weight:bold;color:rgb(=
0,0,0);background-color:rgb(255,255,255)">: {</span><br><span style=3D"font=
-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-weight:bold;col=
or:rgb(84,84,255);background-color:rgb(255,255,255)">&quot;UserPass&quot;</=
span><span style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(=
255,255,255)">: [</span><br></span></span></div><div style=3D"color:rgb(0,0=
,0);background-color:rgb(255,255,254);font-family:&quot;Droid Sans Mono&quo=
t;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&quot;;font-wei=
ght:normal;font-size:14px;line-height:19px;white-space:pre"><span class=3D"=
gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-size:sm=
all;color:rgb(0,0,0)"><span style=3D"font-family:monospace"><span style=3D"=
font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"co=
lor:rgb(24,178,24);background-color:rgb(255,255,255)">&quot;YOUR RPC NAME&q=
uot;</span><span style=3D"font-weight:bold;color:rgb(0,0,0);background-colo=
r:rgb(255,255,255)">,</span><br></span></span></div><div style=3D"color:rgb=
(0,0,0);background-color:rgb(255,255,254);font-family:&quot;Droid Sans Mono=
&quot;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&quot;;font=
-weight:normal;font-size:14px;line-height:19px;white-space:pre"><span class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small;color:rgb(0,0,0)"><span style=3D"font-family:monospace"><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D=
"color:rgb(24,178,24);background-color:rgb(255,255,255)">&quot;YOUR PASSWOR=
D HERE&quot;</span><br><span style=3D"font-weight:bold;color:rgb(0,0,0);bac=
kground-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
]</span><br><span style=3D"font-weight:bold;color:rgb(0,0,0);background-col=
or:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0}</span><br><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =
=C2=A0=C2=A0=C2=A0},</span><br><span style=3D"font-weight:bold;color:rgb(0,=
0,0);background-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0</span><span sty=
le=3D"font-weight:bold;color:rgb(84,84,255);background-color:rgb(255,255,25=
5)">&quot;emulator_nodes&quot;</span><span style=3D"font-weight:bold;color:=
rgb(0,0,0);background-color:rgb(255,255,255)">: {</span><br><span style=3D"=
font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-weight:bold;color:rgb=
(84,84,255);background-color:rgb(255,255,255)">&quot;enabled&quot;</span><s=
pan style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255=
,255)">: </span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,25=
5,255)">false</span><span style=3D"font-weight:bold;color:rgb(0,0,0);backgr=
ound-color:rgb(255,255,255)">,</span><br><span style=3D"font-weight:bold;co=
lor:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0</span><span style=3D"font-weight:bold;color:rgb(84,84,255);backgroun=
d-color:rgb(255,255,255)">&quot;emulators&quot;</span><span style=3D"font-w=
eight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)">: [</span><s=
pan style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255=
,255)">],</span><br><span style=3D"font-weight:bold;color:rgb(0,0,0);backgr=
ound-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span st=
yle=3D"font-weight:bold;color:rgb(84,84,255);background-color:rgb(255,255,2=
55)">&quot;threshold&quot;</span><span style=3D"font-weight:bold;color:rgb(=
0,0,0);background-color:rgb(255,255,255)">: </span><span style=3D"color:rgb=
(0,0,0);background-color:rgb(255,255,255)">1</span><br><span style=3D"font-=
weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=A0=C2=
=A0=C2=A0},</span><br><span style=3D"font-weight:bold;color:rgb(0,0,0);back=
ground-color:rgb(255,255,255)"> =C2=A0=C2=A0=C2=A0</span><span style=3D"fon=
t-weight:bold;color:rgb(84,84,255);background-color:rgb(255,255,255)">&quot=
;plugin_map&quot;</span><span style=3D"font-weight:bold;color:rgb(0,0,0);ba=
ckground-color:rgb(255,255,255)">: {}</span><br><span style=3D"font-weight:=
bold;color:rgb(0,0,0);background-color:rgb(255,255,255)"> =C2=A0},</span><b=
r><span style=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255=
,255,255)"> =C2=A0</span><span style=3D"font-weight:bold;color:rgb(84,84,25=
5);background-color:rgb(255,255,255)">&quot;regtest&quot;</span><span style=
=3D"font-weight:bold;color:rgb(0,0,0);background-color:rgb(255,255,255)">: =
</span><span style=3D"font-weight:bold;color:rgb(104,104,104);background-co=
lor:rgb(255,255,255)">null</span><br><span style=3D"font-weight:bold;color:=
rgb(0,0,0);background-color:rgb(255,255,255)">}</span><br><br></span></span=
></div><div style=3D"color:rgb(0,0,0);background-color:rgb(255,255,254);fon=
t-family:&quot;Droid Sans Mono&quot;,&quot;monospace&quot;,monospace,&quot;=
Droid Sans Fallback&quot;;font-weight:normal;font-size:14px;line-height:19p=
x;white-space:pre"><span class=3D"gmail_default" style=3D"font-family:arial=
,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">8</span>.<span clas=
s=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-si=
ze:small;color:rgb(0,0,0)"> Create a contract template:</span><i><br></i></=
div><div style=3D"color:rgb(0,0,0);background-color:rgb(255,255,254);font-f=
amily:&quot;Droid Sans Mono&quot;,&quot;monospace&quot;,monospace,&quot;Dro=
id Sans Fallback&quot;;font-weight:normal;font-size:14px;line-height:19px;w=
hite-space:pre"><i>cat ARGS.json| <span class=3D"gmail_default" style=3D"fo=
nt-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">./ta=
rget/release/</span>sapio-cli contract create =C2=A0--file plugin-example/t=
arget/wasm32-unknown-unknown/debug/sapio_wasm_plugin_example.wasm =C2=A0| j=
q &gt; UNBOUND.json</i><span class=3D"gmail_default" style=3D"font-family:a=
rial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><span style=3D"=
font-family:monospace"><br></span></span></div><div style=3D"color:rgb(0,0,=
0);background-color:rgb(255,255,254);font-family:&quot;Droid Sans Mono&quot=
;,&quot;monospace&quot;,monospace,&quot;Droid Sans Fallback&quot;;font-weig=
ht:normal;font-size:14px;line-height:19px;white-space:pre"><font size=3D"2"=
><span style=3D"font-family:arial,sans-serif">9. Get a proposed funding &am=
p; binding of the template to that utxo:</span></font><i><br></i></div><div=
 style=3D"color:rgb(0,0,0);background-color:rgb(255,255,254);font-family:&q=
uot;Droid Sans Mono&quot;,&quot;monospace&quot;,monospace,&quot;Droid Sans =
Fallback&quot;;font-weight:normal;font-size:14px;line-height:19px;white-spa=
ce:pre"><i><br></i></div><div style=3D"color:rgb(0,0,0);background-color:rg=
b(255,255,254);font-family:&quot;Droid Sans Mono&quot;,&quot;monospace&quot=
;,monospace,&quot;Droid Sans Fallback&quot;;font-weight:normal;font-size:14=
px;line-height:19px;white-space:pre"><span class=3D"gmail_default" style=3D=
"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><=
/span><i>cat UNBOUND.json| ./target/release/sapio-cli contract bind | jq &g=
t; BOUND.json</i><span class=3D"gmail_default" style=3D"font-family:arial,h=
elvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><span style=3D"font-f=
amily:monospace"><span style=3D"font-family:monospace"><br></span></span></=
span></div>10. Finalize the funding<span class=3D"gmail_default" style=3D"f=
ont-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"> tx=
</span>:<br><br><span class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small;color:rgb(0,0,0)"></span><i>cat BOUND.js=
on | jq &quot;.program[\&quot;funding\&quot;].txs[0].linked_psbt.psbt&quot;=
 | xargs echo | xargs -I% <span class=3D"gmail_default" style=3D"font-famil=
y:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">./bitcoin-cl=
i -signet</span><span class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small;color:rgb(0,0,0)"> </span>utxoupdatepsbt=
 % | =C2=A0xargs -I% <span class=3D"gmail_default" style=3D"font-family:ari=
al,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">./bitcoin-cli -si=
gnet</span><span class=3D"gmail_default" style=3D"font-family:arial,helveti=
ca,sans-serif;font-size:small;color:rgb(0,0,0)"> </span>walletprocesspsbt %=
 | jq &quot;.psbt&quot; | xargs -I% <span class=3D"gmail_default" style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">./=
bitcoin-cli -signet</span> finalizepsbt % | jq &quot;.hex&quot;</i><br><br>=
<span class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-ser=
if;font-size:small;color:rgb(0,0,0)">11. </span>Review the hex transaction/=
make sure you want this contract...<span class=3D"gmail_default" style=3D"f=
ont-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"> </=
span>and then send to network:<br><br><i>./bitcoin-cli -signet sendrawtrans=
action 020000000001015e69106b2eb00d668d945101ed3c0102cf35aba738ee6520fc2603=
bd60a872ea0000000000feffffff02e8c5eb0b000000002200203d00d88fd664cbfaf8a1296=
d3f717625595d2980976bbf4feeb<br>10ab090180ccdcb3faefd020000002251208f7e5e50=
ce7f65debe036a90641a7e4d719d65d621426fd6589e5ec1c5969e200140a348a8711cb389b=
db3cc0b1050961e588bb42cb5eb429dd0a415b7b9c712748fa4d5d<br>fe2bb9c4dc48b31a7=
e3d1a66d9104bbb5936698f8ef8a92ac27a650663500000000</i><br><br><br></div><di=
v class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;f=
ont-size:small;color:#000000">12. Send the other transactions:<i><br></i></=
div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-=
serif;font-size:small;color:#000000"><i><br></i></div><div class=3D"gmail_d=
efault" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;col=
or:#000000"><i>cat BOUND.json| jq .program | jq &quot;.[].txs[0].linked_psb=
t.psbt&quot; | xargs -I% ./target/release/sapio-cli psbt finalize --psbt % =
=C2=A0| xargs -I% ./bitcoin-cli -signet sendrawtransaction %</i><br><br><br=
></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sa=
ns-serif;font-size:small;color:#000000"><br></div><div class=3D"gmail_defau=
lt" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:#=
000000">Now what?</div><div class=3D"gmail_default" style=3D"font-family:ar=
ial,helvetica,sans-serif;font-size:small;color:#000000"><br></div><div clas=
s=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-si=
ze:small;color:#000000">- Maybe load up the Sapio Studio and try it through=
 the GUI?</div><div class=3D"gmail_default" style=3D"font-family:arial,helv=
etica,sans-serif;font-size:small;color:#000000">- Modify the congestion con=
trol tree code and recompile it?</div><div class=3D"gmail_default" style=3D=
"font-family:arial,helvetica,sans-serif;font-size:small;color:#000000">- Ho=
w big of a tree can you make (I did about 6000 last night)?</div><div class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small;color:#000000">- Try out other contracts?<br></div><div><div><div d=
ir=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><di=
v dir=3D"ltr">--<br><a href=3D"https://twitter.com/JeremyRubin" target=3D"_=
blank">@JeremyRubin</a><br></div></div></div><br></div></div></div><br><div=
 class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Feb 21=
, 2022 at 7:36 PM Jeremy Rubin &lt;<a href=3D"mailto:jeremy.l.rubin@gmail.c=
om">jeremy.l.rubin@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_default" s=
tyle=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,=
0,0)">Hi All,</div><div class=3D"gmail_default" style=3D"font-family:arial,=
helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small;color:rgb(0,0,0)">Apologies for the late posting of the agenda. The=
 4th CTV meeting will be held tomorrow at 12:00 PT in ##ctv-bip-review in L=
ibera.chat.</div><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class=
=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small;color:rgb(0,0,0)">Tomorrow the conversation will be slightly more t=
utorial focused. If you have time in advance=C2=A0of the meeting, it might =
be good to do some of this in advance.</div><div class=3D"gmail_default" st=
yle=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0=
,0)"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,helv=
etica,sans-serif;font-size:small;color:rgb(0,0,0)"><div class=3D"gmail_defa=
ult">1) Discussion: What is the goal of Signet? (20 minutes)</div><div clas=
s=3D"gmail_default">=C2=A0 =C2=A0 - Do we have a &quot;decision function&qu=
ot; of observations from a test network?</div><div class=3D"gmail_default">=
=C2=A0 =C2=A0 - What applications should be prototyped/fleshed out?</div><d=
iv class=3D"gmail_default">=C2=A0 =C2=A0 - What level of fleshed out matter=
s?</div><div class=3D"gmail_default">=C2=A0 =C2=A0 - Should we add other ex=
periments in the mix on this net, like APO/Sponsors?</div><div class=3D"gma=
il_default">=C2=A0 =C2=A0 - Should we get e.g. lightning working on this si=
gnet?</div></div><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small;color:rgb(0,0,0)">2) Connecting to CTV S=
ignet Tutorial (10 mins)</div><div class=3D"gmail_default" style=3D"font-fa=
mily:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div=
><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-ser=
if;font-size:small;color:rgb(0,0,0)">We&#39;ll make sure everyone who wants=
 to be on it is on it &amp; debug any issues.</div><div class=3D"gmail_defa=
ult" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:=
rgb(0,0,0)"><br></div><div class=3D"gmail_default" style=3D"font-family:ari=
al,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><b>Ahead of Meeti=
ng: Build this branch=C2=A0<a href=3D"https://github.com/JeremyRubin/bitcoi=
n/tree/checktemplateverify-signet-23.0-alpha" target=3D"_blank">https://git=
hub.com/JeremyRubin/bitcoin/tree/checktemplateverify-signet-23.0-alpha</a><=
/b></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,=
sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class=3D"gmail_=
default" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;co=
lor:rgb(0,0,0)">Connect to:</div><div class=3D"gmail_default" style=3D"font=
-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">```<br=
>[signet]<br>signetchallenge=3D512102946e8ba8eca597194e7ed90377d9bbebc5d17a=
9609ab3e35e706612ee882759351ae<br>addnode=3D50.18.75.225</div><div class=3D=
"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-size:s=
mall;color:rgb(0,0,0)">```<br></div><div class=3D"gmail_default" style=3D"f=
ont-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br=
></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sa=
ns-serif;font-size:small;color:rgb(0,0,0)">3) Receiving=C2=A0Coins / Sendin=
g Coins (5 mins)</div><div class=3D"gmail_default" style=3D"font-family:ari=
al,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><div class=3D"gma=
il_default">There&#39;s now a faucet for this signet:=C2=A0<a href=3D"https=
://faucet.ctvsignet.com" target=3D"_blank">https://faucet.ctvsignet.com</a>=
<br></div>And also an explorer:=C2=A0<a rel=3D"noopener noreferrer" href=3D=
"https://explorer.ctvsignet.com/" style=3D"font-family:arial;font-size:14px=
;line-height:normal" target=3D"_blank">https://explorer.ctvsignet.com</a><b=
r></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,s=
ans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class=3D"gmail_d=
efault" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;col=
or:rgb(0,0,0)">4) Sapio tutorial (25 minutes)</div><div class=3D"gmail_defa=
ult" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:=
rgb(0,0,0)"><br></div><div class=3D"gmail_default" style=3D"font-family:ari=
al,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><b>Ahead of meeti=
ng, if you have time: skim <a href=3D"https://learn.sapio-lang.org" target=
=3D"_blank">https://learn.sapio-lang.org</a> &amp; download/build the sapio=
 cli &amp; plugin examples</b></div><div class=3D"gmail_default" style=3D"f=
ont-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br=
></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sa=
ns-serif;font-size:small;color:rgb(0,0,0)">We&#39;ll try to get everyone bu=
ilding and sending a basic application (e.g. congestion control tree or vau=
lt) on the signet (instructions to be posted before meeting).</div><div cla=
ss=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-s=
ize:small;color:rgb(0,0,0)"><br></div><div class=3D"gmail_default" style=3D=
"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">W=
e won&#39;t use Sapio Studio, just the Sapio=C2=A0CLI.=C2=A0</div><div clas=
s=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-si=
ze:small;color:rgb(0,0,0)"><br></div><div class=3D"gmail_default" style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">5)=
 Sapio Q&amp;A (30 mins)</div><div class=3D"gmail_default" style=3D"font-fa=
mily:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div=
><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-ser=
if;font-size:small;color:rgb(0,0,0)">After some experience playing with Sap=
io, more general discussion about the project and what it may accomplish</d=
iv><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-s=
erif;font-size:small;color:rgb(0,0,0)"><br></div><div class=3D"gmail_defaul=
t" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rg=
b(0,0,0)">6) General Discussion (30 minutes)</div><div class=3D"gmail_defau=
lt" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:r=
gb(0,0,0)"><br></div><div class=3D"gmail_default" style=3D"font-family:aria=
l,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div cla=
ss=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-s=
ize:small;color:rgb(0,0,0)">Best,</div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)=
"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,helveti=
ca,sans-serif;font-size:small;color:rgb(0,0,0)">Jeremy</div><br clear=3D"al=
l"><div><div dir=3D"ltr"><div dir=3D"ltr">--<br><a href=3D"https://twitter.=
com/JeremyRubin" target=3D"_blank">@JeremyRubin</a><br></div></div></div></=
div>
</blockquote></div>

--000000000000fda52e05d89f312f--