Back to All Episodes
Season 3Episode 102

LUKSO UP

February 10, 2024
34m
1 Guest

Listen Now

About This Episode

In this episode of DevNTell, Narb welcomes Yamen Mehri, a smart contract engineer at LUKSO, for his third appearance. The discussion centers on the innovation LUKSO is bringing to the Ethereum ecosystem by focusing on the standard level, particularly through LUKSO Standard Proposals (LSPs) and Universal Profiles (UPs). Yamen conducts a comparative demo between the popular MetaMask extension and the LUKSO UP browser extension, highlighting the superior user experience of Universal Profiles. These smart contract accounts allow users to attach information like profile pictures and names, which are stored on-chain, and offer more intuitive transaction interactions, even subsidizing gas fees for a seamless onboarding of non-technical users.

Key Takeaways

1

LUKSO aims to innovate at the standard level rather than just the network level, aiming to solve current problems in the Ethereum ecosystem like identity and asset management.

2

The LUKSO Universal Profile is a smart contract account that offers more flexibility and features than traditional Externally Owned Accounts (EOAs), such as on-chain profile information (name, picture) and improved transaction clarity.

3

MetaMask, as a gateway for traditional EOAs, often presents technical 'gibberish' like hex data and gas estimates that can be off-putting for non-technical users.

4

LUKSO's UP browser extension simplifies the user experience by subsidizing gas fees through relayers and providing a more visually descriptive interface for transactions like staking and NFT transfers.

5

Universal Profiles can be created for individuals, DAOs, businesses, or brands, facilitating a more human-readable and interconnected blockchain experience.

Featured Guest

YM

Yamen Mehri

from LUKSO Network

LUKSO Network

Episode Transcript

Narb

All right, we're live. GM, everybody. Uh, welcome to what's going to be another great DevNTell here. Uh, so if you're new, uh, DevNTell is a 30-minute window for builders to showcase something they're passionate about or have been working on in Web3. This is going to be an awesome project they've been working on, demonstrating and testing best practices, automation goodies, smart contracts, how to structure a project, etc. Basically, if you've got a passion for something, this is your opportunity to share it with your peers here at Developer DAO. And I am ecstatic to have back on, uh, Yamen Mehri for the third time. Uh, love having you on, Yamen Mehri, uh, from the LUKSO network. Uh, welcome, welcome.

Yamen Mehri

Thank you, thank you Narb. It's, uh, it's great to be with you and thanks for hosting.

Narb

My pleasure. And I guess for folks who, uh, didn't catch you the last couple of times, uh, do you want to give a brief introduction about yourself just to get them up to speed?

Yamen Mehri

Sure, sure. So, hello everyone, everyone watching. So, my name is Yamen Mehri, I'm a, I'm a smart contract engineer working at LUKSO. My background is in computer and communication network engineering and, uh, almost since three years I joined LUKSO as a smart contract engineer. And basically what I do is research the current problem in the Ethereum ecosystem and try to solve that on the standard level and then creating their smart contract implementation. Uh, and yeah, that's, that's basically what I do. And for the people who are not familiar with LUKSO, LUKSO is a layer one EVM chain. It uses proof of stake for the consensus layer and, uh, EVM for the execution layer. Um, and what we're building is like, what we're trying to do is like not forking Ethereum to create like just a new network for the sake of, like, just cloning another network. But it's more of like trying to innovate on the standard level, which is something not, uh, most of the, uh, like the current blockchain do. They try to innovate on the network level and, uh, sometimes they sacrifice decentralization or they sacrifice speed or, uh, you know, the, the, this is the blockchain trilemma. Um, so what we're trying to do is to keep the, the current, uh, network status as it is and try to innovate on the standard level. And, uh, yeah, since three years we're, uh, proposing what we call the LSPs, LUKSO Standard Proposals, um, they, they, these are standards that try to solve like identity problems, uh, some assets problem that we have, like problems related to the tokens, um, social recovery, so there's, there's a lot of stuff and I would probably group them inside the, uh, I would say the new creative economy category. So everything that is related to Metaverse, social media, creators, uh, yeah, stuff like that. So today I guess we're gonna, if you want to add something Narb, feel free to interrupt me.

