Sitemap
DROPPS

We build dApps and protocols that leverage emerging market opportunities, making use of the tools and standards created by LUKSO

LUKSO WEBSITE TAGS — “Visual”

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.

6 min readMar 29, 2023

--

(written by António Pedro Silva)

This time, we will analyze what’s behind the “Visual” keyword

Press enter or click to view image in full size

Intro

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. Most users are not willing to give up this kind of interaction in this new digital era we’re stepping into. That’s why Web3 accounts must preserve the Web2 look and feel, enabling a smoother and less overwhelming transition for non-technical users.

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).

Press enter or click to view image in full size
Profile Picture NFTs (PFPs) became a trend in the NFT artworld

How “Visual” is accomplished on Universal Profiles

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.

You might be wandering if pictures are stored on the LUKSO blockchain. They are not. 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.

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 LSP3 — Universal Profile Metadata.

Press enter or click to view image in full size
LOOKSO
Press enter or click to view image in full size
Universal Page
Press enter or click to view image in full size
El Diario

The way these apps present profiles is just slightly different. Under the hood they all follow the LSP3 standard to fetch information.

Exercise: Retrieving a profile picture manually

Let’s use the Lukso Inspect Tool 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.

  1. First of all, let’s go to the standard’s page and look for the data key which corresponds to the Universal Profile Metadata file:
Press enter or click to view image in full size

“The value attached to this data key is a JSONURL-encoded value. It represents a reference to a JSON file that describes the Universal Profile MetaData. The file can be stored on a centralized or decentralized storage.”

Get DROPPS’s stories in your inbox

Join Medium for free to get updates from this writer.

2. Now we use the Inspect Tool to retrieve the encoded value of the URL where all the juicy information about the profile is written.

The value on the bottom is the encoded URL

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:

Press enter or click to view image in full size

Select value type JSON URL and enter the value obtained on step 2:

The IPFS identifier is what we’re looking for

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.

The resulting URL is: https://2eff.lukso.dev/ipfs/QmYFpqkvprFEcHDkpgWSL3NUtvV8JBBFGcm7FjomoVWhgG.

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:

Press enter or click to view image in full size
An example of a Universal Profile’s metadata file

5. Great! You can see all the metadata components here. They are structured nicely according to the LSP3 standard: name, description, tags, and, of course, the profile image. If you look carefully, you will notice there are several. This is because they are stored in different sizes. 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.

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: https://2eff.lukso.dev/ipfs/QmYQxnphG8PqJm5N558neVsSvddK2yKtpDqpGHy8FRtn43

And the result:

Here’s the profile picture

A world of possibilities

The idea behind the ERC75 Generic Data Key/Value Store is “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”.

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.

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, Universal Profiles will continue to provide a solid ground to host your digital self. 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. Every change that happens is forever recorded and publicly available on blockchain explorers.

On our next article, we will dive into what makes your Universal Profile ‘smart’. 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.

Stay tuned and see you on Universal Profiles — Smart!

--

--