ETHDenver 2023: #YearoftheSpork - Tally
Ethereum Denver·Mon, Oct 9, 2023, 12:00 AM
ETHDenver 2023: #YearoftheSpork - Tally Follow them at: https://twitter.com/tallyxyz
Transcript
this is I think very useful for uh hackers like if you're building a a smart contract that needs an admin or needs some upgradability it but you want a lot of people to build on the smart contract you probably want that contract to be um neutral and uh kind of controlled by a lot of stakeholders and that's a really good use case for a dow because the on-chain parts of the Dow can directly interoperate with that smart contract maybe it's a protocol maybe it's a shared treasury maybe it's a piece of infrastructure like a bridge or a roll-up but when you're building something that is that widely used and that important a dow is a great uh a great pattern because the people who are building on top of your contract can understand and see the process and Trust the neutrality of the piece of infrastructure that they want to build on top of so I'll talk a little bit about what the the plan is and then we will demonstrate it live hopefully with our Wi-Fi but the the first step is start with a standard Nosa safe and then we'll use a zodiac module to connect that safe to a governor and then we can distribute control of that the governor is is controlled by token voting so we'll distribute those tokens to anyone who wants some and then we will all collectively control the safe so here's a little picture you know we're going to start with a standard uh notice safe one important thing to note about Nosa safe is uh there's really more than one part right there's the the control the multi-sig owners who control the safe and then there's the account itself that maybe it holds assets or maybe it's the admin of another smart contract and then using zodiac we will be able to add a module a second uh control portion and we use a governor for that and uh the governor is controlled by tokens so we sort of have this bootstrapping problem that we will solve by putting the tokens in the safe and then we will be able to distribute those tokens from the safe to all of us and then we will all control uh the safe so that's this last step we'll have to airdrop the tokens to get them out of the safes account and put them in all of our hands so that we can all collectively control this down with these contracts um so if you're uh you want to take part in the airdrop part of this demo you can scan this QR code and add your address to the form and we will about halfway through this demo airdrop the tokens to all of us and we can do some uh on chain now voting so I'll give you all a second to grab the QR code if you want I'm also going to show this slide again in a few minutes so if you uh uh are struggling to connect to Wi-Fi you have a few minutes to try to get it hooked up and then I'll hand it off to Nathan here who will walk us through the demo thanks Ro so one of the things that we've really wanted to do here was to show that this is no code and kind of bringing the the point across that it's it's really easy um show of hands how many people are in a dow almost almost everybody so um you know Dao's traditionally would require maybe knowing how to deploy smart contracts maybe knowing how to configure them in pretty esoteric ways and understanding a lot about governance and uh not that those things go away it's important to understand you know some core principles of democracy like voting thresholds and quorums and you know delays and time so that you know people have time to vote or that things can't go wrong but building the Zodiac standard you know as Raph said it's it's making use of tools that already exists which a lot of people already have a safe with assets in it so you get this nice stepped progression from starting off with you know people coming together with assets and collecting together maybe building something cool together and you know maybe it's only a small set of people and then that small set of people um decides that they don't want to be in control of it anymore as I think most good organizations would do and they want to you know give the control to the users or the people that are developing that application uh so you know the Zodiac way is to then hook up a module to the safe and we're going to try and do that so you know we call zodiac this open standard everybody is welcome to come and contribute to this idea of progressive decentralization and um yeah go ahead and then so this is yeah that's the first step but to be you know gather some people together get us safe together we really want to demo this live we're going to do the best that we can uh and uh you know it is no code so we do not we can't really just sit here and code locally for a while we wanted to really try to uh you know demonstrate how the safe was going to be able to uh you know boot up this module very quickly and easily and you know starts to give control of this organization off to your user base so it looks like you're there um so if you want to maybe go ahead and try clicking on apps hey it's kind of loading um we don't need images that's fine zodiac there you go and so this is how you get into the application Suite that we've built with zodiac and you'll see a lot of stuff there but the one that we're really interested in is that one on the far right bottom left the governance module and so the first step is you know you're going to want some way for your community to vote and you can either take an erc20 token that you have and if it works with open Zeppelin standard of governance or if it's a compound style type of token then you can go ahead and just throw that in there but we're going to boot up our own erc20 token and call it some nice things like dial Denver the voting delay we're going to set that to zero we're going to try and make this as easy as possible but that delay would be how long it would take before voting can start and then how long people have to vote we're going to set up to 25 blocks try and make it as short as possible to get this done in time and the proposal thresholds will go ahead and make that zero and the Quorum percent uh go ahead and set that to one so that way you can distribute some tokens to yourself and get that passed then you go ahead and just click submit there's a little review screen and this is going to send a hopefully nice bundle transaction off we have a one of two signers safe so it should automatically execute if not you may need to go to the transaction list and execute it yourself so if the Gurley Network is kind to us it will boot up the Zodiac open Zeppelin governance module I think what I find really cool about this is uh all the different organizations working together so you've heard save you've heard open Zeppelin and soon you'll hear tally and her nose is Guild and zodiac so that we've got four organizations working together so rap's going to grab the token so yeah he can grab the governance module that he can later then load into tally but you probably want to do the token first right so I don't know if it will refresh so yeah go ahead and scroll down the list and look for token yep and so that's the token that got automatically deployed and then go ahead and go back to the gnosis safe so you can send some out to yourself yeah so safe in the top left that'll work cool and then yeah new transaction I'm not sure if you have the ABI for the erc20 votes token okay so that's going to make this a little bit more challenging um I have it on my computer let me see real quick if a miracle happened in some internet um yeah yeah etherscan that should work so we are going to etherscan to grab the ABI we're going to go to Gourley etherscan because zodiac did verify our contract on girl etherscan and then we will pull the API which we need for the next step grab the token address here and look it up on Gourley and download the Abi here's the contract do I need an ABI as a file or will I be able to just copy it if you have the Json foreign perfect we'll pick contract interaction we're waiting on our Wi-Fi but it is working which is great looks like we're getting a little lucky I like it yeah and then the token address grab the token address from zodiac the Zodiac module paste it in here Oops I did not grab it try again it's quite the token address great we lost the API be right back and then after this we'll be able to Mint a treasury to the Dow so this is probably the first step that you would do you would take your freshly created token and then make like a total Supply throw that onto your safe and now your safe is going to have a total supply of however many tokens you want to issue out to your communities let's do the Navy set it to the safe if you have and how many do you want uh do we need 10 to the 18th that's one so we want like six more than that like like a million uh yeah a million would be good oh it didn't print that out all right sixteen zeros here we go there we go count out loud six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen Seventeen eighteen this is coding 19 20 21 22 23 24. and if it comes out as 10 million or a billion it's fine so we will send this transaction to our safe because the safe is controlled by the governor but it's also still controlled by the multi-sig so both of them can make transactions on this safe which is very useful for bootstrapping this upgrade process yeah and then the next step would be if anybody did sign up on that CSV and wanted to be a part of the Dow we would be able to drop those to you awesome so we got some addresses here and I will export them as a CSV so we don't need these first two addresses and if you have uh test net ether you'll be able to vote on The Proposal as well and if not we can uh if we've got enough time we can send you some test net ether as well awesome I think I have enough internet to possibly get some to you great uh so we want to export this we're making a CSV to use this CSV airdrop app which is another component a component of the Nosa safe so the safe team created a module that allows you to airdrop tokens directly owned by a safe and also since there's only two addresses we could just impact those yeah it'll be probably as easy good point but I did want to go through the uh go through the motions so now we can go to this uh another Safe app this is what it looks like you can get to it from where I'll show you the from the main view you start at safe we go to apps we look for the CSV app and it is right here we can open it up and do a CSV airdrop from that file we just grabbed we'll uh grab it from the command line yeah in the formatting if you look at the CSV application it'll show you what you need to do just token name if there's no token name it'll assume the main Network token like ether so here is our CSV we're going to copy the text from the file to our uh to our app we're going to check the formatting oh validation told us it did not validate because there's a complaining about insufficient balance because there's there's also like an ens name in there potentially oh yeah we need an address here we can go look up this in s name and substitute the address maybe on etherscan that might be it results to this address we'll just sub it in quickly and now validation still complaining maybe I don't have enough balance here and that's a correct token address let me see if I have the ability to oh that is the wrong token address yeah let's use our the token address that we just created so we paste our token address into our CSV so we're now telling um the safe app that we want to enter up this erc20 token to these two addresses here and what's the uh what should the ID column be I believe you can leave that off you can go ahead and delete that so the number of tokens afterwards would be all you need okay no are you adding the number of tokens to be transferred looks like there's zero at the end yeah so maybe change that zero to like ten thousand or so so go ahead and uh you see how it says afterward drafts comma zero comma one yeah so that's zero place that with 10K perfect looks like we still have one more validation error to work through maybe that trailing comma oh I see the problem well we're uh I don't know if the validation is not working or that's the Wi-Fi that's struggling but we can um Skip To The Next Step which is adding the Dow to tally yes yes so you now have everything on chain and uh tally will be able to give you the the nice front end to interact with all the on-chain components so we're introducing a new character now uh and that's tally so we have now that we've deployed a governor contract that controls our safe we would like a user interface for it so that's where tally comes in so tally is a tool for uh interacting with these Governor Dows the type of contract that we deployed as a governor contract and we can use tally to see what's going on in this Governor contract create transactions pass proposals and generally interact with uh Dao that we just created so what we want to do now is tell tally about the new Dow contracts that we deployed so that tally can go and index them and create a front end for us so we uh can name ardao whatever we want and um then add the contracts that we just created on zodiac to tally so we will grab the governor address from the zodiac module here we'll input it to tally and we will in this case we deployed on uh the gorley test net and we will tell tally to index it we'll see if tally can find this contract contract found that's great we found our contract it's good it's there it's real and then we looks like I'm fighting my Wi-Fi again here we need a connect wallet oh it is connected we also need to tell tally about the token that we just created so we'll go back here to the Token in the Zodiac module and we will tell tally that we added this token and we also need to tell tally when this token was created so we will go back to uh uh etherscan and find out which uh transaction created the token this transaction was at this block here uh 858 709 so we'll copy that block height into tally so it's easier for a tally to index and then uh and then we fight with our Wi-Fi a little bit let me uh let me see if I can disconnect my wallet because it doesn't seem to be connected might have been cool to set up a mesh Network and we could all hop on locally are we connected our wallet we'll sign in well wait a second for the Wi-Fi but it is it is working and we'll sign in with ethereum to tally and now I think we're signed in we'll wait a little while longer we have a little bit of latency on our Wi-Fi but it is happening now we can add our governor to Telly and tell these indexer is going to uh pull in all of the on-chain information about this Dow that we just created with zodiac and that's the cool part if anybody's ever voted uh like on uniswap or any of those you know big D5 does and now you have that same front end and uh you know the nose is safe is sitting there holding your assets in the background uh sorry safe Global no longer doses so uh now that the we'll go back to the picture to just talk about what we had just uh done so we went through all of these steps here to um uh put the Dow together and we're now in this uh this setup we've got a multi-sig that still controls the safe we could we could in the future decide to remove it if we want to go fully decentralized we also have this Governor that controls the same safe from tally and we uh the airdrop if it had worked we would have distributed the tokens and control of the Dow to all of the people who dropped their address on that document one of the cool transactions so we were going to create a proposal and the proposal would have been voted on by everybody and one of the cool proposals could be remove all owners from the safe and then it's fully trustless at that point yep so the the steps that you can do after the token distribution are delegate your vote either to yourself or to somebody else and then you can create proposals too do just that um so to kind of wrap up a little bit with with what we did and why um we as you know replaced the multi-sig part of the safe with a on-chain governor but safe is still there if we think about like how um safe is turning into an account abstraction protocol this is kind of account abstraction in practice the uh the Zodiac tools helped us upgrade uh the the permissions around the account in place but the account itself it's the same account holds all the same assets that it did at the beginning it has all the same permissions or admin rights that it did at the beginning and this is one of the I think really exciting things enabled by this uh big idea about a kind of abstraction and it's I think very useful in practice for Downs because the the needs of a dow change over time and um a lot of us want to be more decentralized over time and this is a great tool to do that yeah exactly it's very like evolutionary like exactly you can start off with you know what would be your simple Assets in a metamask wallet and then realize you want to put that and create an entire like multi-user organization and then to you know hundreds to thousands of people controlled organization and then maybe one day reverted back and then go back again so you can spend 100 years evolving you know one you know private key uh public key pair great well thanks everyone um appreciate you coming and uh talking through this demo with us we will be around this weekend uh if you we have bounties for building on uh Tally's new API if you are interested come find me afterward and I can tell you a little bit more about that and uh y'all be around somewhere safe has a booth I'll be hanging around there for a bit as well but if anybody wants to join the noses Guild Discord that's a great place to get a hold of anybody they're trying to figure out how to do these things and um I think these slides are also going to be available at thai.xyz yeah right here static yeah XYZ slash 2023 if you want to see the slides in action and um I think that's all we had so happy to take any quick questions because I think we have a few minutes left but otherwise thank you so much for coming [Music]
Automatic transcript — names and jargon may be misspelled.