New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Gnosis Pay Workshop - ETHGlobal London 2024

ETHGlobalWed, Oct 9, 2024, 12:00 AM

Join Laurent De Marez and Benjamin Shafii from Gnosis Chain for a workshop on Gnosis Pay. Gnosis Pay is the world's first on-chain, self-custodial debit card. Gnosis Pay is built on top of Gnosis Chain, one of multiple projects at Gnosis DAO. This workshop took place at ETHGlobal London 2024, a 3-day hackathon held at the Truman Brewery in London from March 15 to 17, 2024. The event brought together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! ----------------- Follow us: https://x.com/ethglobal Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

[Music] so hi everyone I'm uh lauron from nosis pay and uh we're going to talk a bit about what you can build today on nosis pay during this uh hackaton so first of all what is nosis pay nosis pay is a Visa debit card self custodial uh onchain which works with stable coins and uh but actually in a nutshell what it really is is just a safe that is linked to a Visa card um however our safe setup is has a bit of a caveat um it doesn't work uh this it won't work anymore with your safe web app and that is because we have some constraints uh when we want to offramp uh the tokens to the Visa Network um and we're going to show you how you can actually still keep interacting with your safe um using yeah the tools that we have available I think Ben will demo this right so I'm going to do a small demo and the demo is basically about how you can keep using agnosis safe agnosis pay safe the same way that you were using a normal save and there's going to be two parts to it first setting up a safe that works like a gnosis pay safe and the second part is going to be how to interact with that special save so I'm going to get started going to start with creating a save just going to name it next so there's not nothing special to do here click on create this is is exactly like you would create any other save uh we're on nois chain because that's where we do uh gnosis pay transactions and now we're going to need to wait for the transaction um and what I'm going to show you next is how you can set up a specific module which we call the delay module to set it up with GES save and simulate um the same safe setup as noce pay so I'm going to go to in apps zodiac click on it and wait a bit click on delay modifier I'm going to input 10 minutes and 10 oh yes 10 seconds here and 10 minutes here why specifically those values is not really important right now but if you want to know more uh you can come uh talk to us later um and this is all or we also have recording of this uh somewhere so you can rewatch this uh we have like a repo with examples where and like videos where we explain the same things so I'm going to create add this module and wait again for the transaction and this is a kind of a twostep process so right now we're configuring the delay module but right after I'm going to need to enable it so there's going to be one more transaction to make this gnosis pay safe right this is done and now we're at the last step of the setup can create on right contract select enable module and I need to select what was it the address of the address that will interact with the delay module so you can actually just copy it from here right so the address of the EA you use to create the module and then you need to click on bundle transaction and then you submit the transaction again execute if during the process you need any uh XI you can always come and ask us last transaction that will set up the save and make it complete uh so that you can start interacting with it as if it were agnosis payve loading all right fund the save oh yeah funding the save it's like a card without the card yeah it's it's it's like setting up the infra so that you can like do the same as what we actually do in the background when we set up a card that's right okay transaction was successful and right now I'm just going to demo how to interact with it and to do that I'm going to demo uh how to do a erc20 transfer so and this can be applied then to whatever uh transactions you can think of so luron is sending me some erc20 and I built this little demo app and there's also again a repo that you can uh that I will share after um and this repo allows you is a small demo on how you can make an erc20 transfer so the way it works is you input your safe address ah remove the gno I I did this mistake three times today um and this will get the address of the module that we just deployed right now and you can find this here in the code it is here so in this code there is a function called get delay module that takes in the address of the save and you can just like copy paste where is it yeah can just copy paste this in your code and also retrieve the the delay module address right so we got the module address now the next thing we want to do is execute the transaction and actually we need to execute two transactions I'm just going to fire this and I'm going to explain like what's happening under the hood so this is the first transaction I'm not going to validate it right now because I just really want to explain quickly uh what is happening so the first transaction is a transaction against the delay module uh this delay module um requires two to be called two times and we also need to a little bit of wait in between those those calls so the first call is a simple you just point to the delay module address that we retrieved right before we uh bigger uh you um use the delay mod ABI which is also as part of the demo example and you uh call exact transaction for module with values of the address that you really want to interact with so the in in our case a specific erc20 address we hardcoded it EUR e manium zero you don't need to think about this right now zero here and the unsigned TX data that you pass through so that's what just happened right right now that's the first call that we just saw right now now we'll confirm transaction and we will need to wait because you actually need to wait a certain amount of time between uh two transaction that you can do to the delay module and that's where a bit the complexity of this is lying and it's going to take about 40 seconds I kind of hardcoded it here but the real G this pay delay mod module works on a three minute delay so in in the real world application you often need to start this in a DB keep track of it and then execute it at at a later time right let's go back here [Music] and Q is empty okay so it didn't take enough time will it work if I just do it like like this uh yes yes yes all right can't you just wait for the transaction to be executed in the with your sync function I mean it's not just about uh the transaction being executed it's about the delay module having waited enough time so that you can re-trigger it again so how you would actually have to do it is you first execute a transaction to cue the transaction that you actually want to execute and then once that has settled then you waigh x amount of time and I think that's where you were getting at right so if I execute it uh before time I get a null value or empty or what do I get if I ex it it will just be reverted because there is no transaction in the queue no but what what will be the response of the the value of what value from the transaction I'm guessing that after it's executed you get a TX or yeah so you get two TX so conceptually you can think as the first transaction is putting something in the delay mod and the second is like actually the delay mod like making the transaction against the save uh and you can see this being executed here uh then delayed and then this it's at this moment in time that things will be really uh executed on chain on the save so in this case it means means that we were able to get some Ure out yeah my question is if you call it before it gets executed what will be the response I mean it's just like a TX hash right I mean it will be it doesn't have if it doesn't have a TX hash it will be just null value for the response that what transaction are you talking about the one that cues the transaction no no the the yeah the one. cues yeah uh yeah you would just have to wait until you actually have a transaction receipt and then you start the countdown uh which in this case is 10 seconds okay yeah thank you but we've hardcoded 40 seconds but the internet was still too slow um I think that's that's basically it right for the demo part um yeah so you've you've seen kind of like how you actually interact with a no Sy pay account um this is the only way that you as your owner of your safe of a nosis pay account can interact with it we need to have that delay because we need to make sure that we can settle the Visa transaction before the user can take funds out um so we thought about some bounties and like the problems that we have with this account structure and um one of them is basically allow people again to use their safe through the delay module with regular daps uh so one of them could be creating a dashboard that kind of looks like the safe app and that really allows you to uh interact with cwap or any other dii protocols so it would incur like queuing the transaction and then executing it and then yeah ask May contextual question sure so um so the the the save with the delay module represents a card account and my understanding is that so far in real life that can be used to pay something with like in if you have a UK account you need GBP stable coin in there and if you have a Euro account you have a Euro stable so why would anybody want to use that same account to do other stuff like if they want to do defi gen dgen stuff why don't they use like the other safe account kind of um because we really play uh I mean like we are a self- custodial card and we think it's really important that you can use your account for the stuff that you're used to on chain and um we started out with just two stable coins uh depending on your location EUR e or GBP but we are planning to expend to order tokens and for that you need tooling you need the safe to be usable that's that's the reasoning behind it and that brings me to uh the next Bounty actually uh or like the other ideas we that we had and that is um allow people to use yield bearing tokens with your safe and one of the ideas we had which is something that you can execute on today if you have a nosis pay card even if you don't and that is you have yield bearing uh tokens somewhere else let's say in an utter safe and you keep an eye on your nosis pay safe and as soon as that drops below a certain stable coin balance you do a swap of the yield bearing token and you update your card and that way you can basically keep your tokens at work until the very last moment that you're going to buy your coffee yeah um that was kind of like the bounties that we had so I I guess we're going to like open up for questions um also wanted to tell you that we're hiring uh developers um yeah if anybody has any questions how much we can talk afterwards I'm gonna ask a newbie question okay so you just gave this example of basically making sure that there's enough balance yeah there but kind of the Practical issue is then like what is enough right so let's say you put1 and then you go to store and you see something you like for €120 then you're kind of screwed so what is stopping you from having a more clever way that kind of goes oops you know I need € 1220 let's see if there's some some some other token there the the ultimate use case would be that you can actually spend yield bearing tokens that would be amazing um and you can work on this it's just that it will require a bit of work on our side as well so the Bounty or the example that we gave um we're going to also look at other bounties of course but the example that we gave is the one that is actionable today however feel free to work on something where we can spend uh yield bearing tokens and our constraint on our side is that we need to be able to tell Visa yes approve the coffee purchase within 2 seconds and we need to be able to have Assurance of 2 minutes so that we can get x amount of Euro which we approve to Visa uh and settle that with Visa so that's kind of like our constraint so you need kind of like an a quote from a DEX which is valid for two minutes yeah I don't want to monopolize you but I think you know if if you you know it's sort of a risk management thing right yes yeah yeah it is it is so just to summarize the product so it basically it's an offramp a useful offramp yes okay yeah and then we would convert our eth to your stable coin on whatever Sushi swap yes yeah all right just it's it's a crypto card like you have from crypto.com or any other centralized crypto exchange but we offer it in a self custodial way so you hold the tokens until the very last minute that you offramp them all right followup question yeah I mean it's self-c conial but you kyc and you have the control on the Visa side so it you could say so how it works is that uh you give delegate power or delegate access to your save to us but with severe constraints on our side we can only uh transfer the stable coin that is used for Visa payments we can only transfer it to a fixed address which is a safe controlled by our part partner who is a a partner of visa and you can only do it within a daily limit that you set yourself so then do I understand the benefit versus crypto.com so in crypto.com they could say oh we decided your K was false so now we block your account and you can't withdraw and with if you decide our K is you can still access your to I can still withdraw if nois pay dies tomorrow you're you're still fully liquid you still have your tokens yeah yeah it's definitely far better product any other questions are you going to share theod yeah yeah yeah we're going to we're going to share it it's already um on the Bounty page I think and if you uh we also have a telegram group chat so feel free to come to us and we'll add you to the telegram group chat I can do it as well or yeah or you can go to my colleague Adam any other questions no all right well thanks everybody for coming and looking forward to the haon [Music] [Applause] [Music]

Automatic transcript — names and jargon may be misspelled.