Narb

Oh no, no, go for it. Uh, I was just gonna ask, uh, yeah, let's get right into it.

Yamen Mehri

Yeah, cool. So, uh, yeah last time we, uh, last two times because I've been here three times, uh, we did a presentation, so mainly it was presentations. Um, so if you want to check the theoretical part and know more about LUKSO and the standard how they work like, uh, in the low level like, uh, like phase, just, uh, go ahead and check the other two DevNTell, the old two DevNTell and if you want there is plenty of material online that you can check. But today we're going to do a demo for the browser extension which support the LSPs. So basically, um, we created, uh, we have what we call universal profile and it's a smart contract account, um, and we have a browser extension that support it, uh, to interact with different dApps. So I'm going to do a quick, uh, comparison with, uh, a browser extension, uh, probably we can use MetaMask. I prepared MetaMask, but yeah let's, uh, let's see. You can see my screen, right?

Narb

Yes, uh, we're in StreamYard at the moment. Yeah.

Yamen Mehri

Yeah, okay, cool. So what I'm going to do is, uh, go to MetaMask. So if someone wants to get onboarded and like use any dApp, he needs to have a browser extension that hold his account to interact on the blockchain. And one of the most used browser extension, uh, is MetaMask. So if you want to, uh, interact with the blockchain, first you go to this webpage and, uh, you install MetaMask, you'll be forwarded to then you will have it installed, I just installed it, then you can agree and create a new wallet. For a non-technical guy, it's really like for here it's good, so I need to set a password, this is something that people are used to it, but we can see when I start to, uh, so it's they they need to know about, uh, the seed phrase. So if I press the recommended button and I show you my, uh, secret recovery phrase but don't show it to anyone, uh, they'll get this, uh, this screen. And then they need to know what is like a secret phrase and they need to write it in like, uh, in a place which is secure. So this is really like bad user experience if we're trying to onboard non-technical people to the space. And now I need to copy it to the, uh, clipboard, next, um, I need to paste it probably here and then obviously you should not do that, but we're just trying to showcase how bad the current user experience is. Okay and then they need to preserve this, uh, secret seed phrase somewhere safe. And then they will be here, so I need to go to got it, try maybe not, okay and then so this is my account on the blockchain. If I see here like I see, uh, this address, I see zero eth and then, uh, it's a simple dashboard. But let's say I want to interact with, uh, a dApp. Uh, I'm not sure with which dApp we can interact since I don't have any funds, but, um, let's probably try to go to the mainnet LUKSO explorer. We just want to try to simulate some transaction. Obviously people won't go to the block explorer, but let's try to just pick a verified contract and simulate some transaction and see what people will see when they interact with a simple dApp. Um, let's try to simulate this function. Okay, I'm not connected, so I need to connect my wallet, I need to press MetaMask and then I'll need to connect. I'll see this, uh, 0x44 and probably this is my account and then I'll do next, connect and then, uh, it will be connected. So still what I see in MetaMask is just this address, this address and the balance. So I try to click pause any any function really, we're just trying to see what people will see. So it's gonna forward me to this, uh, to this screen. So obviously it's gonna fail because it's a, it's a function that I'm not able to call. But let's just focus on what the user will see. Like if I'm interacting with, uh, with OpenSea to transfer like an NFT or like trying to register my ENS name. What's going to happen is that I'll see a bunch of gibberish here and my account. I will not see any, uh, profile picture or like name indicating that it's me. And what I'm going to see is just like estimated fee, uh, amount gas fees like people will need to know about more concept than, uh, we expect them to know, so they need to familiarize themselves with gas, what's gas and if they press here it's hex. Uh, so obviously it's it's probably it's good for us because we've we've been in the space and we know what's that but we should not expect non-technical people like my brother or like my father to know how to install MetaMask and interact with a dApp. So this is MetaMask and it's actually not the not the problem of MetaMask, it's the problem of the underlying tools and standards that we use. For instance, uh, MetaMask is a browser that lets you control your account and the type of account present here is an externally owned account. So this is a type of account where you cannot attach any information to it. You cannot reference your address, um, uh, sorry, you cannot reference your name, you cannot attach like a description or like a profile picture. So on the blockchain, using this type of account you're just a bunch of hex and you you you can't be identified with like your name or profile picture. So this is not really the problem of MetaMask but rather the account that we use and that tell us more about like the current tools and standards that we use are super like technical and low-level and if we expect, uh, the non-technical people to be onboarded to the blockchain, then we need to upgrade our tools and use better standard. So what we what we've what we've been doing, uh, in LUKSO is working on smart contract accounts, like this is really one one side of it, the smart contract account. We call the smart contract, uh, universal profile, uh, yeah, it's it's called universal profile and it's basically a smart contract account, you can learn here about it like this is, uh, a bit technical I don't expect, uh, people to go here but like if you want to familiarize if you're technical and you want to familiarize yourself with the universal profile and see the difference, you can go here. So basically it has more advantage than the current externally owned account, basically you can execute several operations, uh, than, uh, what the EOA lets you to do. You can attach information, this is something that you cannot do with an externally owned account. So you can attach your name, a profile picture, you can add some description, some tags like reference your, uh, Twitter, Instagram, anything really. And you have bunch of features that we, uh, can discuss also when we see the, uh, browser extension. So let's see the the browser extension that support this type of account. So if you want to, uh, check the extension you would go to docs.lukso.tech, we'll have this link in the description of the YouTube video. So you'll go to this link and then you can press on this button, UP browser extension and then it's a, uh, it's a page that tell you where to download the browser extension from. We'll go to the to the App Store, make sure it's lukso.network, so it's verified. Uh, and then you will add it to Chrome. I already have it installed, uh, but I didn't set it up yet, so directly when you install it, you will just have this, uh, page open. So it it will tell you to pin the browser extension, so we will pin it. So the idea here is that smart contracts to be deployed on a network they cost, uh, real money. So they cost the native token of the blockchain. So what LUKSO is doing is subsidizing the the profile creation and giving free quota to people so they can interact on the block on the blockchain in a free way. So obviously it's a it's a quota so you have a like a limited amount of gas to use and like it reset each month. And probably later there will be like different kind of relayers, uh, that will exist and probably have their own business model like a subscription that you pay using your credit card and then you will able to interact on the blockchain. So, uh, we're going to do a demo how to, uh, install the profile and just how to interact with, uh, different dApps and see, uh, how's the user experience. So we're start with create a profile and then, uh, by creating a universal profile you'll benefit from free transaction up to 20 million gas per month, six free profiles and an easy profile recovery. Amazing, let's go. So we'll need to validate your Twitter account and your Discord account, but obviously these will kept private. And the reason why we do that is to make sure you are like a human and not a bot because if we don't do that, uh, there will be a lot of bot creating smart contract account and they will just drain our, uh, internal relayer balance. So we need to make sure that everyone is a is a human, uh, obviously, uh, but like in terms of like the smart contract itself you can deploy it on your own and pay for your, uh, cost of deployment and then you don't need to validate through X and Discord. Uh, and this option probably will be available. So I'm going to press validate X, it's I already logged in before and then I will validate my Discord, also do the same. Okay now I'm validated, I can continue, I must agree to the terms and condition. I can, uh, I can stay anonymous by not putting any name and I can also set a name, so I will say Yamen-devntell. This is my username and then I'll need to I can also add a picture, so I'll do that. Uh, I really can't, okay, downloads probably. Okay we'll use this cute chill whale image. Probably it's going to load in few second, okay cool, uh, I guess that's my NFT also, so add image. You can obviously add a background. And then it's, okay, so then we'll need to create you the universal profile address, the browser extension will pop up, it will say join on mainnet. I need to agree to the terms and condition, I need to set a password, so it's like any other browser extension. And then we have a factory that let you, uh, choose your identicon, uh, so now we have like the identicon is the one that, uh, make your profile more like, uh, so if if someone deploy, uh, profile with the same name, uh, obviously you will have the same name but like you will get different differentiated from the identicon. So you can, uh, just choose different and then your address will change. Probably choose a cute identicon, we'll choose this yellow and pink and then we'll confirm. And then we'll go back to so then they'll tell me to review if I want that, I say got it, create my profile. And then obviously this is going to trigger a chain of transaction, one for the deployment, one for setting data to your profile and to set permissions. So this is a different standard that we also use in combination with a universal profile and it's a key manager standard and that lets you, uh, allow like several people to interact through the through your profile with different permission. Obviously you can choose to set up a recovery method using your email, uh, some people don't prefer that if they see it as like too centralized and, uh, so you can do it through your Google account, email. If you prefer that you can do it, if not you are not forced to do it because you already have your, uh, profile created. So here I can see that my profile is created, I have my, uh, profile image here and just everything here is on chain. So like it's not like a reference to to something, uh, off chain, everything is stored inside the smart contract. So I know I'm aware of time, so I'll try to connect with several dApps and, uh, yeah, see how how the experience will be, just in short here you have different, uh, different addresses that have control in your profile. So UP receiver is like a contract that will register the addresses of the assets once you receive, so they are easily easily detectable in your in your profile. And the browser extension is like the the the address of this browser extension. You can go here, you can see okay this address has the permission to change the profile data, to sign, to encrypt, decrypt, also like to deploy other smart contract, execute, etc. So obviously don't mess with that, you can fund your controller balance if you want and also here is a wallet that will show you all the assets that you own. Uh, probably I need to, ah because it's a new thing, yeah, I'll probably need to. So the cool thing is that you can search by so this is mainnet, yeah. I can search by name, I'm not sure, probably we have caching and it didn't detect the profile yet, it's fine. So this is my original, uh, profile, I'm showing you my assets, so this is me, everything is stored on chain, I own these assets and why it's, uh, easy to to display these assets is not because it rely on a on an API or something, currently it does not rely on anything besides the smart contract itself. So these, uh, NFT, the addresses of these NFT are stored within my smart contract which make it, uh, easy to detect what I have. How it works on Ethereum, uh, or like the Ethereum ecosystem with ERC721 is that you're not notified when you register an asset or like when you transfer it, so you have no clue what you own and you don't and also you you own it with your externally owned account. So using a profile you can, uh, know what assets you have, you can also react on them, say okay I want to, uh, reject all the assets and then you will decide everyone who tries to, uh, transfer an asset to you, uh, it will fail. So I'm going to do a quick thing where we try to connect with a dApp, so Liquid is a is a staking platform on the LUKSO blockchain. Uh, so probably I'll just show you how you can, uh, so how like the user experience when you want to trigger a transaction. So let's say I want to stake two Lux, uh, like this is really just to showcase like the the interaction on the browser extension, uh, whatever the dApp is. So then it's going to load and it's going to show me, this is my profile, this is my image and then I'm I don't have any funds. So I just created my profile and I don't have any funds and I can interact on the blockchain and that's because, uh, I'm using the relayer. Like this is something provided by LUKSO and anyone can provide, uh, to subsidize gas fee. So it shows that, okay, you're transferring two Lux. And this is I would say this is really a great user experience and we don't have something similar on the blockchain. Obviously if you're a dev and you want to know what's happening you can go to the advanced view, check Lux mainnet, the to address, value, gas and whatever these stuff and then you can long click to confirm. And then it will say transaction in progress and you can track it here. So it will show you that you interacted with that and then, uh, it's going to work on the on the platform. I'll also show probably quick, uh, what was the name? Yeah, universal page. So it's a it's an NFT marketplace, uh, they launched one month ago and it's it's really great. You have several collections here, there there is some free drops, so if you go to drops you can see, uh, what you can mint now for the price and what has been sold out. So I'll try to to buy some asset, I can go to listing and I want to try to buy some asset. Okay, let's try to buy this one, uh, I hope I have enough Lux in my profile. I mean this is my main profile and I have like a balance here, uh, so I'll try to buy this one and I'll press buy, I'll sign in with my universal profile and it's going to take a second. It's loading, but I already I'm already signed in, so it's a it's a probably an issue. Let me let me try to refresh. Do it this way, okay maybe there is a there is a problem on my end. Let me try to disconnect. Okay listing, we want to buy this one. Okay apparently there is a there is something I'm going to try something else. Okay, let's do this one. Ah, probably probably it's a I can do sign, ah I don't know, I have no clue. Probably I can show you the wallet and how you can transfer Lux to anyone. So this is me, let's say I want to transfer Lux to this profile here which I created. Let's take the address, I mean we can search by name, uh, but I will connect. I'm going to choose my profile and then I will go here, okay this is me, no this is me, uh, and I have here the send button and even I can send some asset. So let's try to send this really cute and amazing NFT, so I'm going to search for Yamen, it's still probably it's a caching issue that's why it didn't detect my profile yet but I can paste the address. Hmm, let me check, did I create that on testnet? I hope not. Oh it's mainnet, so I'm going to take this address, go here. Yeah, probably it's a caching issue and it's not picking it up yet. But the idea is that you can just go to send and just try something and you, uh, let's try to send to who, I don't know, Hugo. Let's try, uh, Hugo, let's, if I want to send to Hugo, I'll just try to do one Lux send one Lux and it will show his profile picture and then it will pop up here and then you can see it's send one Lux. I also want to do it to the NFT so you guys can see the NFT view. Obviously I rejected the request, I can do here. It shows so everything here is stored within the smart contract and it reference the creators because also the address of the creator is written inside the smart contract. So this this view you can see it on any website that, uh, go within the standard. So let's say if wallet.universalprofile.cloud is down, we don't need to rely on it because it's a standard thing and every marketplace can do it. So I'm going to try to send collectible, I'm going to do Hugo and I'll try to send this asset and then you will see the the NFT view. It's going to let you so it's going to say it's an NFT transfer, it's going to detect that it's an NFT and it's going to show like the token ID and stuff. It's going to say it's an LSP7 token standard, this is the equivalent of, uh, ERC20 but obviously the the better version and it's the contract address. And if you want to see the advanced view you can always see it with the payload. So I'm not going to send my asset, uh, I'm happy to send it to Hugo but like, uh, probably a different asset. And yeah that's that's really like the the user experience when you create a universal profile. And universal profile is not just for like a user, you can create a universal profile for your DAO, for, uh, your business, for for like your brand. And like I want to like talk to especially the the NFT people, like if you want to launch an NFT on other network, I would suggest like probably do it on LUKSO and this is what most of the people are doing now, like they're just launching on LUKSO because the user experience is better and like the users don't need to acquire Lux, go to an exchange, uh, do KYC and then send it, preserve a seed phrase, like everyone now saw how easy it is to like set up a universal profile and, uh, use it. So yeah, I would highly suggest anyone to build on LUKSO, you can know more details if you go to docs.lukso.tech. Uh, if you're a dApp developer we have a section for dApp developers, it's really, it's really straightforward like how you first connect to a universal profile, the code. And if you want to learn more about the standard, there's plenty of material online, there's a talk from Fabian which is really interesting and really a lot of pages that explain how this work under the hood. Uh, I guess we don't have enough time. I'll leave these two minute probably if you have Narb any question or someone from the, uh, from the viewers.

