{
  "founder": "achow101",
  "channel": "#bitcoin-core-dev",
  "network": "libera",
  "id": "7d8e3fc4a9784cf1b007382d605baedf",
  "name": "#bitcoin-core-dev",
  "chair": "achow101",
  "chairs": [
    "achow101"
  ],
  "nicks": {
    "achow101": 22,
    "core-meetingbot`": 4,
    "michaelfolkson": 38,
    "darosior": 11,
    "sipa": 55,
    "laanwj": 1,
    "jonatack": 1,
    "Murch": 1
  },
  "start_time": "2022-01-28T19:00:36+00:00",
  "end_time": "2022-01-28T19:43:10+00:00",
  "active": false,
  "original_topic": "Bitcoin Core development discussion and commit log | Feel free to watch, but please take commentary and usage questions to #bitcoin | Channel logs: http://www.erisian.com.au/bitcoin-core-dev/, http://gnusha.org/bitcoin-core-dev/ | Meeting topics http://gnusha.org/bitcoin-core-dev/proposedmeetingtopics.txt / http://gnusha.org/bitcoin-core-dev/proposedwalletmeetingtopics.txt",
  "current_topic": "Taproot support in the wallet (open PRs, latest thinking) (michaelfolkson)",
  "messages": [
    {
      "id": "3fb6d788e0fc4ae2a7334e4507486e35",
      "sender": "achow101",
      "payload": "#startmeeting",
      "action": false,
      "timestamp": "2022-01-28T19:00:36+00:00"
    },
    {
      "id": "e8e8fb6e8355480bb6338426590be0db",
      "sender": "core-meetingbot`",
      "payload": "Meeting started Fri Jan 28 19:00:36 2022 UTC.  The chair is achow101. Information about MeetBot at https://bitcoin.jonasschnelli.ch/ircmeetings.",
      "action": false,
      "timestamp": "2022-01-28T19:00:37+00:00"
    },
    {
      "id": "919510be724343cf8926346420cf42c6",
      "sender": "core-meetingbot`",
      "payload": "Available commands: action commands idea info link nick",
      "action": false,
      "timestamp": "2022-01-28T19:00:37+00:00"
    },
    {
      "id": "a0c1f1167f684d5f8cd4ef3061675332",
      "sender": "achow101",
      "payload": "#bitcoin-core-dev Wallet Meeting: achow101 _aj_ amiti ariard BlueMatt cfields Chris_Stewart_5 darosior digi_james dongcarl elichai2 emilengler fanquake fjahr gleb glozow gmaxwell gwillen hebasto instagibbs jamesob jarolrod jb55 jeremyrubin jl2012 jnewbery jonasschnelli jonatack jtimon kallewoof kanzure kvaciral laanwj larryruane lightlike luke-jr maaku marcofalke meshcollider michagogo moneyball morcos Murch nehan NicolasDorier paveljanik",
      "action": false,
      "timestamp": "2022-01-28T19:00:47+00:00"
    },
    {
      "id": "57b67709d00248d3be5675f8f19c85a9",
      "sender": "achow101",
      "payload": "petertodd phantomcircuit promag provoostenator ryanofsky sdaftuar S3RK sipa vasild",
      "action": false,
      "timestamp": "2022-01-28T19:00:47+00:00"
    },
    {
      "id": "f92cc5de35f043cbaadbc67c30ab1a74",
      "sender": "michaelfolkson",
      "payload": "hi",
      "action": false,
      "timestamp": "2022-01-28T19:01:04+00:00"
    },
    {
      "id": "a7d1a2e32108492c9a0c115956d97531",
      "sender": "darosior",
      "payload": "hi",
      "action": false,
      "timestamp": "2022-01-28T19:01:15+00:00"
    },
    {
      "id": "8e50104266264623b86771a6ea9b6cef",
      "sender": "achow101",
      "payload": "There's one pre-proposed meeting topic, any others people want to add?",
      "action": false,
      "timestamp": "2022-01-28T19:01:42+00:00"
    },
    {
      "id": "826a036486f14e7891fb16e05fa9d94c",
      "sender": "sipa",
      "payload": "hi",
      "action": false,
      "timestamp": "2022-01-28T19:01:48+00:00"
    },
    {
      "id": "ce805fa9637d474895b374e607a0cee4",
      "sender": "darosior",
      "payload": "Hmm maybe i failed to add mine?",
      "action": false,
      "timestamp": "2022-01-28T19:01:55+00:00"
    },
    {
      "id": "1b26817dd70a419d80e0b6797843f363",
      "sender": "michaelfolkson",
      "payload": "[18:12:49]  <darosior> #proposedwalletmeetingtopic labels for ranged descriptors",
      "action": false,
      "timestamp": "2022-01-28T19:02:12+00:00"
    },
    {
      "id": "2826cdaf13534b2eb75a016820f581be",
      "sender": "achow101",
      "payload": "oops, 2 pre-proposed topics",
      "action": false,
      "timestamp": "2022-01-28T19:02:16+00:00"
    },
    {
      "id": "5f7d742019f945509a210ffc668c717c",
      "sender": "achow101",
      "payload": "#topic labels for ranged descriptors (darosior)",
      "action": false,
      "timestamp": "2022-01-28T19:02:45+00:00"
    },
    {
      "id": "3ab09949ef6947418f4f8eda5da02ed7",
      "sender": "core-meetingbot`",
      "payload": "topic: labels for ranged descriptors (darosior)",
      "action": false,
      "timestamp": "2022-01-28T19:02:45+00:00"
    },
    {
      "id": "20ce4c42d67b4d829842991fabb3693e",
      "sender": "laanwj",
      "payload": "hi",
      "action": false,
      "timestamp": "2022-01-28T19:02:49+00:00"
    },
    {
      "id": "526cc79ec94a45d89fea23a84517c8c8",
      "sender": "darosior",
      "payload": "So as part of the Miniscript work, i tested the branch against my application (which uses Miniscript internally and the descriptor wallet as watchonly to track 2 main descriptors) and discovered that labels are deactivated for range descriptors.",
      "action": false,
      "timestamp": "2022-01-28T19:03:11+00:00"
    },
    {
      "id": "8e48dd646ac64de1ba4341ee9c7c20f5",
      "sender": "darosior",
      "payload": "However labels are pretty useful to differentiate the coins when you have multiple descriptors on the same watchonly wallet (which i think is the intent?). Typically for triage in the `listsinceblock` or `listunspent` results: i think i'm just an instance and they are useful as well.",
      "action": false,
      "timestamp": "2022-01-28T19:03:12+00:00"
    },
    {
      "id": "4156da78a6eb40149fd541dd2d92d1b8",
      "sender": "darosior",
      "payload": "So i wondered what people here thought about enabling the same features to the descriptor level, to not have to add all addresses to the address book in advance (which i guessed is the reason to disable them for range descriptors in the first place?). Or if something else than labels was envisioned to enable the same features.",
      "action": false,
      "timestamp": "2022-01-28T19:03:12+00:00"
    },
    {
      "id": "e549048d709045d8b61887d269873915",
      "sender": "darosior",
      "payload": "s/and they are useful as well/ and they are useful as well to others/",
      "action": false,
      "timestamp": "2022-01-28T19:03:46+00:00"
    },
    {
      "id": "83fb07330ea14618a6d1076888cec7a0",
      "sender": "achow101",
      "payload": "the reason that labels were not implemented originally was because it seemed odd to me that someone would want to assign the same label to all addresses generated by a descriptor",
      "action": false,
      "timestamp": "2022-01-28T19:04:29+00:00"
    },
    {
      "id": "96852ca6cfc243a79b71466d718e9dce",
      "sender": "sipa",
      "payload": "What are you thinking of, something like a label template on the descriptor, with say a %i in it that gets replaced by the index?",
      "action": false,
      "timestamp": "2022-01-28T19:04:32+00:00"
    },
    {
      "id": "8154171a5db5492d950e7ed456956cf7",
      "sender": "sipa",
      "payload": "Or just the same label for everything?",
      "action": false,
      "timestamp": "2022-01-28T19:04:38+00:00"
    },
    {
      "id": "4b5c546bbc2648bead31577e52e40692",
      "sender": "achow101",
      "payload": "and also I think there was some complexity with applying labels to addresses that did not exist yet",
      "action": false,
      "timestamp": "2022-01-28T19:04:57+00:00"
    },
    {
      "id": "4fa9970aa3104e6a829c65b28ca5cede",
      "sender": "darosior",
      "payload": "The same label for any address derived for this descriptor. Something to say \"this received coin is for this descriptor\"",
      "action": false,
      "timestamp": "2022-01-28T19:05:18+00:00"
    },
    {
      "id": "ce43da369d324dfb8ea6187852189b3f",
      "sender": "achow101",
      "payload": "if you think it's something people will use, go for it",
      "action": false,
      "timestamp": "2022-01-28T19:06:40+00:00"
    },
    {
      "id": "0fe4fb2ace9e4e54a13f2c1a2b741132",
      "sender": "michaelfolkson",
      "payload": "Sorry for the ELI5 but by label do you mean the subscripts of Miniscript?",
      "action": false,
      "timestamp": "2022-01-28T19:06:54+00:00"
    },
    {
      "id": "1f3ff31a05034428afec82d4129d0c69",
      "sender": "darosior",
      "payload": "No i mean a metadata to identify a descriptor",
      "action": false,
      "timestamp": "2022-01-28T19:07:07+00:00"
    },
    {
      "id": "d3e1b2472ea24bd798c365bded02159f",
      "sender": "darosior",
      "payload": "Could just add the descriptor itself to the result, i guess, although i'd to think how a client of the API would manage that",
      "action": false,
      "timestamp": "2022-01-28T19:07:28+00:00"
    },
    {
      "id": "faadede5c9704bb5bb973b0b64b4bdf8",
      "sender": "sipa",
      "payload": "No, label, as in the setlabel RPC.",
      "action": false,
      "timestamp": "2022-01-28T19:07:41+00:00"
    },
    {
      "id": "eea64c63b9b0489b9f6339ae575dd435",
      "sender": "sipa",
      "payload": "and getaddressesbylabel",
      "action": false,
      "timestamp": "2022-01-28T19:07:47+00:00"
    },
    {
      "id": "320832b35e35475a8fe9dd22663b5f5a",
      "sender": "michaelfolkson",
      "payload": "Oh ok",
      "action": false,
      "timestamp": "2022-01-28T19:07:48+00:00"
    },
    {
      "id": "1e51f8fb7f074544b7ec4d80bd826414",
      "sender": "darosior",
      "payload": "Ok, thanks. It was mainly to know if there were prior discussions on this topic. Guess i'm done :)",
      "action": false,
      "timestamp": "2022-01-28T19:08:21+00:00"
    },
    {
      "id": "748a5502688548b0b5558f3909675444",
      "sender": "achow101",
      "payload": "I'm not sure I understand the use case, but I am ambivalent on this",
      "action": false,
      "timestamp": "2022-01-28T19:08:38+00:00"
    },
    {
      "id": "2d44602770cf4a33abe5e28d9c196870",
      "sender": "achow101",
      "payload": "#topic Taproot support in the wallet (open PRs, latest thinking) (michaelfolkson)",
      "action": false,
      "timestamp": "2022-01-28T19:09:01+00:00"
    },
    {
      "id": "f5cc68a1e4064635b574cb3abeb48f8e",
      "sender": "core-meetingbot`",
      "payload": "topic: Taproot support in the wallet (open PRs, latest thinking) (michaelfolkson)",
      "action": false,
      "timestamp": "2022-01-28T19:09:02+00:00"
    },
    {
      "id": "53ebb5dc67c7489588952e69c9fefb85",
      "sender": "sipa",
      "payload": "Likewise.",
      "action": false,
      "timestamp": "2022-01-28T19:09:03+00:00"
    },
    {
      "id": "99326b420be543b2bfc948cf19b89949",
      "sender": "darosior",
      "payload": "I can describe the motivation better in an issue, if that's helpful",
      "action": false,
      "timestamp": "2022-01-28T19:09:05+00:00"
    },
    {
      "id": "06ba5492392d4c1299cf5eabfb7e0c04",
      "sender": "achow101",
      "payload": "darosior: please do",
      "action": false,
      "timestamp": "2022-01-28T19:09:20+00:00"
    },
    {
      "id": "0406892c98fe40ddad4e042fd600bd8b",
      "sender": "michaelfolkson",
      "payload": "Ok.. so was just looking over the Taproot related PRs. #22558 is marked as high prio",
      "action": false,
      "timestamp": "2022-01-28T19:09:49+00:00"
    },
    {
      "id": "cdcc1d38e6184c13a8caf8777508d1a3",
      "sender": "michaelfolkson",
      "payload": "This should be tested in tandem with #24043?",
      "action": false,
      "timestamp": "2022-01-28T19:10:44+00:00"
    },
    {
      "id": "8519057b82954e908710a13ca609b215",
      "sender": "achow101",
      "payload": "they are orthogonal",
      "action": false,
      "timestamp": "2022-01-28T19:11:05+00:00"
    },
    {
      "id": "93ae89a65c0846d8abfe50fabfb7e251",
      "sender": "michaelfolkson",
      "payload": "To do a Taproot multisig you need the Taproot multisig descriptor right?",
      "action": false,
      "timestamp": "2022-01-28T19:11:06+00:00"
    },
    {
      "id": "f275787456884b5cb06cf6caaf92b6c7",
      "sender": "michaelfolkson",
      "payload": "And that is only introduced in #24043",
      "action": false,
      "timestamp": "2022-01-28T19:11:26+00:00"
    },
    {
      "id": "aa137d43f5b14592af6591c450b910cc",
      "sender": "achow101",
      "payload": "#22558 is just for the basic taproot fields to actually be able to do any kind of watchonly taproot spend",
      "action": false,
      "timestamp": "2022-01-28T19:11:43+00:00"
    },
    {
      "id": "0b5335d241a249309485e669858e1d8c",
      "sender": "michaelfolkson",
      "payload": "But to be passing around Taproot multisig PSBTs you need to have setup a Taproot multisig.... right?",
      "action": false,
      "timestamp": "2022-01-28T19:12:14+00:00"
    },
    {
      "id": "b3060402b20e479abdd678fc71b529ea",
      "sender": "sipa",
      "payload": "the multisig part is in 24043",
      "action": false,
      "timestamp": "2022-01-28T19:12:31+00:00"
    },
    {
      "id": "d1c88c7fd7c144188849bbab75f335b9",
      "sender": "achow101",
      "payload": "psbt is for more than just multisigs",
      "action": false,
      "timestamp": "2022-01-28T19:12:31+00:00"
    },
    {
      "id": "70373f7d71ff47c9b49fd15f486485a3",
      "sender": "sipa",
      "payload": "the taproot psbt part is in 22558",
      "action": false,
      "timestamp": "2022-01-28T19:12:38+00:00"
    },
    {
      "id": "46558b477ed740cebcc64d7bed85c29d",
      "sender": "sipa",
      "payload": "if you want taproot multisig psbt, then you indeed need both",
      "action": false,
      "timestamp": "2022-01-28T19:12:46+00:00"
    },
    {
      "id": "831cdd3516b44c2eabd3f1611dcb5cd9",
      "sender": "achow101",
      "payload": "#22558 is needed to work with HWI for example",
      "action": false,
      "timestamp": "2022-01-28T19:12:47+00:00"
    },
    {
      "id": "53c9a2b324404be8a60c69392377c077",
      "sender": "achow101",
      "payload": "just to do a single key taproot spend",
      "action": false,
      "timestamp": "2022-01-28T19:12:55+00:00"
    },
    {
      "id": "452db598aa4543d59c64502d797819b7",
      "sender": "michaelfolkson",
      "payload": "Ah ok. So to test #24043 you should be doing a single key taproot spend",
      "action": false,
      "timestamp": "2022-01-28T19:13:40+00:00"
    },
    {
      "id": "54e0b910711a4d1d9cfc232662d20db8",
      "sender": "michaelfolkson",
      "payload": "And then to test Taproot multisig wait for #24043 or test in tandem with #24043",
      "action": false,
      "timestamp": "2022-01-28T19:14:28+00:00"
    },
    {
      "id": "2b50ed609a5e4708946ef9142ac4dfb4",
      "sender": "achow101",
      "payload": "too many 24043's in that sentence",
      "action": false,
      "timestamp": "2022-01-28T19:14:40+00:00"
    },
    {
      "id": "d68521fa3a72488999ea71af6bbd7088",
      "sender": "jonatack",
      "payload": "hi",
      "action": false,
      "timestamp": "2022-01-28T19:14:51+00:00"
    },
    {
      "id": "36017747fe9a474ba4b14cbc5ec83cfe",
      "sender": "michaelfolkson",
      "payload": "I guess what I'm saying is to get #22558 merged test with a single key Taproot spend",
      "action": false,
      "timestamp": "2022-01-28T19:15:59+00:00"
    },
    {
      "id": "b26c78b51d544eeeae75e30160340af7",
      "sender": "michaelfolkson",
      "payload": "The alternative would be to make both #22558 and #24043 high prio",
      "action": false,
      "timestamp": "2022-01-28T19:16:44+00:00"
    },
    {
      "id": "b939ce5bce9b4b928bade4c4ccd26bb3",
      "sender": "michaelfolkson",
      "payload": "Ok that makes sense (I think)",
      "action": false,
      "timestamp": "2022-01-28T19:17:13+00:00"
    },
    {
      "id": "f9b209961ad248c98f35b7b97a3ced58",
      "sender": "achow101",
      "payload": "yes, 22558 can be tested with single key spends",
      "action": false,
      "timestamp": "2022-01-28T19:17:16+00:00"
    },
    {
      "id": "a74b85d9b92048c2a849d8569c7e6663",
      "sender": "michaelfolkson",
      "payload": "So then moving to #24043",
      "action": false,
      "timestamp": "2022-01-28T19:17:56+00:00"
    },
    {
      "id": "013262adb2d5496d819d10cd9bebf44e",
      "sender": "michaelfolkson",
      "payload": "This seems a stopgap to me (which is fine, just testing my understanding)",
      "action": false,
      "timestamp": "2022-01-28T19:18:38+00:00"
    },
    {
      "id": "1afb04c9a45b487a923767c4a36e8f6e",
      "sender": "michaelfolkson",
      "payload": "But presumably longer term a Taproot enabled Miniscript would tell you which 2-of-3 arrangement is most efficient",
      "action": false,
      "timestamp": "2022-01-28T19:19:17+00:00"
    },
    {
      "id": "6b26ef89d9634c1c982f73b76d36b5b2",
      "sender": "sipa",
      "payload": "No, that information is implied by miniscript.",
      "action": false,
      "timestamp": "2022-01-28T19:19:45+00:00"
    },
    {
      "id": "639ee76ca88c437a88ddf48faf490ac8",
      "sender": "sipa",
      "payload": "If you have a miniscript/descriptor, the script is already decided.",
      "action": false,
      "timestamp": "2022-01-28T19:20:03+00:00"
    },
    {
      "id": "25cd34ebbcef45338dc4824e30681442",
      "sender": "sipa",
      "payload": "Which one is most efficient is trivial; the question is which one is applicable.",
      "action": false,
      "timestamp": "2022-01-28T19:20:23+00:00"
    },
    {
      "id": "686710d541ab41c3b850e71cd6f1b3fe",
      "sender": "sipa",
      "payload": "Because using e.g. FROST threshold key as internal taproot key will always be the most efficient possible for any kind of multisig.",
      "action": false,
      "timestamp": "2022-01-28T19:20:50+00:00"
    },
    {
      "id": "6642221cde644500bbea019d54ba0985",
      "sender": "michaelfolkson",
      "payload": "So when you say \"later replaced with Miniscript based implementation\" what are you referring to?",
      "action": false,
      "timestamp": "2022-01-28T19:20:56+00:00"
    },
    {
      "id": "1f58d56cdeef4947a0b46e6289fd704c",
      "sender": "sipa",
      "payload": "That's just an implementation aspect, not something observable.",
      "action": false,
      "timestamp": "2022-01-28T19:21:48+00:00"
    },
    {
      "id": "f59c9b4ac1d94a27936a16530f0c6ecc",
      "sender": "michaelfolkson",
      "payload": "I see as a descriptor as a one to one mapping with script. But Miniscript is a one to many mapping to script depending on the subscripts",
      "action": false,
      "timestamp": "2022-01-28T19:21:50+00:00"
    },
    {
      "id": "65bad04842344a3185f0c5adf41d0571",
      "sender": "sipa",
      "payload": "What are subscripts?",
      "action": false,
      "timestamp": "2022-01-28T19:22:04+00:00"
    },
    {
      "id": "241d4408b3e24215b2e908b1ae80cd87",
      "sender": "michaelfolkson",
      "payload": "Like the _a etc",
      "action": false,
      "timestamp": "2022-01-28T19:22:17+00:00"
    },
    {
      "id": "3e99487314094f5eb4f88f7f388e9144",
      "sender": "sipa",
      "payload": "No, miniscript is a 1-to-1 mapping with (a subset of) script.",
      "action": false,
      "timestamp": "2022-01-28T19:22:21+00:00"
    },
    {
      "id": "69b157a4cf7d43b48366339dff61336a",
      "sender": "michaelfolkson",
      "payload": "Sorry shouldn't say sub*script*, makes things complicated",
      "action": false,
      "timestamp": "2022-01-28T19:22:35+00:00"
    },
    {
      "id": "14d966b16c874732b02f0bdb12e11722",
      "sender": "sipa",
      "payload": "The functions in miniscript (e.g. \"multi_a\", \"and_v\", ...) we call \"fragments\". if you're looking for terminology.",
      "action": false,
      "timestamp": "2022-01-28T19:23:01+00:00"
    },
    {
      "id": "1c9c5a28770d4e89afaa92c95f59884e",
      "sender": "sipa",
      "payload": "Let me try to explain what that sentence was about, unless someone has something else to discuss?",
      "action": false,
      "timestamp": "2022-01-28T19:23:42+00:00"
    },
    {
      "id": "51ed828789ea4909969b29224078a588",
      "sender": "sipa",
      "payload": "achow101?",
      "action": false,
      "timestamp": "2022-01-28T19:24:34+00:00"
    },
    {
      "id": "1728940cea1f45599c16b93d088844ba",
      "sender": "michaelfolkson",
      "payload": "There aren't any other topics",
      "action": false,
      "timestamp": "2022-01-28T19:24:43+00:00"
    },
    {
      "id": "eb0d47a45cc74ba590fd9907ea2c749b",
      "sender": "achow101",
      "payload": "I don't have any topics",
      "action": false,
      "timestamp": "2022-01-28T19:25:01+00:00"
    },
    {
      "id": "19c95280bff74e6d8a57db041f514f26",
      "sender": "sipa",
      "payload": "Ok, so, currently the bitcoin core codebase doesn't have miniscript implemented.",
      "action": false,
      "timestamp": "2022-01-28T19:25:19+00:00"
    },
    {
      "id": "fee6a33951244bc19b1160f58dd1c3b1",
      "sender": "sipa",
      "payload": "Miniscript covers a bunch of different things, but it at least is sort of an extension of descriptors, as well as generic signing support for miniscript-compatible scripts, and a few other things.",
      "action": false,
      "timestamp": "2022-01-28T19:25:56+00:00"
    },
    {
      "id": "ef6cb138ab764685af47bcfa256f3b8a",
      "sender": "sipa",
      "payload": "In the long term, with the miniscript codebase integrated into bitcoin core, a significant part of the logic around descriptors and signing can be handled by miniscript, which does lots of things generically.",
      "action": false,
      "timestamp": "2022-01-28T19:26:40+00:00"
    },
    {
      "id": "02a15d7b134b474fa67b33864a6aeb17",
      "sender": "michaelfolkson",
      "payload": "I'm thinking eventually you could almost ditch the term \"descriptors\" entirely. Everything would be Miniscript",
      "action": false,
      "timestamp": "2022-01-28T19:26:56+00:00"
    },
    {
      "id": "3084626484f7458bb622d68e732926a1",
      "sender": "sipa",
      "payload": "I very strongly hope it's the other way around.",
      "action": false,
      "timestamp": "2022-01-28T19:27:17+00:00"
    },
    {
      "id": "42d2e33999944e71a19581a1a9011c2e",
      "sender": "sipa",
      "payload": "Miniscript is the name of research project, it's not something \"visible\".",
      "action": false,
      "timestamp": "2022-01-28T19:27:24+00:00"
    },
    {
      "id": "b2372d091f8c45799174ad4768f58a90",
      "sender": "sipa",
      "payload": "The part that is visible are what it enables in descriptors.",
      "action": false,
      "timestamp": "2022-01-28T19:27:39+00:00"
    },
    {
      "id": "4ddca1d809d84d2eb68d32c4659d9239",
      "sender": "michaelfolkson",
      "payload": "Ok whatever, but it would all be one thing under one name",
      "action": false,
      "timestamp": "2022-01-28T19:27:47+00:00"
    },
    {
      "id": "f3fec417b4aa435fa0d3ddfbaa20647b",
      "sender": "sipa",
      "payload": "Definitely.",
      "action": false,
      "timestamp": "2022-01-28T19:27:54+00:00"
    },
    {
      "id": "aeae8b91df3a43f0844406b497364c0c",
      "sender": "michaelfolkson",
      "payload": "So this new multi_a descriptor would eventually be ditched right?",
      "action": false,
      "timestamp": "2022-01-28T19:28:34+00:00"
    },
    {
      "id": "a84df9a1474448e993cb8809a566d8fc",
      "sender": "sipa",
      "payload": "No?",
      "action": false,
      "timestamp": "2022-01-28T19:28:49+00:00"
    },
    {
      "id": "4f8f3400b8c04eae92a7de2ab1cdc1bb",
      "sender": "sipa",
      "payload": "In favor of what?",
      "action": false,
      "timestamp": "2022-01-28T19:28:58+00:00"
    },
    {
      "id": "a3f9ec0bca964c96af505e3edd28cd57",
      "sender": "michaelfolkson",
      "payload": "A Miniscript equivalent that would give you the script for n-of-n which is optimal",
      "action": false,
      "timestamp": "2022-01-28T19:29:44+00:00"
    },
    {
      "id": "c4968a7ac5d74049822c2b107c5142b0",
      "sender": "michaelfolkson",
      "payload": "You say in the PR n-of-n isn't optimal, but k-of-n (k<n) is optimal",
      "action": false,
      "timestamp": "2022-01-28T19:30:15+00:00"
    },
    {
      "id": "a2198ba8853a448db96c323d707abd54",
      "sender": "sipa",
      "payload": "Once we add support for a particular descriptor we cannot remove it, as it'd break wallets that have such a descriptor.",
      "action": false,
      "timestamp": "2022-01-28T19:30:18+00:00"
    },
    {
      "id": "a56f810e6ce54bd8bf8200cb27f11522",
      "sender": "sipa",
      "payload": "michaelfolkson: Yes, and that miniscript equivalent would be called multi_a, which behaves exactly the same as the one we have now.",
      "action": false,
      "timestamp": "2022-01-28T19:30:36+00:00"
    },
    {
      "id": "5b09e2bedf4644ee89ea7309336d5ef4",
      "sender": "sipa",
      "payload": "Only it'd be done via the miniscript codebase, instead of a special-case inside the descriptor codebase.",
      "action": false,
      "timestamp": "2022-01-28T19:30:55+00:00"
    },
    {
      "id": "270a589e49e14368846e154f457307b8",
      "sender": "sipa",
      "payload": "But as a user you wouldn't be able to tell the difference.",
      "action": false,
      "timestamp": "2022-01-28T19:31:05+00:00"
    },
    {
      "id": "85da9e66042344c0bf2591dd260d94c4",
      "sender": "michaelfolkson",
      "payload": "There would be multi_a for k-of-n and say a multi_b for n-of-n?",
      "action": false,
      "timestamp": "2022-01-28T19:31:30+00:00"
    },
    {
      "id": "c0dd069fc7194f838812efe4fe713789",
      "sender": "sipa",
      "payload": "For example, yes.",
      "action": false,
      "timestamp": "2022-01-28T19:31:39+00:00"
    },
    {
      "id": "67736067eafb420aacbe6e02ca837bb2",
      "sender": "michaelfolkson",
      "payload": "Ok gotcha",
      "action": false,
      "timestamp": "2022-01-28T19:31:59+00:00"
    },
    {
      "id": "317c717bb1744a9d947722b78d9884e2",
      "sender": "michaelfolkson",
      "payload": "The wallet estimating witness size incorrectly will be addressed in follow up PR?",
      "action": false,
      "timestamp": "2022-01-28T19:32:21+00:00"
    },
    {
      "id": "5c576f00db30447988f02ad519fa5451",
      "sender": "sipa",
      "payload": "Or perhaps and_v(v:pk(A),v:pk(B),...,pk(Z)).",
      "action": false,
      "timestamp": "2022-01-28T19:32:39+00:00"
    },
    {
      "id": "65a418fa6ebe432f96b32ad918d3b0b9",
      "sender": "sipa",
      "payload": "Which is more in line with how miniscript treats the optimal n-of-n script.",
      "action": false,
      "timestamp": "2022-01-28T19:33:04+00:00"
    },
    {
      "id": "210cc69e450a48b6ab8b37470165ae46",
      "sender": "sipa",
      "payload": "Size estimation is a hard question, I don't really have a good solution.",
      "action": false,
      "timestamp": "2022-01-28T19:33:27+00:00"
    },
    {
      "id": "1ae10de5484e4019a8240f6260b2d1a7",
      "sender": "sipa",
      "payload": "You can't in general predict which branch signers will be using.",
      "action": false,
      "timestamp": "2022-01-28T19:33:43+00:00"
    },
    {
      "id": "aede3c3336fe437eb4d53ccdff9ff13a",
      "sender": "sipa",
      "payload": "Perhaps something where you can pass to the fundraw* RPC which keys/signers are available.",
      "action": false,
      "timestamp": "2022-01-28T19:34:04+00:00"
    },
    {
      "id": "904a7af3018c44d593e8ba26e4ce9fd7",
      "sender": "sipa",
      "payload": "I think people have discussed something like that in the past.",
      "action": false,
      "timestamp": "2022-01-28T19:34:13+00:00"
    },
    {
      "id": "4a2caad4124b4910a62bed44359b265e",
      "sender": "michaelfolkson",
      "payload": "Doesn't Miniscript give you the most efficient option (and hence can estimate the witness sizes of the various spending paths)?",
      "action": false,
      "timestamp": "2022-01-28T19:34:29+00:00"
    },
    {
      "id": "9eba18d2f6a448f786832e4f0de897de",
      "sender": "michaelfolkson",
      "payload": "Solved by Miniscript (if we can get that merged)",
      "action": false,
      "timestamp": "2022-01-28T19:34:50+00:00"
    },
    {
      "id": "396b3e632c144bb799772511f56c7d8d",
      "sender": "sipa",
      "payload": "No.",
      "action": false,
      "timestamp": "2022-01-28T19:34:51+00:00"
    },
    {
      "id": "29fc74b6152243cf8d7c9ffea24f60a5",
      "sender": "sipa",
      "payload": "Miniscript is just a way of writing scripts in a different way that allows more generic reasoning over them.",
      "action": false,
      "timestamp": "2022-01-28T19:35:14+00:00"
    },
    {
      "id": "cdc13a2898ff456d8af7f40fb67683e8",
      "sender": "sipa",
      "payload": "You're talking about the miniscript policy compiler, which is one application of the things you can do with miniscript.",
      "action": false,
      "timestamp": "2022-01-28T19:35:30+00:00"
    },
    {
      "id": "801a17e89fda408c8fc1161efa4f52ec",
      "sender": "Murch",
      "payload": "hi",
      "action": false,
      "timestamp": "2022-01-28T19:35:32+00:00"
    },
    {
      "id": "8abfdda0eed648aea567927328ddcd74",
      "sender": "sipa",
      "payload": "But that's not something I'm expecting would be integrated into Bitcoin Core.",
      "action": false,
      "timestamp": "2022-01-28T19:35:47+00:00"
    },
    {
      "id": "6c6024b62d314c9eb3b9f6d8055b12aa",
      "sender": "sipa",
      "payload": "It's not estimating witness sizes that's hard - miniscript can do that, as can our current codebase.",
      "action": false,
      "timestamp": "2022-01-28T19:36:19+00:00"
    },
    {
      "id": "6a8e881c014b46b5a022e6ef276b1c0b",
      "sender": "michaelfolkson",
      "payload": "Ok gotcha. You will be able to do that external to Core but Core won't have access to the compiler (necessarily)",
      "action": false,
      "timestamp": "2022-01-28T19:36:20+00:00"
    },
    {
      "id": "0c62469397a04edea334f682ba2055d1",
      "sender": "sipa",
      "payload": "The difficulty is making the code know which keys are available, so it knows which branch to pick.",
      "action": false,
      "timestamp": "2022-01-28T19:36:31+00:00"
    },
    {
      "id": "a356b242873b4f67a9e990244818975b",
      "sender": "sipa",
      "payload": "That's just a logistic issue.",
      "action": false,
      "timestamp": "2022-01-28T19:36:54+00:00"
    },
    {
      "id": "eba0d452fc784fd4b6db82ed90ad9cc7",
      "sender": "michaelfolkson",
      "payload": "Ok final question (thanks btw). I'm assuming all the build stuff that was done for Minisketch will need to be done for Miniscript?",
      "action": false,
      "timestamp": "2022-01-28T19:37:32+00:00"
    },
    {
      "id": "9d6394cf8de54c6590cc5be6b61846cc",
      "sender": "sipa",
      "payload": "nope, nothing",
      "action": false,
      "timestamp": "2022-01-28T19:38:11+00:00"
    },
    {
      "id": "3ad3bc9439d241db8239e713a0cb4249",
      "sender": "sipa",
      "payload": "because miniscript isn't a separate library",
      "action": false,
      "timestamp": "2022-01-28T19:38:17+00:00"
    },
    {
      "id": "b0b66784b3964d9880302085540e44f4",
      "sender": "sipa",
      "payload": "it'll just be merged into bitcoin core",
      "action": false,
      "timestamp": "2022-01-28T19:38:27+00:00"
    },
    {
      "id": "ad54df8386014de8a3b1c966182a077d",
      "sender": "michaelfolkson",
      "payload": "By separate library you just mean separate repo...?",
      "action": false,
      "timestamp": "2022-01-28T19:39:13+00:00"
    },
    {
      "id": "e778c4be550a449681823620a41eca61",
      "sender": "sipa",
      "payload": "No.",
      "action": false,
      "timestamp": "2022-01-28T19:39:30+00:00"
    },
    {
      "id": "eebfb6e1300b41a6ab513e7d85874de1",
      "sender": "sipa",
      "payload": "Minisketch is a library you build separately, with an API, you can build applications against, ...",
      "action": false,
      "timestamp": "2022-01-28T19:39:49+00:00"
    },
    {
      "id": "1adf21e7cb7f4fe9be47b7d8aab56753",
      "sender": "sipa",
      "payload": "Miniscript is just a bunch of source files which are mostly intended to be integrated into Bitcoin Core.",
      "action": false,
      "timestamp": "2022-01-28T19:40:05+00:00"
    },
    {
      "id": "9819a2e050d44d16b0fc08e186488bc1",
      "sender": "sipa",
      "payload": "The future of the repository after that point is unclear; perhaps we keep it just for the compiler/website.",
      "action": false,
      "timestamp": "2022-01-28T19:40:33+00:00"
    },
    {
      "id": "b7098d2c35a047ac865852628eef29e9",
      "sender": "michaelfolkson",
      "payload": "There will be no Miniscript \"API\" or applications built using the Miniscript \"library\"?",
      "action": false,
      "timestamp": "2022-01-28T19:40:44+00:00"
    },
    {
      "id": "0e8a39e9a0424b68a8a75d52ee7f7658",
      "sender": "sipa",
      "payload": "Perhaps people want to spend time on actually turning the miniscript codebase into a library that's independently usable, ...",
      "action": false,
      "timestamp": "2022-01-28T19:40:44+00:00"
    },
    {
      "id": "ed1cfc63b3ca4588ad872bbbb5fba1bb",
      "sender": "michaelfolkson",
      "payload": "Oh ok you've answered that",
      "action": false,
      "timestamp": "2022-01-28T19:41:00+00:00"
    },
    {
      "id": "e3531789335e4b8ebb3258ed583c043b",
      "sender": "sipa",
      "payload": "That's right. It needs Bitcoin Core right now.",
      "action": false,
      "timestamp": "2022-01-28T19:41:04+00:00"
    },
    {
      "id": "2779723feaf34a268b968ff0a6ff70f5",
      "sender": "michaelfolkson",
      "payload": "Ok thanks, all my questions",
      "action": false,
      "timestamp": "2022-01-28T19:41:18+00:00"
    },
    {
      "id": "afb6f471d1b548a0b172f0ea12877aad",
      "sender": "achow101",
      "payload": "any other topics?",
      "action": false,
      "timestamp": "2022-01-28T19:42:09+00:00"
    },
    {
      "id": "f1962e5993ba4c02b4751be0a452c287",
      "sender": "achow101",
      "payload": "#endmeeting",
      "action": false,
      "timestamp": "2022-01-28T19:43:10+00:00"
    }
  ],
  "events": [
    {
      "event_type": "START_MEETING",
      "message": {
        "id": "3fb6d788e0fc4ae2a7334e4507486e35",
        "sender": "achow101",
        "payload": "#startmeeting",
        "action": false,
        "timestamp": "2022-01-28T19:00:36+00:00"
      },
      "operand": null,
      "id": "3fb6d788e0fc4ae2a7334e4507486e35",
      "timestamp": "2022-01-28T19:00:36+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "5f7d742019f945509a210ffc668c717c",
        "sender": "achow101",
        "payload": "#topic labels for ranged descriptors (darosior)",
        "action": false,
        "timestamp": "2022-01-28T19:02:45+00:00"
      },
      "operand": "labels for ranged descriptors (darosior)",
      "id": "5f7d742019f945509a210ffc668c717c",
      "timestamp": "2022-01-28T19:02:45+00:00"
    },
    {
      "event_type": "TOPIC",
      "message": {
        "id": "2d44602770cf4a33abe5e28d9c196870",
        "sender": "achow101",
        "payload": "#topic Taproot support in the wallet (open PRs, latest thinking) (michaelfolkson)",
        "action": false,
        "timestamp": "2022-01-28T19:09:01+00:00"
      },
      "operand": "Taproot support in the wallet (open PRs, latest thinking) (michaelfolkson)",
      "id": "2d44602770cf4a33abe5e28d9c196870",
      "timestamp": "2022-01-28T19:09:01+00:00"
    },
    {
      "event_type": "END_MEETING",
      "message": {
        "id": "f1962e5993ba4c02b4751be0a452c287",
        "sender": "achow101",
        "payload": "#endmeeting",
        "action": false,
        "timestamp": "2022-01-28T19:43:10+00:00"
      },
      "operand": null,
      "id": "f1962e5993ba4c02b4751be0a452c287",
      "timestamp": "2022-01-28T19:43:10+00:00"
    }
  ],
  "aliases": {},
  "vote_in_progress": false,
  "motion_index": null
}