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

Loading player…

Celo 🛠️ Build Consumer Focused DApps using SocialConnect and Account Abstraction

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Eric Nakagawa and Harpal Jadeja from Celo for a workshop titled "Build Consumer Focused DApps using SocialConnect and Account Abstraction". Learn how you can improve User Experience of your dApps and make them Consumer-friendly using SocialConnect and Account Abstraction on Celo. SocialConnect makes it possible to let users use their existing identifiers as their wallet addresses. Account Abstraction enables programmable wallets that improves onboarding and makes web 3 more accessible for real world use cases. Thank you to everyone who joined us for ETHGlobal Paris 2023! Paris is the city of light and birthplace of many revolutions. Therefore we were thrilled to be back in one of the most buzzing and free-spirited cities in Europe for ETHGlobal Paris 2023. A lot has changed in the European ecosystem since the last time we hosted a hackathon in 2019. ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

foreign [Music] hi everybody thanks for coming out I'm excited to talk to you today about about solo so my name is Eric nakagawa based in San Francisco very excited to be here at Etc uh sorry East Global it's been a long week a bunch of our team are also here we got harpal is going to be talking a little bit um and a bunch of folks down by our booth so if you have any questions after come uh come ask us questions we're also handing out a little starter sheet a few folks are hackers how many here are hackers great so before you leave please grab one it says a starter guide to help you focus save some time so what is solo so if you haven't heard is a blockchain focused on uh Prosperity that's what we like to say um and we are building a very large Global community of both Builders Founders that believe in this concept of prosperity for all of there's there's who we are again we have a bunch of folks here to help you folks out we have folks who can give you Mentor around ideas come talk to me about that um communities Community aspects technical from the solidity and the front end Dev side and then some product feedback as well first let's talk about what is cello so when I say you know it's only for purpose we want to build for real people and we've been doing this for several years when seller launched it was a um carbon carbon negative from the beginning so if you've ever heard of regen refi regenerative Finance um we didn't know that word was going to become a word um and back then it was more like about climate and social impact so a lot of people have been building um with that and have embraced cello when it comes to refi projects we think a lot about the planet um and we want people to be building for real world use cases trying to help a lot of people and what that means is people in Latin America people in in Africa and our Focus has been there for quite a long time what kind of features to talk about if you're a Dev um well we start with mobile so a lot of times if you're building you want to start with mobile and the reason for that is everybody here has a mobile phone um everybody in the world most people have access to a mobile phone but they don't have access to a computer and the user experience of that I think it's really important to to be thoughtful when you're building your your um your projects and again like I said regenerative finance that can be things like you know it's not just climate credits it can be Community tokens um and if you want a book to read if you're into this stuff sector economics is a great book to learn more as I mentioned before carbon negative um built into protocol we actually have a hard fart coming that will make every transaction um carbon negative and very excited about that coming soon a bunch of other features uh in terms of like how many people use the project there are you know almost or over 30 billion 30 million wallets a bunch of mobile users that we're targeting we've given out a lot of Grants as mentioned before you know we've offset a bunch of carbon since day one we really believe in that a lot of transactions there's also a bunch of you know with a thousand projects that are building on cello there's a lot of recently large uptick in a lot of people doing things on chain so right now we have stable coins things like cusd C Euro and crail we have ultra light client for helping with mobile phones that might not be that strong a bunch of bridges Fiat connect actually helps to connect um on-ramps or the users no matter where they're on the world excited about that and social connect is something that harpal is going to be talking about as I mentioned the ultra green Hartford very excited for this to happen coming in in August and then if you've watched the news you've heard about the proposal in the community for turning solo into an L2 so there's a governance call that is about 40 or 55 minutes from now excited to see what the committee wants to say we want to be more aligned with serum when we launched we were proof of stake so we've been proof of stake from the beginning and now that ethereum is in that ethereum is proof of stake I think it makes sense to come back home a lot of focus on their operability I'm gonna quickly run through our bounties If You're Building uh we are getting out three thousand for first two thousand and one thousand for second and third and they're also looking for people to implement social connect and account obstruction on solo so without further Ado here's our Paul to talk about each of these pieces GM everyone harpalier so um let's talk about social security because this is one of the team boundaries we have um so first of all whether um rather than learning about social connect Let's uh learn why we need social connect in the first place right this is how my ethereum address looks like personally I don't even remember it myself but imagine in the future as we go more mobile and we use a lot of applications which will involve our friends and our contacts and family you might have to memorize ethereum addresses of all the people in your contacts right and it's gonna be very tough I mean I don't remember myself the address my my own address how am I gonna remember everyone else's address unless you are this guy who is like eight world eight time memorable champion and pretty sure he's gonna be also having problems at some point but um let's talk about identifiers right we have email we have Twitter LinkedIn Discord telegram ens Facebook I don't remember because I haven't used it for a while and now we have a new thing called threats yeah too many identifiers right too many things to remember oh I want to send crypto to my friend I don't remember his ethereum address I don't remember his cello address I don't remember his yeah you get the point right so what if we can make it possible to let users use their existing identifiers as their wallet address right what if the user can just select um you know I want to use my Twitter handle as my wallet address from now on so if my friend wants to do something with my wallet if send tokens or just use my address somewhere they can just put in my Twitter handle right and that's what social connect is so it's a simpler way of sending value between wallets but it can be expanded into other things it's basically ens but you can decide what the identifier can be so you have to GitHub repo for that in case you're interested and this is a screenshot of how it looks like in an app it's already live and these are some apps which are already using it well or as a wallet no Finance is a developer tool librarian color or also wallets that you can check out they are using social connect right now in production and here's a cheat sheet I highly recommend that you scan this QR code but if you don't want to we have a physical cheat sheet that you can take a year from Lyles which is in the solo t-shirt but yeah let's move it so how does social connect work so there are three parties in this protocol one has issuers second is Taps and then there's an on-chain contract which keeps track of the attestations so what our issue is issuers can be anybody who wants to attest to users based on identify of their choice so for example let's say I want to make it easy for users to use their telegram handle as their wallet address so I can become an issuer for telegram and it's up to me you don't have to take permission from anyone it's open for all you can become an issuer and uh yeah you can just start you know authenticating users and getting their Telegram and just verifying if a user holds it and one once you do you can basically use that obfuscated identifier and put it on the smart contract on chain and then you are issued so what is the second body the second party is daps um so let's say you're a Dap Builder and you know that there exists an issuer already for the identifier that you want to use or you want your users to use then you can just trust those issuers right issuers could be a seller Foundation you know testing some form of identifier it could be your own protocol uh contributing for other adapts to you know use an identifier so the apps basically trust issuers they can trust issue or they can become an issuer themselves so they don't have to do the overhead of doing authentication Etc and then there's an online contract this is the part where you know once you are done with authentication or the identifier you need a place where it cannot be um you know changed without the permission of the issuer that's where the online contract comes into place where you are basically whenever you want to store something on this on chain contract which is the attestations contract you will have to sign with your issuer keys so everybody knows who did the process of authentication who is responsible for this Etc and these identifiers are not stored as plain text they are encrypted to preserve privacy so what a bill right well since this is a hackathon what are you supposed to build using social connect you can become an issuer for a new identifier you know it could be something that you use for your own product um it could be an internal identifier of your choice um there are many identifiers that are they don't have issuers on the seller Network um disk or telegram these these don't exist right now so opportunity is available for you guys and you can integrate social Connect into existing apps you know for issuers that already exist or you can enable wallet list and board onboarding um using an escrow contract that we already have on cello right now it supports crc20 tokens so basically if you want to send some ERC tokens to a user of your app they don't even need a wallet and we don't have an escrow contract for nfts so that's also an opportunity for you guys cello composer so this is a template that we have built internally for you guys to get started quickly this is for hackathon people right get started less than one minute we just run one command and we will have a option to select whether you want to use react you want to use react native you want to use Expo without Expo angular flutter any uh framework of your choice or library of your choice you can just start building in less than one minute and rainbow kit is already in there wallet connect V2 is already in there so you don't have to worry about you know going through the docs of these Technologies and figuring out and you know losing those essential early hours of the hackathon so I highly recommend scanning this QR code as well so social connect with cello composer just five steps scan this QR code you will get these uh steps in more detail in the say QR code we also have a physical version of the same year um it's just five steps you know to get started and you will be up and running with social connect in your dab so the second model we have at the second theme boundary is account abstraction 2000 usdc so um let's see raise of hands how many of you know about account abstraction already right okay a few people great so why do we need a uh a right this is how popular wallets are onboarding if you know you must have already been through the screen maybe a couple of times um nothing against metamask I personally use it but it's not friendly for a person who does not know about tech you know a normal user and a person who uses Twitter or telegram or all these social apps might not be um you know might not want to learn how to do all the secret recovery phrase where to put it why to write it down and they might not even write it down and yeah just throw it away and later when they have issues they will be uh looking around for ahead but nobody will able nobody will be able to help them and even other onboarding is done you still need native tokens results so that's another barrier for that user better to entry for that user right and as we move towards multi-chained apps the complexity will keep on increasing making the experience worse difficult to operate and these complexity will just not allow web3 to express the full potential and to the user that what it can achieve what it can let you achieve right and this is where account abstraction comes into play right it's a way to solve problems by allowing users to you know flexibly program their wallets with more security and create better user accounts um obviously the developer will do it but if we if we do this work then the user will have a much better user experience using web3 products cool um so a lot of people might know about the 4337 EIP it's not exactly account abstraction but um because account abstraction is actually a general concept A lot of people have been working on it before the ERC one came up so but it does give you some basic rules and standards that we can adopt to enable account abstraction at the application layer of ethereum some people have achieved on the protocol layer so um yeah how does it work you know we have four parties in this uh um ERC that that was proposed that one of them is account factories it helps you create smart accounts you can create your own account Factory based on the account Factory um the accounts should be created so if you want to use a different type of account then account apps account factories is what you want to build uh bundlers these are like validators or nodes who can process user operations now emphasis on the word user operations this is different from transactions because the structure is different but um they are similar to transactions but not exactly transactions entry point entry point is like the central place where all the user flow user operation flow takes place entry point one of the main objective of entry point is to make sure that the bundlers are paid for the work that they do NBA Master is an optional part but a very um useful one it helps you sponsor gasps for sounds so let's dive more into details I guess I talked about Factory that it lets you create different types of accounts if you want to create a different type of account account Factory is what you want to build wonders they monitor so they have a special mempool for operations they are always keeping an eye on those members and whenever user operations come in they process them they order them they make sure that the user operation is not valid they also check whether the user operation will lead to fees getting paid to the bundler or not because they are doing the work they need to get paid and entry point uh basically coordinates the entire process of the user operation going from the user to execution and one of the crucial roles it plays is that bundlers are paid for their work because vendors need to voluntarily participate in this system if there are no bundlers there are no there is no account abstraction pay masters pay masters are basically smart contracts which are already deployed on the blockchain they are willing to sponsor gas for the execution of user operation sponsorship does not always mean that it's free it's just an alternative method paymasters could be taking tokens in let's say they are taking token X and they are willing to pay the native token for you on your behalf but it could be you know it you can basically build any type of method to accept tokens as a paymaster and pay for the user um but yeah it could also be free it could be app specific as well so we will talk more about it so how do you build account abstraction dabs on cello right you can use a third web SDK right now that the basically is Right Now supported and it allows Uh custom account Factory so if you want to build custom accounts second Factory uh if you want to build custom pay masters that's also supported if you want to use their bundlers feel free you know third web is already running them up you can just send a transaction to the user operation to their bundler and uh it will go through I mean if it's valid and it also supports all popular connector types so you might be surprised that not all the sdks out there for account abstractions support rainbow kit wallet connect but third web does so yeah use that and transaction batching is also supported and what to build for the Bounty right here are some ideas you can build a social recovery based wallets combining both the bounties you know social connect and account abstraction and create a wallet which can be recovered using social connect you can create family accounts where you know there are multiple owners with different limits so and a wallet which is owned by the family where kids have a limit of let's say ten dollars or twenty dollars per day and the adults in the family have more limits and they can you know choose which apps they can use or not use Etc account where the transaction validation is done using fingerprints or face ID that is also possible I've seen already this uh being built and session based case and accounts so this is where you will create a special type of account which can be suitable for gaming or social media specific use cases where the social media app or the gaming app says you know I'm gonna take over for your account for the next 30 minutes so whatever action you are trying to take in my app I will I won't ask for your signature I will just do it myself so something like that and you can build custom baymasters um token Bay Masters for a good dollar good dollar is a Ubi protocol on cello so everybody gets a small amount of Ubi or you could say a good dollar every day maybe you can build a paymaster which uses those small amount of Ubi for paying gas fees since people are getting that every day they will always will they will always have something to pay for gas shaking reward tokens you know maybe you have a protocol whereas there's some staking mechanism and the reward tokens that they get can be used for gas fees um pretty simple or you could have referral based transaction sponsoring which is let's say you are just into production and you want uh user adoption then you tell you know if you bring five more people I will sponsor gas for you if you bring 10 more people I will sponsor more gas for you something like that you could have app specific sponsoring so maybe you are something like Ave where you have multiple apps on the blockchain and you want to say um if you want a free gas then you can get free gas if you're using Ave products you know um Ave or less protocol Etc so free gas for you if you're using any other products you can pay masters that can do that as well and use cello composer for a quick Head Start so it's a account abstraction with cello composer again only five steps scan this QR code you will get uh details about what those steps are we also have a physical copy you can get that one on your exit um and again to summarize we have three bounties uh in total five Bounty so if you are first place you get three thousand second place two thousand and third place 1000 usdc and two theme boundaries social connect and account abstraction 2000 uscc each so um I'm a I was a hacker I am a hacker and I will forever be a hacker so you want to Stack bounties right you're not going to just build on cello and be like okay I just built on cello just one Bounty no you're gonna Target other folks who are already here in the cello ecosystem and who are also part of the hackathon so build with chain link chain link uh price feeds are available on cello use them build something with safe on the cello Network use the graph protocol um if you're you know if you need any indexing in your app uh use hyperlane Bridges to make cross-contract calls across chain calls sorry and use metamask um Snaps are obviously you want to use wallet connect at some point you can use lit protocol if you need any encryption and you I highly recommend using quick node RPC endpoints but that's there and some other folks who are not part of the hackathon but I highly recommend that you use them you know valora third web massage Finance good dollar super fluid and two count protocol and that's it good luck to everyone here in the room who is hacking and find these faces and I know you might not be able to remember names but I hope you remember faces one of them is me Eric is here and there are a bunch of more Folks at the booth so if you have any questions just feel free to trouble us and yeah that's it if you have any questions please they did

Automatic transcript — names and jargon may be misspelled.