Narb

Yeah, yeah, certainly. Uh, yeah this was awesome, thank you so much Yamen. Uh, gang if, uh, for those of you watching if you have a if you have any questions, uh, please ask them in the comments and I will ask on your behalf. Uh, I guess from my side, uh, the, uh, consistent, uh, refilling of gas, uh, the, uh, I guess how much does a typical transaction cost on LUKSO compared and and how does it compare to, uh, other, uh, L1s? Is it just as, uh, expensive, uh, or is it cheaper?

Yamen Mehri

Great question. So that really so we didn't modify something on the network level. We just tweaked few stuff like in terms of like the, uh, maximum, uh, gas per block but these are really minimum. Uh, and it's really depend on the activity on the network. If you don't have much activity, it's going to be like cheap. Like I can we can see actually the so if we go to this transaction and we go to advanced view, we can see the gas used and it's really for like a transaction to stake which involve like logic, it's 188k and the gas price is three like almost three Gwei. On mainnet, on Ethereum mainnet it's around 30, 40 like it depend and the transaction fee costed 0.01, uh, dollars. Uh, but recently we had a we had a like a an NFT from, uh, from the lead Geth developer, it's called Burnt Pix, uh, I'm not sure where we can see it. And, uh, like this NFT require a lot of like by the lead Geth developer and it require a lot of gas to mint and to refine because everything that you see here is generated and refined on-chain. So the more that you pay in gas, it's going to look better. Obviously if you go here you're going to see like some are really really amazing. Uh, and for them to be that amazing it means that the network will be really packed and there will be a lot of transaction, uh, which made the network almost as, uh, like not as expensive as Ethereum but like the the transaction you see here like I like this is really amazing. Like everything here you see it's not all of this is generated on chain. And to do that, it's, uh, you need to pay more gas so you can get these iteration. And that made the the the gas fee go up but given the Lux price is low, uh, it was really not that much. So, uh, the fees are still low, uh, because I don't think there's much activity as, uh, Ethereum but also like since we will have relayer that will affect I would say it's going to affect the gas price because logically, uh, a relayer you can say to the relayer okay send this transaction but not now when the, uh, when the network have less activity. And this is going to create some balance and this is going to like create, uh, really like a like a way where, uh, when gas fees are low the the transaction will be sent and in this way I think it's going to be less of a problem for people. And people will not care since they can like get, uh, like subscribe to a relayer using a credit card they they won't care I would say. But it you saw it's not expensive a transaction costs 0.01, uh, dollar. If that answer your question.

