<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[DROPPS - Medium]]></title>
        <description><![CDATA[We build dApps and protocols that leverage emerging market opportunities, making use of the tools and standards created by LUKSO - Medium]]></description>
        <link>https://medium.com/dropps?source=rss----b0b808bc7794---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>DROPPS - Medium</title>
            <link>https://medium.com/dropps?source=rss----b0b808bc7794---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 17:51:55 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/dropps" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Enter LUKSO: mainnet and staking]]></title>
            <link>https://medium.com/dropps/enter-lukso-mainnet-and-staking-62e953006bf1?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/62e953006bf1</guid>
            <category><![CDATA[validator-node]]></category>
            <category><![CDATA[consensus-protocol]]></category>
            <category><![CDATA[lukso]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[proof-of-stake]]></category>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Wed, 07 Jun 2023 20:45:59 GMT</pubDate>
            <atom:updated>2023-11-03T17:00:37.431Z</atom:updated>
            <content:encoded><![CDATA[<h4>In this article we’ll go over LUKSO’s Proof-of-Stake consensus protocol, in a short but intuitive way so you can explain it to your friends and family.</h4><p><em>(written by </em><a href="https://medium.com/u/9ff9fc4f6de3"><em>António Pedro Silva</em></a><em>)</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2sMcg14IAkqVujwH.jpg" /><figcaption>The House of Commons, in the UK, is an elected body consisting of 650 individuals, known as members of Parliament</figcaption></figure><h3>Intro</h3><p>As mentioned, we will talk Proof-of-Stake in the context of the LUKSO blockchain, which uses the LYX token to fuel the protocol. However, it’s important to keep in mind that LUKSO is an EVM-compatible blockchain. For that reason, everything in this article also applies to Ethereum.</p><p>Like its predecessor Proof-of-Work, Proof-of-Stake is a <a href="https://en.wikipedia.org/wiki/Consensus_(computer_science)#:~:text=The%20consensus%20problem%20is%20a,process%20is%20given%20a%20vote).">consensus protocol</a>. It helps a group of people act together and agree on making the same decisions, without previously trusting each other or any central authority. <strong>Practically, the goal is to establish one single, acknowledged version of the Blockchain and make sure nobody is cheating on it.</strong></p><p><strong><em>The only trust assumption in Proof-of-Stake is that participants value their LYX and don’t want to lose it.</em></strong></p><h3>Validators</h3><p>Think of <strong>one validator as the right to one chair </strong>in the consensus parliament (image above). It’s not an entity, and it’s not a computer. You gain the right to this chair by lending 32 LYX to the protocol, and if you behave against the protocol rules, you lose your chair and your money. If you don’t, your chair is yours until you want to quit the political life.</p><p>In order to participate (vote) as member of parliament, you need a computer program. The same program can handle many votes at the same time; <strong>each vote corresponds to one validator.</strong> In other words, one program can manage many chairs in the parliament. <strong>This program is called the client,</strong> and <strong>the machine where it runs is called the node</strong>.</p><p>By now you might be wondering: <strong>what’s in it for me</strong>, to make me want to acquire validator chairs? Well, you get paid for your duties in parliament.</p><p>When you stake through entities like exchanges &amp; staking pools, you are delegating your stake, and subsequently your vote, to a<strong> third party provider who takes care of voting for you</strong>. You trust it will always vote in time and according to the rules, so you split the reward with them. <strong>Akin to how politics work IRL, right?</strong> Most of us are simply too busy with our daily duties and lack the time to be active participants within the political sphere, so we choose the person who (we believe) best reflects our point of view and delegate our voting power as citizens.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/523/0*6-WIvs1aCHudu9qC.png" /><figcaption>Staking through a staking pool is as simple as transferring your funds to the pool. You will get tokens in return that you can redeem at any time. Image adapted from <a href="https://stake.lido.fi/">https://stake.lido.fi/</a>.</figcaption></figure><p>The <strong>alternative to staking pools is to have a machine running 24/7</strong>, and install client software on it to manage your validators. In doing so you would become a node in the LUKSO network!🥇</p><p>That can be more profitable in the long run, and it is definitely better for decentralization, but there are risks involved. Keep reading, and you’ll find out.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*d_avy9eSCbZCKUFz.jpg" /><figcaption>Running a node requires you to keep your validators voting 24/7. Monitoring and visualization tools like <a href="https://grafana.com/docs/grafana/latest/getting-started/get-started-grafana-prometheus/">Grafana and Prometheus</a> help ensure everything is running smoothly.</figcaption></figure><p>Apparently, the consensus parliament would work the same way just by having free chairs for everyone and inviting users to freely participate. So why do we need 32 LYX for each validator chair? <strong>Because there needs to be something at stake.</strong> Otherwise, participants might get lazy or, even worse, maliciously vote for incorrect blocks that would spend or mint money out of thin air.</p><p>At this point, <strong>remember what the consensus parliament is for:</strong> globally deciding the content of the next page of the notebook. In other words, the next block in the blockchain. This includes validating the transactions that go in and accepting that some are postponed to the next block.</p><h3>Penalties and Slashing</h3><p>The whole idea behind human-participant networks is that humans will rationally choose whatever option is more profitable to them. For this reason, Proof-of-Stake relies on the fact that it is more profitable to collect rewards (from being a good actor) than to try and cheat the network for a potential “bounty”. If it ever stops being like that, actors will switch to acting maliciously and corrupt the network. All in all, there are no good guys, just <strong>strong enough incentives.</strong></p><p>In the case of Proof-of-Stake<strong>, incentives go both ways: </strong>members of parliament get paid for doing their job, and get penalized when they don’t. For example, if a validator you control misses a vote, it gets penalized. The same happens if the vote is not valid. <strong>Penalties are small fines</strong> that can be easily recovered. <strong>They are applied to mistakes that can happen by accident, </strong>for example, in the presence of high network latency.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MhII25CYjzZ--BCM" /><figcaption>Missed attestations, or votes, are the most common type of penalty in the consensus protocol. It happens mostly due to network latency or client crashes, making the validator late for the vote.</figcaption></figure><p><strong>Slashing</strong> is a more severe type of penalty, applied when there’s a high likelihood <strong>the validator deviated from the rules on purpose</strong>.</p><p>One such event is called a double attestation, or double vote. It happens when a validator votes twice for different blocks in the same voting round. This behavior is not only extremely dangerous to the protocol, but it can be highly profitable to the offenders if done by a large enough number of validators. That’s why punishment must at least match the potential profit of acting maliciously.</p><h3>Liquid Staking</h3><p>Keeping participants’ funds locked inside a ‘safe’ in order to be able to punish them works pretty well, but is economically inefficient. This collateralized approach to consensus creates the threat of a loss, but prevents honest participants from utilizing their money to fuel automated market makers, lending protocols, and other economic activities, that would generate interest.</p><p>Liquid staking was created to tackle this issue. A new middleman entered the scene to collect your locked funds and give you a receipt (<a href="https://www.investopedia.com/terms/i/iou.asp">proof of debt</a>) in return. The idea is that you could redeem this receipt at any time and get your money back. The middleman’s role was taken up by “staking pools”, <strong>using smart contracts to seal the pact in a trustless way.</strong> In exchange for this service, staking pools keep a small portion of your staking rewards.</p><p>Instead of depositing their ETH directly in the Proof-of-Stake protocol, users deposit their ETH with Staking Providers, who then proceed to deposit it within the Proof-of-Stake protocol. <a href="https://www.okx.com/learn/what-is-liquid-staking">Source</a>.</p><p><em>Proofs-of-debt </em>became known as <a href="https://www.coingecko.com/learn/what-is-liquid-staking-liquid-staked-derivatives-you-need-to-know">Liquid Staking Derivatives</a> and were represented by tokens, with each Staking Pool issuing its own. For example, LIDO issued stETH in Ethereum. It looks like magic, but in fact, there are risks to it. Liquid Staking might seem like the 7th wonder of Crypto Finance, but the underlying value of the Staking Derivative token<strong> can fall apart</strong> if <strong>the Validators managed by the</strong> <strong>Staking Pool get slashed.</strong></p><h3>Summing up</h3><p>In this article, we presented an overview of the Proof of Stake protocol, and slightly touched on some of its intricacies. Staking can be a very profitable and safe investment and a way to contribute to a decentralized network. <strong>If its risks are understood, they can be mitigated</strong>, and participants can choose what’s best for them: either staking through a third party provider or setting up their own infrastructure.</p><p>Here at <a href="https://dropps.io/">DROPPS</a> we’re working hard on developing technological infrastructure for the <a href="https://lukso.network/">LUKSO</a> blockchain, so feel free to reach out via <a href="https://twitter.com/dropps_io">Twitter</a> or <a href="https://discord.com/invite/nzn3BGHyYH">Discord</a> and let us know how we can help!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=62e953006bf1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/enter-lukso-mainnet-and-staking-62e953006bf1">Enter LUKSO: mainnet and staking</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[UNIVERSAL PROFILES — “Visual”]]></title>
            <link>https://medium.com/dropps/universal-profiles-visual-a31f63c19377?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/a31f63c19377</guid>
            <category><![CDATA[lukso]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[nft]]></category>
            <category><![CDATA[lukso-token]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Wed, 29 Mar 2023 18:02:18 GMT</pubDate>
            <atom:updated>2023-11-03T17:01:21.049Z</atom:updated>
            <content:encoded><![CDATA[<h3>LUKSO WEBSITE TAGS — “Visual”</h3><h4>This post is part of a series where DROPPS breaks down the meaning of the keywords in the <a href="https://lukso.network/">LUKSO website</a> section about Universal Profiles, NFTs and Cultural Currencies.</h4><p><em>(written by </em><a href="https://medium.com/u/9ff9fc4f6de3"><em>António Pedro Silva</em></a><em>)</em></p><h4>This time, we will analyze what’s behind the “Visual” keyword</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/868/1*RZxRfc32T-m8hTPUxS1TwA.png" /></figure><h3>Intro</h3><p>Identity in the virtual world evolved from simple username/password pairs to multimedia, interconnected profiles filled with rich context about the human being or entity behind. <strong>Most users are not willing to give up this kind of interaction in this new digital era we’re stepping into.</strong> That’s why Web3 accounts must preserve the Web2 look and feel, enabling a smoother and less overwhelming transition for non-technical users.</p><p>A big part of this look and feel is related to the visual part of one’s identity. It makes us more memorable and more easily recognized. It can be used to make a statement, describe yourself, follow trends, or affirm one’s belonging to a certain tribe (like displaying an NFT you own as your profile picture on social media).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9SK8zdyZQg7gPKnrLLOiWw.png" /><figcaption><a href="https://sensoriumxr.com/articles/what-are-profile-picture-nfts">Profile Picture NFTs (PFPs)</a> became a trend in the NFT artworld</figcaption></figure><h3>How “Visual” is accomplished on Universal Profiles</h3><p>Pictures are part of what’s called the metadata of a Universal Profile (UP). They do not belong to the code that gives the UP its functionality and they are not meant to be interpreted by machines. Instead, they describe the UP to the eyes of other human beings.</p><p>You might be wandering if pictures are stored on the LUKSO blockchain. <strong>They are not</strong>. Only a simple reference to them is saved on your UP’s storage. The image itself is stored somewhere on the internet. It can even be saved on a cloud provider like Google Drive because, under normal circumstances, there’s no need for decentralization, as it’s a personal piece of data about yourself.</p><p>In order for applications to properly read your profile and be able to present it in an appealing way, it’s important to standardize how data will be saved in the Smart Contract that represents your UP. Imagine every single user had a different way of storing their metadata onto their UP. It would be a nightmare for dApp developers to build a program to navigate all the profiles and extract their respective metadata. For this reason, LUKSO developed standards. Most profiles possess different content, but it should be structured and named the same. It’s like a box of chocolates, where all the chocolates fit into the spaces in the box, but they can have different flavours. The standard that defines the data keys and the structure for Universal Profile metadata is the <a href="https://docs.lukso.tech/standards/universal-profile/lsp3-universal-profile-metadata/">LSP3 — Universal Profile Metadata</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1ceXCFaqxU981ADpfdSSQg.png" /><figcaption><a href="https://lookso.io/Profile/0x35DdB594d69bF97f5DC66D9112f2D638A0f6a6c7">LOOKSO</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wk1A1hIL65WVl1TehpzKGQ.png" /><figcaption><a href="https://universalpage.dev/profiles/0x35DdB594d69bF97f5DC66D9112f2D638A0f6a6c7">Universal Page</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N45V5N3w9IZn8tgejXEBrg.png" /><figcaption><a href="https://el-diar.io/profile/0x35DdB594d69bF97f5DC66D9112f2D638A0f6a6c7">El Diario</a></figcaption></figure><p>The way these apps present profiles is just slightly different. Under the hood they all follow the LSP3 standard to fetch information.</p><h3>Exercise: Retrieving a profile picture manually</h3><p>Let’s use the <a href="https://erc725-inspect.lukso.tech/getData">Lukso Inspect Tool</a> to retrieve a profile picture manually and, in the process, get a better understanding of the Universal Profile standard. In this example we will stick to the MiauMiau profile above, with address 0x35DdB594d69bF97f5DC66D9112f2D638A0f6a6c7.</p><ol><li>First of all, let’s go to the <a href="https://docs.lukso.tech/standards/universal-profile/lsp3-universal-profile-metadata">standard’s page</a> and look for the data key which corresponds to the Universal Profile Metadata file:</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/765/0*xN1zXXDhDkhZaMCv.png" /></figure><p>“The value attached to this data key is a <a href="https://docs.lukso.tech/standards/generic-standards/lsp2-json-schema">JSONURL-encoded value</a>. It represents a reference to a <a href="https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-3-UniversalProfile-Metadata.md#lsp3profile">JSON file that describes the Universal Profile MetaData</a>. The file can be stored on a centralized or decentralized storage.”</p><p>2. Now we use the <a href="https://erc725-inspect.lukso.tech/getData">Inspect Tool</a> to retrieve the encoded value of the URL where all the juicy information about the profile is written.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/696/0*hHijwz3Qbshax5rH.png" /></figure><p>The value on the bottom is the encoded URL</p><p>3. We can now decode the result and obtain a URL to the file containing the metadata. Select the “LSP2 Coder” tab from the Inspect Tool menu:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/901/0*TnzWbHQDVO2i2ZzE.png" /></figure><p>Select value type JSON URL and enter the value obtained on step 2:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/642/0*zQWA452PSlPKPb2J.png" /><figcaption>The IPFS identifier is what we’re looking for</figcaption></figure><p>4. This profile’s metadata file is stored on the IPFS network. We know this because we got an IPFS identifier after decoding. We need to use an IPFS gateway to access the content. In this case, we used LUKSO’s own gateway.</p><p>The resulting URL is: <a href="https://2eff.lukso.dev/ipfs/QmYFpqkvprFEcHDkpgWSL3NUtvV8JBBFGcm7FjomoVWhgG">https://2eff.lukso.dev/ipfs/QmYFpqkvprFEcHDkpgWSL3NUtvV8JBBFGcm7FjomoVWhgG</a>.</p><p>This URL opens window with the text in the file. Some browsers won’t display it in a pretty way so let’s copy that content over to a JSON formatter to make it more readable:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/798/0*sERUGotzipRxiUbo.png" /><figcaption>An example of a Universal Profile’s metadata file</figcaption></figure><p>5. Great! You can see all the metadata components here. They are structured nicely according to the LSP3 standard: <em>name</em>, <em>description</em>, <em>tags</em>, and, of course, the <em>profile image</em>. If you look carefully, you will notice there are several. <strong>This is because they are stored in different sizes.</strong> The responsability to make sure the picture is up-to-date and coherent across sizes lies with the applications with permissions to change the profile’s metadata.</p><p>Finally, we repeat the process in step 4 to follow an IPFS identifier and retrieve its content. Let’s choose the image with 340px width, identified by QmYQxnphG8PqJm5N558neVsSvddK2yKtpDqpGHy8FRtn43. The whole URL with the prepended gateway becomes: <a href="https://2eff.lukso.dev/ipfs/QmYQxnphG8PqJm5N558neVsSvddK2yKtpDqpGHy8FRtn43">https://2eff.lukso.dev/ipfs/QmYQxnphG8PqJm5N558neVsSvddK2yKtpDqpGHy8FRtn43</a></p><p>And the result:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/497/0*uIPZ_rAUj1n9Dua7" /><figcaption>Here’s the profile picture</figcaption></figure><h3>A world of possibilities</h3><p>The idea behind the <a href="https://docs.lukso.tech/standards/lsp-background/erc725/">ERC75 Generic Data Key/Value Store</a> is <em>“</em><strong><em>standardizing a mapping of data keys to data values to store data dynamically and to have the ability to add or remove data across time without the need to redeploy the contract”</em></strong><em>.</em></p><p>LSP3 is one of the standards that creates pairs of Data Keys and Values to organize the Profile Metadata part of the Universal Profile’s storage.</p><p>Virtually, if it can be put into a file, it can be displayed in your Universal Profile. For example, if, in the near future, profile pictures become obsolote and are replaced by animations, 3D Avatars, or even something more vanguardist, <strong>Universal Profiles will continue to provide a solid ground to host your digital self</strong>. All that’s needed is to update the standards and add the new data to the profile. No corporations involved, just external protocols acting through the code deployed into the blockchain. Granting the protocol permission to act on your profile is akin to handing over control of a small part of your digital identity. <em>Every change that happens is forever recorded and publicly available on blockchain explorers</em>.</p><p>On our next article, we will dive into what makes your Universal Profile <strong>‘smart’.</strong> There are mind blowing possibilities for using smart contracts as accounts in the Web3 world and we’ll go through some of them in detail.</p><p>Stay tuned and see you on Universal Profiles — Smart!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a31f63c19377" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/universal-profiles-visual-a31f63c19377">UNIVERSAL PROFILES — “Visual”</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LUKSO WEBSITE TAGS — Token icons]]></title>
            <link>https://medium.com/dropps/lukso-website-tags-token-icons-e34783ad2580?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/e34783ad2580</guid>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Tue, 07 Mar 2023 12:05:58 GMT</pubDate>
            <atom:updated>2023-11-19T16:41:54.513Z</atom:updated>
            <content:encoded><![CDATA[<h3>LUKSO — Token icons</h3><h4>This post is part of a series where DROPPS breaks down the meaning of the keywords in the LUKSO website section about Universal Profiles, NFTs and Cultural Currencies.</h4><p><em>(written by </em><a href="https://medium.com/u/9ff9fc4f6de3"><em>António Pedro Silva</em></a><em>)</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/510/1*lTEOf8_NSY06ioEzsIc9xw.png" /><figcaption><a href="https://lukso.network/">https://lukso.network</a></figcaption></figure><h3>Intro</h3><p>Right now you might be thinking: Token Icons? That’s no big deal, I’ve always seen Token Icons on Etherscan or Uniswap. Yet, this is but another centralized magic trick. Web3 platforms conveniently store icons on their servers (like Etherscan does) or get them from someone else’s centralized server (i.e. Uniswap with <a href="https://github.com/trustwallet/assets">Trust Wallet’s Asset Repository</a>).</p><p>This means that, for the vast majority of projects, there’s no on-chain link between a token contract and the corresponding Metadata, i.e. when it’s represented on platforms such as Etherscan, Uniswap etc. It is ultimately up to a human being to establish this connection.</p><h3>Deconstructing LUKSO’s technology</h3><p>The Digital Asset standards on LUKSO include an <a href="https://docs.lukso.tech/standards/lsp-background/erc725/">ERC725Y storage</a> contract, which is a very flexible, extensible and controllable way of storing information in a smart contract.</p><p>Notice that the Metadata of the Digital Asset (same as Token) <strong>is not set in the contract code </strong>and thus its structure is not rigid. Instead, the metadata is <strong>added upon deployment, </strong>by calling a function named <em>setData() </em>on the ERC725Y storage of the Token contract. The key names and values should follow LUKSO’s standards in order to be correctly displayed on LUKSO-compatible platforms.</p><p>Every Token you deploy adhering to LUKSO’s standards will have a Key/Value pair of the following type:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*6XNWDgXFgrbx-NUo.png" /><figcaption><a href="https://docs.lukso.tech/standards/nft-2.0/LSP4-Digital-Asset-Metadata/">LUKSO docs</a></figcaption></figure><p>In the example above, the key “LSP4Metadata” has a JSONURL type of value, which means that it links to a JSON file stored somewhere on the web (hopefully a decentralized service).</p><h3>Walk-through/example:</h3><p>For those of you who are developers or simply more tech savvy, follow along as we go step-by-step, retrieving the metadata of a Token deployed on LUKSO.</p><h3>Step 1: Choose the token</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BgBLaI0E3argywRJ.png" /><figcaption>The <a href="https://universalprofile.cloud/0x68dc15cebD1E80011Cc24e50f5d53B60747A77Ce">RTFKT</a> Universal Profile as displayed on <a href="https://universalprofile.cloud/">https://universalprofile.cloud/</a></figcaption></figure><p>Let’s pick the RenaiXance Sneaker. Notice that the platform displays many images and also a short description text.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QT_ngb45ZlWMVBq4.png" /><figcaption>The asset page for the <a href="https://universalprofile.cloud/asset/0x7c38fCe6dE402B7d6400626ca165c3E1e0D7537f">RenaiXance Sneakers</a></figcaption></figure><h3>Step 2: Extract the metadata URL from the Token contract</h3><p>In order to do this, we’ll use <a href="https://erc725-inspect.lukso.tech/getData">a tool</a> provided by LUKSO that allows us to read ERC725Y storages.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DVbEppp_rutQOFSk.png" /><figcaption>The <a href="https://erc725-inspect.lukso.tech/getData">ERC725-inspector</a> we used to read the storage</figcaption></figure><p>As parameters, we input the Sneakers contract address and select the key we want to retrieve from storage. In this case, the key is the LSP4Metadata key. Notice that the Sneakers asset was distributed in the L14 network, which requires us to change to the L14 settings in the Inspect Tool.</p><p>Now that we have our complete JSON URL value, let’s get rid of the hash part and isolate the actual URL we need to fetch the file:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PDawbHcHN5lXEyfQ.png" /></figure><h3>Step 3: Fetch the Metadata file from the extracted URL</h3><p>The URL we get is prefixed with <em>IPFS</em> which tells us that, in this case, the Token’s metadata file was uploaded to the IPFS network. All we need to do is to access (and submit a request) to an IPFS node to get it to “hand over” the file.</p><p>For now, we can use LUKSO’s development node. In the browser’s address bar we type in the <em>node’s address</em> + <em>slash</em> +<em> the URL we just got from the contract</em>: <a href="https://2eff.lukso.dev/ipfs/QmVoKAaE3Zmt8XvwGyUydFgDczLrAeYNKMm7QjVqhkiBPX">https://2eff.lukso.dev/ipfs/QmVoKAaE3Zmt8XvwGyUydFgDczLrAeYNKMm7QjVqhkiBPX</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ArhumiZfjRAoJQnn.png" /><figcaption>The metadata for the RenaiXance Sneakers was stored on IPFS</figcaption></figure><p>Which leads us to the above result. Not pretty? To turn this document into a more readable format we use <a href="https://jsonformatter.curiousconcept.com/#">a simple JSON formatter tool</a>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*B2WXyTb-qJwfHzEo.png" /><figcaption>The metadata stored in JSON syntax</figcaption></figure><p>As you can see, the metadata includes a description, a video (under the “assets” attribute), and a set of images including different sizes for the same image. Naturally, the smaller size can be used for the Token Icon while the bigger size might be used to display the asset on digital galleries!</p><h3>Conclusion</h3><p>Having such a degree of flexibility in updating the metadata of a Token might go against the immutability principles of Blockchain purists, but it’s important to keep in mind that this is merely a possibility. Access control will ultimately determine if the metadata is open to change or not. If nothing/nobody has the permissions to change it, then it’s locked forever.</p><p>Some might interpret the reliance on external storage networks as a disadvantage. This is mainly for gas-saving purposes, as typical EVM blockchains are not designed to store media, but instead to save sensitive information that requires a consensus to be retrieved.</p><p><strong>All in all, LUKSO has clearly come up with the most flexible approach for storing Token metadata within the new creative economy, one where the power of choice is placed in the hands of dApp developers and even users.</strong></p><p>Stay with us for our next piece where we’ll delve into the “Visual” aspect of Universal Profile and the ramifications this entails!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e34783ad2580" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/lukso-website-tags-token-icons-e34783ad2580">LUKSO WEBSITE TAGS — Token icons</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LUKSO WEBSITE TAGS — “Gas-less” transactions]]></title>
            <link>https://medium.com/dropps/lukso-website-tags-gas-less-transactions-cd79f72c276c?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/cd79f72c276c</guid>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Tue, 08 Nov 2022 00:22:11 GMT</pubDate>
            <atom:updated>2023-11-19T16:41:28.990Z</atom:updated>
            <content:encoded><![CDATA[<h3>LUKSO — “Gas-less” transactions</h3><h4>This post is part of a series where DROPPS breaks down the meaning of the keywords in the LUKSO website section about Universal Profiles, NFTs and Cultural Currencies.</h4><p><em>(written by </em><a href="https://medium.com/u/9ff9fc4f6de3"><em>António Pedro Silva</em></a><em>)</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/918/1*k4WqqdTk-T-Nmk_E-xc-mQ.png" /></figure><h3>Intro</h3><p>Bear with us on this unusual approach to an article about LUKSO standards, where we make a parallel between programmable blockchains like LUKSO and the Supercomputers of the 60&#39;s.</p><p>Before the banalization of the Personal Computer, in the late 1980&#39;s, computers were very expensive and only big corporations or universities had access to them. Programmers would <em>share </em>access to the computer, many times by renting the computer room for just enough time to run their programs. These programs were written on punched paper cards, which the programmer would then insert into the machine.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*821DuHBU1Tk7gi6Maezc_Q.jpeg" /><figcaption>A punched card ready to be inserted into a computer. Think of blockchain transactions like punched cards.</figcaption></figure><p>Just like the old super computers of the 60’s, a blockchain like LUKSO or Ethereum can be seen as a super computer: <strong>reliable and indestructible but slow</strong>, and requested by many people at the same time. This happens because, even though technology is now way faster than in the 60’s, computations in a blockchain network like LUKSO need to be repeated and validated by thousands of nodes in order to achieve so-called “decentralization”. Furthermore, the nodes need tobe in continuous synchronization between themselves, using up bandwidth resources. <strong>A blockchain is like a super computer, shattered in pieces and distributed all over the world.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/959/1*-WaDU6scxt9dDOySvCdF8g.png" /><figcaption>Nodes spread all over the world must synchronize and validate every computation. That’s why the blockchain is so censorship resistant and reliable. However this comes at a cost.</figcaption></figure><p>The amount of resources you rent from this super computer is measured in <strong>Gas </strong>and the price you pay for them is the <strong>Gas price</strong>. In the past, users paid an hourly rate to the department head at the University. On the blockchain, you enter a free market of people who, just like you, want to use the distributed machine. The fees are paid directly to the network participants (nodes) in the network’s native currency. In the case of LUKSO, the LYX.</p><h3>The Relay Service</h3><p>Once you had your punched cards done, anyone could go to the machine room on your behalf and insert them in the machine. Thus, you would be relaying the execution of your programs to another entity, like a friend, a colleague or even a paid service. In the 1960’s there could have been many reasons for that: maybe you didn’t want to stay awake until 2am, when the machine was finally available. Maybe someone found a way to optimize the use of the machine and offered you a better price than the official one. Relay services basically do it for you and charge a fee.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*8IcJ4m_l5IWK8K4hafOZcw.jpeg" /><figcaption>Usain Bolt on the Relay Race.</figcaption></figure><p>In the blockchain world, think of transactions like punched cards and inserting the cards into the machine like submitting the transactions to the network. There are many reasons why you would want to have someone submitting a transaction for you:</p><ul><li>Gas price optimization: the relayer might be able to get a better gas price than you.</li><li>Schedule the submission of the transaction.</li><li>You might not have the blockchain’s native currency in your account.</li></ul><p>We will focus on this last use case, where a user wants to interact with the blockchain but has no Ether (<em>or LYX in the case of LUKSO</em>) to pay for gas fees. This situation is a major brick wall many users hit when they are using a web3 app for the first time, an unexpected issue for most.</p><p>The key takeaway here is:<strong><em> the concept of Gas is specific to the underlying technology and should be hidden from the user experience.</em></strong></p><p>A relay service can offer to pay for the gas expenses of the user in return for a payment in fiat currency, or an ERC-20 token, watching adds, whatever. Just plug any business model you would like here.</p><h3>The gotcha in relay services</h3><p>Although it all sounds very simple, in practice it is not that simple. In order for many blockchain services to run, their smart contracts need to know the address of the user interacting with them, which they get by checking the sender of the transaction. If the transaction was sent by a relay service, a naive smart contract will mistake the relayer for the original sender and, for example, send the tokens to the relay address instead of the original sender’s one.</p><p>To avoid this, <strong>smart contracts must be aware that a transaction might come from a relay service. </strong>This is exactly what the Key Manager in the set of LUKSO’s Universal Profile contracts does.</p><h3>Universal Profile’s support for relay services</h3><p>One of the fundamental pieces of a Universal Profile (UP) smart contract account is the <em>Key Manager</em>. This is a smart contract that is deployed together with the UP and gets bound to it through a very special link: <strong><em>ownership</em></strong>. The Key Manager contract is set as the owner of the Universal Profile upon deployment and thus becomes the only address capable of tapping into the Universal Profile’s core: its key value store and its capability to call a function in another contract.</p><p>From this point onwards, every interaction with the UP has to go through the Key Manager, as illustrated in the below diagram, taken from LUKSO’s documentation on the <a href="https://docs.lukso.tech/standards/universal-profile/lsp6-key-manager/">Key Manager standard</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/927/1*iID5tG_o8J5KnUXy5j2c2g.png" /><figcaption>An ERC725Account is the core part of the Universal Profile.</figcaption></figure><p>This detour to explain the role of the Key Manager serves to better understand what’s coming next: the Key Manager is the smart contract that is aware of transaction relay services. And since every interaction with the UP has to go through its Key Manager, UPs’ support relay services by extension.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/517/1*lDjYpxMD0huSnNKJFZh62Q.png" /><figcaption>The executeRelayCall function in the Key Manager contract is the Universal Profile’s gateway to relay services.</figcaption></figure><p>Now that we have all the pieces of the puzzle, let’s put them together. If my Universal Profile is my blockchain account and I can interact with it through a middleman that pays my gas in LYX, then I don’t need to own any LYX to start using dApps on LUKSO.</p><p><strong>This is a major breakthrough in the UX of web3 applications.</strong></p><p>Even though this problem has been around since the beginning of programmable blockchains, no approach ever set to solve the issue in such a generalized way. By handling relayer logic at the account level, dApps are freed from this burden, which means they have now acquired support for relayed transactions, without changing a single line in their smart contracts.</p><p>At DROPPS we are firm believers that smart contract accounts will very soon transform the way we interact with the blockchain. As a suggestion, try them out by installing the <a href="https://docs.lukso.tech/">LUKSO Browser Extension</a> and head over to <a href="https://lookso.io/">lookso.io</a> to see those accounts in action.</p><p>Stay tuned for the next article on these series, looking deeper into LUKSO’s core building blocks!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cd79f72c276c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/lukso-website-tags-gas-less-transactions-cd79f72c276c">LUKSO WEBSITE TAGS — “Gas-less” transactions</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LUKSO —“Updatable” metadata (Part 2)]]></title>
            <link>https://medium.com/dropps/lukso-website-tags-updatable-metadata-part-2-9c9be13efa41?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/9c9be13efa41</guid>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Sun, 16 Oct 2022 21:26:48 GMT</pubDate>
            <atom:updated>2023-11-19T16:41:04.359Z</atom:updated>
            <content:encoded><![CDATA[<h4>The rise of on-chain metadata</h4><p><em>(written by </em><a href="https://medium.com/u/9ff9fc4f6de3"><em>António Pedro Silva</em></a><em>)</em></p><h4>This article is part 2 of 2 on NFT 2.0 updatability. You can read part 1 <a href="https://medium.com/dropps/lukso-website-tags-updatable-metadata-part-1-f09253c7d94">here</a>.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/874/1*RKP-zelJiKADRy0O5DcQxA.png" /><figcaption><a href="https://lukso.network/">https://lukso.network</a></figcaption></figure><h3>Part 1 recap</h3><h3>The dream</h3><p>We started part 1 by exposing some of the potential use cases of mutable NFTs, dreaming of what happens to an NFT after you mint it. In many collections, the premise is: holders will get perks, access to cool things, private events, airdrops, a place in the community (aside from token appreciation, of course). However, all of this is happening off-chain. Regardless of how much history there is around the NFT, none gets saved within its on-chain record. <strong>An NFT is dead at mint and that’s just sad.</strong></p><p>Besides, we might be missing out on a ton of value that could come from each NFT having a unique history, intertwined with the history of all its holders since minting. NFTs could evolve by being taken to conferences, age with time, have a lore that is being written as things are happening to them in the real world. Be promoted, have ranks, have badges, relate to NFTs in the same collection or even different ones, react to blockchain events, and so on. <strong>The possiblities are endless</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/643/0*bOd6ZE0cWOABRdna.png" /><figcaption>Left: <a href="https://boredapeyachtclub.com/">Bored Ape Yacht Club</a>. Right: <a href="https://earclubnft.com/">Elderly Ape Retirement Club</a></figcaption></figure><h3>Part 2</h3><p>Novel ways are being thought of for chasing this dream of storing and updating metadata, arising as an answer to the requirement of mutability. However, these approaches have two downsides: they rely on storing metadata off-chain and they further increase the complexity of NFTs by making metadata more elaborate. This is natural because they have been designed with a very clear constraint in mind: deployment on Ethereum mainnet, where gas usage is still a major concern.</p><h3>The likely approach for LUKSO</h3><p>Another possibility is to store most of the metadata on-chain and keep the big stuff like visual assets off-chain.</p><p><a href="https://lukso.network/">LUKSO</a> gives us a great degree of control over who can update metadata in an NFT by having a Key Manager contract as the owner of an LSP8 asset. This means we use the same permissioned system as the one for writing in the Key/Value store of Universal Profiles.</p><p>This allows creators to develop interesting updatability models like:</p><ul><li>NFTs that can be updated by other smart contracts (permissions on certain addresses)</li><li>NFTs that can have certain attributes updated while others remain immutable (permissions on specific keys)</li><li>NFTs that can be updated by a specific Universal Profile or EOA (permissions on certain addresses)</li><li>NFTs that can have their metadata expanded or NFTs which are bound to remain the same forever (permission to create new key/value pairs)</li></ul><p>There really are no limits to how this technology can be used to control NFT updatability. <strong>On-chain metadata is particularly tempting because it becomes available for smart contracts to interact with</strong>. We can code the rules that govern the metadata updates on these smart contracts and launch truly fair and decentralized NFTs which evolve with time, but in predictable and well thought out ways.</p><p>Smart contracts can’t interact with off-chain metadata because the external world is not accessible from the blockchain, a critical factor to keep in mind when choosing an approach for implementing dynamic metadata.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/822/0*jEZnw1cx6O2awH5I.png" /><figcaption>This is what a metada file stored off-chain looks like. A Smart contract can’t interact with it.</figcaption></figure><p>The control we have over the updatability of metadata when it’s saved off-chain is very limited. <em>“Code is law”,</em> there, does not prevail. What in fact happens when most NFTs have their metadata “updated” is some external entity uploads a new metadata file to decentralized storage and saves the new reference to the file in the NFT contract.</p><p>In the end, it always comes down to fees. Updating metadata on-chain can become a nightmare if this operation is continuously happening like it would, for example, in a game. Even storing it the first time can be expensive should the network become widely used.</p><h3>Leveraging scaling solutions</h3><p>Lately, scaling solutions like Polygon and Optimism are inviting developers to experiment with saving metadata on-chain. Since moving to off-chain storage was a makeshift solution to deal with prohibitive gas costs, we must now go down a different path for metadata storage - <strong>one where we do not incur the risk of creating ever more complex systems</strong>. In some cases, it might be better to embrace Layer 2 rollups combined with a key/value store to harvest all the power of a programmable blockchain and bring NFTs into a new kind of blockchain life.</p><p>Storing the attributes of an NFT inside its contract makes them:</p><ul><li>Permissionable: using a permission standard like <a href="https://docs.lukso.tech/standards/universal-profile/lsp6-key-manager">LUKSO’s LSP6</a> to implement access control for each individual metadata key.</li><li>Programmable: making metadata updatable exclusively through a smart contract and writing the code that governs the updates to said metadata.</li><li>Flexible and Updatable: maintaining a collection’s metadata keys compliant with the latest standards.</li></ul><h3>The importance of choosing the right tech for your project</h3><p>Although some projects don’t really need a degree of updatability, they still need reliability and security. That’s the case for static artworks, where the main metadata component (a high resolution image) needs to be deployed to off-chain storage due to its sheer size. In that scenario, it just makes sense to bundle the rest of the metadada with it, such as name, description, and so on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*6fmxLY35MA5zSxXz" /><figcaption>These artworks by Beeple are static pieces of digital art.</figcaption></figure><p>On the opposite side of the spectrum, games benefit from highly dynamic metadata, updated by the smart contracts that run the game. For this use case, it makes sense to leverage a layer 2 solution to handle the game logic, including metadata updates, while keeping the records of ownership on layer 1.</p><p><strong>Example:</strong><em> in a game where you can equip NFT items to boost your character’s stats (imagine World of Warcraft on the blockchain) and these items are upgradeable (you level items to increase the stats they provide), it would make sense to do an item’s upgrades on a layer 2 solution, while using the layer 1 blockchain to maintain the item’s ownership record.</em></p><p>Also, the reason you don’t want to store everything on a layer 2 is exactly the same reason why they are so fast: layer 2 solutions compromise on security and decentralization to achieve increased speeds, so ideally you leave the ownership registry for the main chain.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/907/0*mE-M3XUhgySl7n8N.png" /><figcaption><a href="https://etherorcs.com/">EtherOrcs </a>claims to have been the first 100% on-chain NFT game</figcaption></figure><h3>Conclusion</h3><p>We do not yet know for sure what NFT 2.0 has in store for us and what new paradigms will emerge from the standards created by LUKSO. One thing is certain: the bigger the part of the metadata that is saved on-chain, the more control and granularity we have over its properties.</p><p>For now, the field is open to new ideas and the technology is in place, but few have actually started experimenting with it. If there’s some out-of-the-box idea regarding NFTs you would like to try or share your views on, DM us at <a href="https://twitter.com/dropps_io">DROPPS</a>. We’re here to build the next generation of web3 applications.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9c9be13efa41" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/lukso-website-tags-updatable-metadata-part-2-9c9be13efa41">LUKSO —“Updatable” metadata (Part 2)</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LUKSO WEBSITE TAGS — “Updatable” metadata (Part 1)]]></title>
            <link>https://medium.com/dropps/lukso-website-tags-updatable-metadata-part-1-f09253c7d94?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/f09253c7d94</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[web3]]></category>
            <category><![CDATA[nft]]></category>
            <category><![CDATA[lukso]]></category>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Sat, 08 Oct 2022 17:04:57 GMT</pubDate>
            <atom:updated>2023-11-19T16:39:05.667Z</atom:updated>
            <content:encoded><![CDATA[<h3>LUKSO — “Updatable” metadata (Part 1)</h3><h4>This post is part of a series where DROPPS breaks down the meaning of the keywords in the LUKSO website section about Universal Profiles, NFTs and Cultural Currencies.</h4><p><em>(written by </em><a href="https://medium.com/u/9ff9fc4f6de3"><em>António Pedro Silva</em></a><em>)</em></p><h4>This time, we will analyze what’s behind “Updatable” metadata, under the NFT 2.0 section.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/874/0*XuY-OCqeiMTSPgvj.png" /></figure><h3>Intro</h3><p>In the beginning, NFTs demanded immutable metadata. That’s because their value was in the metadata itself, bound to attributes such as the rarity of a character or the image of an art piece. Thus, IPFS became the standard to store such metadata, as it allowed for tamper-proof NFTs using a technique called <a href="https://web3.storage/docs/concepts/content-addressing/">content addressing</a>.</p><p>However, in order to increase the use cases for digital assets, we should endow some of them with the possibility to evolve, to change. That’s the case for assets that have physical world counterparts, known as <em>phygitals,</em> or characters in a game, or even records that represent physical world entities, such as houses or cars. If we snatch the opportunity, we might want our digital sneakers signed by a famous NBA player. Or our character in a role-playing game might level up. Or we might want to paint our car a different color in real life and keep a matching image in its digital counterpart.</p><p><em>InvenGlobal </em>puts out a <a href="https://www.invenglobal.com/articles/16997/mutable-nfts-are-pushing-the-boundary-for-play-to-earn-games">great example</a> of mutable NFTS:</p><p><em>“Imagine an old-fashioned baseball trading card. The details on that card are entirely static, representing the player’s stats for the particular season it was issued for. In other words, that baseball trading card is immutable. A hypothetical mutable trading card on the other hand would be able to update its stats on the fly, from one game to the next, tracking the player’s entire career.”</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/527/0*DltiVkFt_iPZ-PuH.png" /><figcaption><a href="https://toppsmlb.wdny.io/">https://toppsmlb.wdny.io/</a></figcaption></figure><p>However, a small problem lies in <strong>how to do it</strong>. Currently, metadata updates are all or nothing: you replace the whole metadata file by a new one. There is no granularity or control in what parts of the metadata are subject to change and what rules govern this change, if any.</p><p>Another problem lies in the “<strong>who can do it”.</strong> Usually, there is a designated owner of an NFT collection, which has the rights to change the metadata, by replacing the link to IPFS. Of course this owner can be a smart contract, representing a DAO or any type of collective, but still, there’s no granularity here either. Only one address is entitled to update the metadata, and the change is done by fully replacing the old file URI with a new one.</p><h3>New paradigms for storing and displaying NFT metadata</h3><p>Because the market demands more utility from NFTs, the traditional ERC-721 and ERC-1155 standards are falling short. Modern scalability solutions and blockchains encourage storing more info about the NFT on-chain. On the other hand, the traditional approach of bundling all metadata in a static file and storing it in some decentralized network, like IPFS or Arweave, is becoming obsolete.</p><p>Some solutions aim to extend existing standards, others are completely disruptive. The common trait is making the attributes that define an NFT more dynamic and more programmable.</p><h3>Tableland</h3><p>Tableland is a decentralized protocol for relational data. It’s not great for storing images or videos off-chain, but it’s much better than IPFS or Arweave to store information that would fit a database table. This is because it works like a database and not like a file storage system. Inserting, reading and modifying data in Tableland works just like regular SQL databases.</p><p>The twist that Tableland brings to NFT metadata is making it a database and not a set of files anymore.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/358/0*mPyCVTlbfQOrGO9A.png" /><figcaption>Tableland stores NFT metadata like tables in a database</figcaption></figure><p>Now instead of saving a link to IPFS on the collection contract, you save the link to Tableland and the corresponding query to select all the metadata:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/918/0*7miwWOkAig9rYaYS.png" /><figcaption>Notice that the IPFS type URI is replaced by a link to the Tableland gateway which includes the query text</figcaption></figure><p>When a platform calls your NFT contract to fetch a link to the metadata, instead of getting a static object in the end of the link with all the metadata written on it, it triggers a database query! This database query will generate the object in real time and finally deliver the file with the metadata.</p><p>Tableland has launched its own NFT collection called <a href="https://tableland.xyz/rigs/">The Rigs</a>, where they use this technology.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mB2VVNSp4U5UwTv2.png" /><figcaption>The Rigs. Read the documentation <a href="https://dev.tableland.xyz/exploring-the-rigs-tables">here</a>.</figcaption></figure><h3>EIP-5185</h3><p>Another approach to tackle this problem is described on EIP-5185.</p><p><a href="https://eips.ethereum.org/EIPS/eip-5185">The thread</a> was created on June, 2022, to start a discussion on updatable metadata and it sets out with an interesting goal:</p><p><em>“Define a standard way to allow controlled NFT metadata updates, along predefined formulas.”</em></p><p>Basically, it suggests to add a new section to an NFT’s metadata describing what attributes can be updated and what values can they take:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*bJSBrhzH6eCf4nqR.png" /><figcaption>Metadata file for the “Little Monsters” NFT collection — Example used in the EIP.</figcaption></figure><p>Then, the update is made permanent by registering a link to the update file in the NFT collection contract. The update file could look like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Fe0kwUjPMQcmeD7K.png" /><figcaption>Tokens with IDs 1, 2 and 3 are being leveled up. Token 1 also has its description changed.</figcaption></figure><p>By using the rules defined in the updatable section of the metadata, a platform can determine if token 1 from this collection is allowed to “levelUp” and have its description updated. If the update is valid, the new traits are displayed, if not, the platform sticks to the original metadata.</p><h3>Balancing security and updatability</h3><p>As we’ve covered in the Intro, different use cases require different degrees of mutability. In order to remove the need for trust, it is necessary to establish rules on how metadata can change or, alternatively, frame these changes through smart contract code, which results in predictable updates.</p><p>Regardless of the approach, static metadata is simple and intuitive: a file stored off-chain. Developers in the ecosystem need to be wise and focus on solving the problem without further increasing the complexity. There’s a reason why ERC-20 and ERC-721 are still in use today and that’s because they’re simple and they just work.</p><p>Maybe it’s time to say goodbye to our ancestral roots and sacrifice backwards compatibility in order to keep the same pragmatic and simple approach in the new standards we adopt in our ecosystem. That’s why we, at <a href="https://www.dropps.io/">DROPPS</a>, love <a href="https://lukso.network/">LUKSO</a>.</p><p>Don’t miss <strong>part 2</strong> of this article where we’ll dive deeper on how the new standards developed by the LUKSO team may combine with the ones in this article and tackle the problem of NFT updatability.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f09253c7d94" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/lukso-website-tags-updatable-metadata-part-1-f09253c7d94">LUKSO WEBSITE TAGS — “Updatable” metadata (Part 1)</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[LUKSO WEBSITE TAGS — Unlimited Metadata]]></title>
            <link>https://medium.com/dropps/lukso-website-tags-unlimited-metadata-694f0c3f57c?source=rss----b0b808bc7794---4</link>
            <guid isPermaLink="false">https://medium.com/p/694f0c3f57c</guid>
            <category><![CDATA[lukso]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[web3]]></category>
            <dc:creator><![CDATA[DROPPS]]></dc:creator>
            <pubDate>Sat, 08 Oct 2022 16:36:05 GMT</pubDate>
            <atom:updated>2022-10-08T17:11:15.892Z</atom:updated>
            <content:encoded><![CDATA[<h3>LUKSO WEBSITE TAGS — “Unlimited metadata”</h3><h4>This post is part of a series where DROPPS breaks down the meaning of the keywords in the LUKSO website section about Universal Profiles, NFTs and Cultural Currencies.</h4><h4>This time, we will analyze what’s behind “Unlimited Metadata”, under the NFT 2.0 section.</h4><h3>The Key/Value store</h3><p>The concept behind this feature is that asset contracts adhering to LSP7 or LSP8 possess a Key/Value store just like the one in a UP.</p><p>Notice that the solidity declaration of the LSP7 &amp; LSP8 interfaces starts precisely by stating that an LSP7 asset incorporates the ERC725Y standard (which means the contract contains a Key/Value store).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/534/1*6Rnk-7qw5P8iCzAwCTtZVg.jpeg" /><figcaption>From: <a href="https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/ILSP7DigitalAsset.sol">https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP7DigitalAsset/ILSP7DigitalAsset.sol</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/652/1*TpCLCpmBKzPf_KMBUGXNuQ.jpeg" /><figcaption>From: <a href="https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/ILSP8IdentifiableDigitalAsset.sol">https://github.com/lukso-network/lsp-smart-contracts/blob/develop/contracts/LSP8IdentifiableDigitalAsset/ILSP8IdentifiableDigitalAsset.sol</a></figcaption></figure><p>Just like in a UP, we can add arbitrary keys and attach them to the store of an NFT. We’re no longer restricted by the metadata written in the code before deployment of the smart contract, like in the ERC721 standard:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/475/1*RwZUd7cjQizVr0hj2mMhVA.png" /><figcaption>From: <a href="https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol">https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol</a></figcaption></figure><p>Instead, we save all the metadata in the Key/Value store. This variable here called <em>store:</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/615/1*hXJI5vtSFomYhAZqq81Q7g.png" /><figcaption><em>The Key/Value store is defined as a mapping in the smart contract. You can put things on it and erase them when you want. Just keep track of the label you choose when you store data!</em></figcaption></figure><p>We can, at any time, erase or add new forms of metadata such as a “description”, “tags”, a list of “creators”, whatever comes to mind. However, in order for this metadata to be meaningful across the whole ecosystem, people need to agree on a set of metadata keys that fundamentally describe a digital asset and prepare all dApps to handle and display these keys.</p><p>That’s exactly what the LSP4 Digital Asset Metadata standard is set to do.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/883/1*_cIEiEQpxSc3qLB9YJmKnw.png" /></figure><p>The beauty of having the keys defined in the standard and not the smart contract code itself is that even if the community comes up with new attributes they deem essential for upcoming NFT collections, already deployed NFTs can simply add to or modify the existing metadata keys in their storage and stay just as relevant and up to date! In other words, staying compliant with the Asset Metadata standard.</p><h3>On-chain vs Off-chain Storage</h3><p>A combination of both. Storing data on-chain means that other smart contracts can read and interpret it, leaving room for automation to happen to NFTs, for example, smart contracts that read an NFT’s list of creators and distribute royalties. However, most blockchains are not tailored to store large amounts of data, an act which becomes way too expensive.</p><p>Following this rationale, <strong>another very important role of the LSP4 standard is to define the format of the metadata that is going to be stored under each key.</strong> For example, it makes sense to store the name of an asset as text, directly on-chain, because it is just a very small piece of text. It might also make sense to store the list of creators directly on-chain because it is just a list of addresses, and each address is a fairly small sequence of characters.</p><p>However, a 3D model, for example, is far too big to store on-chain and for that reason it needs to be stored somewhere else (somewhere cheaper). What gets stored on the blockchain is a reference (a link to IPFS, for example) to where the 3D model is saved. This is what is meant by “<strong>metadata that is always hash referenced wherever it is stored</strong>”, when you hover the button on the LUKSO webpage. Usually, the link is saved in the smart contract, together with a proof of what it contains. This is to prevent someone from going unnoticed after sneakily changing the link’s content, pretending an NFT is something that it is not.</p><p>In summary, <strong>dynamic storage provided by the Key/Value store of the ERC725Y contract and hash referencing metadata stored off-chain are the two key technological features that make NFTs 2.0 metadata “unlimited”.</strong></p><p>We hope you’ve this article insightful. On our next piece we’ll be going through “<strong>Updatable</strong>” metadata and its ramifications.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=694f0c3f57c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dropps/lukso-website-tags-unlimited-metadata-694f0c3f57c">LUKSO WEBSITE TAGS — Unlimited Metadata</a> was originally published in <a href="https://medium.com/dropps">DROPPS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>