Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id E7A2FC000A for ; Fri, 9 Apr 2021 03:57:54 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id BD72060E4A for ; Fri, 9 Apr 2021 03:57:54 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: 1.815 X-Spam-Level: * X-Spam-Status: No, score=1.815 tagged_above=-999 required=5 tests=[BAYES_50=0.8, BITCOIN_IMGUR=3.304, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=no autolearn_force=no Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uamYP7I8PBi4 for ; Fri, 9 Apr 2021 03:57:53 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by smtp3.osuosl.org (Postfix) with ESMTPS id 5F4D060E47 for ; Fri, 9 Apr 2021 03:57:53 +0000 (UTC) Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) (authenticated bits=0) (User authenticated as jlrubin@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 1393vpKX018192 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NOT) for ; Thu, 8 Apr 2021 23:57:51 -0400 Received: by mail-io1-f44.google.com with SMTP id z3so4530262ioc.8 for ; Thu, 08 Apr 2021 20:57:51 -0700 (PDT) X-Gm-Message-State: AOAM531uVgGLoWG650jHreJ3iWrpMRJ4VFcBmoUBtqWtQDe5nGj4sJE8 qyc6DeTJ2vgrDW3PSQ/n8bEj1LqbM6mV016HmmA= X-Google-Smtp-Source: ABdhPJxuTZmGyXiC4jRUN7PMt+l4hkt8C+JKNdXezSbCAyZJF44XpvXjgfjPlJGB37tpkoTx9yu6/ys0gp5pKSVvI8Q= X-Received: by 2002:a5d:8d12:: with SMTP id p18mr9865489ioj.31.1617940670981; Thu, 08 Apr 2021 20:57:50 -0700 (PDT) MIME-Version: 1.0 From: Jeremy Date: Thu, 8 Apr 2021 20:57:39 -0700 X-Gmail-Original-Message-ID: Message-ID: To: Bitcoin development mailing list Content-Type: multipart/alternative; boundary="000000000000f62c7905bf822ab2" Subject: [bitcoin-dev] Designing Bitcoin Smart Contracts with Sapio (available on Mainnet today) X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2021 03:57:55 -0000 --000000000000f62c7905bf822ab2 Content-Type: text/plain; charset="UTF-8" Bitcoin Developers, I'm very excited to introduce Sapio[0] formally to you all. Sapio empowers Bitcoin Developers to craft smart contracts in an intuitive, safe, and composable way. Sapio challenges the notion that you can't make complex smart contracts for Bitcoin, and opens the floodgates for a myriad of new ideas to be defined easily. Sapio works today on mainnet without any protocol changes (via user-configurable multisig oracles, it will work with BIP-119 OP_CHECKTEMPLATEVERIFY[1] and Taproot when they are available). You can learn more about what's possible by reading *Designing Bitcoin Smart Contracts with Sapio[2] *. My Reckless VR Talk[3] also does a great job of breaking down the core programming model for Sapio contracts, although the language has evolved substantially since I gave the talk. As a concrete instance of Sapio working in the wild, I am currently executing on mainnet a Congestion Control Tree[4] contract with 25 recipients (the first Sapio contract to run on mainnet ever, as far as I'm aware). You can review the source code, arguments, compiler outputs, and transactions here[5] . To see more examples of what you can do with Sapio, the repo includes examples[6] for derivatives, vaults, coin pools, games, side chains, and more. These aren't intended to be production grade contracts -- yet -- but are demonstrative of what can be built and how. I'm excited to see what people build -- please open up PRs with your ideas or any issues you encounter trying to implement them. You can also try out Tux[7] , an experimental GUI, to inspect, simulate, and interact with smart contracts. You can see the Congestion Control Tree mentioned earlier loaded in Tux below[8] : This is still early work-in-progress software, so tread lightly and use regtest. Enough of the components work today that it was appropriate to share now and invite more developers to contribute or otherwise support the project. Sapio is developed free and open source for all bitcoiners by Judica.org (my organization). Thank you to all who have helped reach this milestone of the first mainnet Sapio contract, including Ryan Grant, BitMEX, ACINQ, Delphi Digital, Backend Capital, my github sponsors https://github.com/sponsors/jeremyrubin, and numerous other supporters both fiscal and technical. I also want to highlight the excellent work done on Miniscript and the rust-bitcoin ecosystem, the foundation upon which Sapio rests. [0] https://github.com/sapio-lang/sapio [1] https://utxos.org [2] https://learn.sapio-lang.org [3] https://judica.org/blog/sapio/ [4] https://utxos.org/analysis/bip_simulation/ [5] https://gist.github.com/JeremyRubin/1374f0916bfdef0bd36bc10d73852886 [6] https://github.com/sapio-lang/sapio/tree/master/sapio-contrib/src/contracts [7] https://github.com/sapio-lang/tux [8] https://imgur.com/pg5SqfH Eager for you feedback, Jeremy -- @JeremyRubin --000000000000f62c7905bf822ab2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Bitcoin Developers,
=

I'm very excited to introduce Sapio[0] formally to you all.

Sapio empowers Bitcoin Developers to craft smart contracts i= n an intuitive, safe, and composable way. Sapio challenges the notion that = you can't make complex smart contracts for Bitcoin, and opens the flood= gates for a myriad of new ideas to be defined easily. Sapio works today on mainnet without any protocol ch= anges (via user-configurable multisig oracles, it will work with BIP-119 OP_CHECKTEMPLATEVERIFY[1] and Taproot when = they are available).

You can learn more about what's possible by re= ading Designing Bitcoin Smart C= ontracts with Sapio[2]. My Reckless VR Talk[3] also does a great job of breaking down the core= programming model for Sapio contracts, although the language has evolved s= ubstantially since I gave the talk.

As a concrete instance of Sap= io working in the wild, I am currently executing on mainnet a Congestion Control Tree[4] c= ontract with 25 recipients (the first Sapio contract to run on mainnet eve= r, as far as I'm aware). You can review the source code, arguments, com= piler outputs, and transactions here[5].

To see more exampl= es of what you can do with Sapio, the repo includes examples[= 6] for derivatives, vaults, coin pools, games, side chains, and more. T= hese aren't intended to be production grade contracts -- yet -- but are= demonstrative of what can be built and how. I'm excited to see what pe= ople build -- please open up PRs with your ideas or any issues you encounte= r trying to implement them.

You can also= try out Tux[7], an experimental GUI, to inspect, simulate, and interact with smart contracts. You= can see the Congestion Control Tree mentioned earlier loaded in Tux below[8]:




This is still early work-in-progress s= oftware, so tread lightly and use regtest. Enough of the components work to= day that it was appropriate to share now and invite more developers to cont= ribute or otherwise support the project.

Sapio is developed free = and open source for all bitcoiners by Judica.org (my organization).

T= hank you to all who have helped reach this milestone of the first mainnet S= apio contract, including Ryan Grant, BitMEX, ACINQ, Delphi Digital, Backend= Capital, my github sponsors https://github.com/sponsors/jeremyrubin, and numerous other suppo= rters both fiscal and technical. I also want to highlight the excellent wor= k done on Miniscript and the rust-bitcoin ecosystem, the foundation upon wh= ich Sapio rests.





--000000000000f62c7905bf822ab2--