Narb

Pretty good, that's really good, that's really good. Uh, yes I see, uh, we are a little over time which is fine, uh, but I guess, uh, final question for me is, uh, obviously the best place for people to start, uh, playing around, uh, would be to install the Chrome extension which we will link in the description as well as, uh, catching up on the technical stuff if you're interested in the docs. But if people have questions for you personally, uh, or, uh, any other LUKSO related questions, uh, what's the best way to get in contact with you?

Yamen Mehri

I would say the best place to get in contact is to go to the also go to docs.lukso.tech, there's a link to the Discord, I would say some, yeah, it's here. You go and join our Discord, uh, and then there's a specific channels for like developers, specific channels for the, uh, for the community, creators, designer, and also you can just, uh, post the the question on Twitter and we're sure the the LUKSO community will be welcoming and answer all of your question.

Narb

Excellent. Uh, yeah thank you so much again Yamen for coming on, uh, this was a great DevNTell and, uh, really, uh, it's really awesome to see, uh, LUKSO trying to combat this, uh, developer-centric, uh, uh, world we have so far in crypto and Web3. So really looking forward to seeing how this continues to develop.

Yamen Mehri

Exactly, yeah looking forward to it. And thank you again Narb for hosting.

Narb

My pleasure. Uh, and before everybody leaves, I just want to share the QR code for, uh, claiming your NFT for being an attendee today. So what you'll want to do is scan this QR code with your regular QR code scanner and, uh, fill out the form and you'll be airdropped a NFT for being an attendee on DevNTell today within the next handful of days. Uh, so you'll have a, let's call it hour and a half from now, uh, to be able to claim this, uh, before the form closes. So definitely you'll want to get on, uh, on that if you're interested in claiming one of these. And with that, I just want to wish everybody a very happy Friday, happy weekend and we'll catch you back here on DevNTell next week. All right, all. See you.

Yamen Mehri

Happy weekend everyone, bye bye.

Listen On

Share This Episode

Share on X

Watch Episodes Live!

Subscribe to our event calendar and never miss a live episode.

View Event Calendar