NFTs should be like emojis for the Metaverse 👀

Ambition.wtf
Ambition.wtf
Published in
9 min readMar 3, 2022

We made the first NFT collection with emoji-like technology to show how powerful upgradeable, cross-platform NFTs really are 🥳

Wow, look at this beautiful emoji → 😂 . No matter what device you’re on you can probably see it. Incredible!

It’s also fun that different devices and platforms can display this emoji in their own unique style. Just look at the variety of the “face with tears of joy” emojis below … the Facebook one is totally unhinged. But it fits the Facebook aesthetic better than some of the others (go home Samsung, you’re drunk).

The “face with tears of joy” emoji on the major platforms and devices.

How Emojis Work

This insane level of interoperability is made possible through the Unicode Standard, a tech standard maintained by the Unicode Consortium.

The way it works is simple: Computers like numbers and letters (this is a simplification. Please don’t come after me devs 🙅‍♂️). They aren’t so good at understanding images. If they were good at understanding images your work computer wouldn’t let you put that 2GB of porn in the “Junk” folder on its desktop. But you CAN put all that porn in the Junk folder. Unless your computer is running some special image assessment program or porn file identifier then your computer doesn’t know the images are porn. It just knows you have a looooot of pictures. 😉

Since computers are bad at knowing what images actually are, the Unicode Standard gives every possible emoji image a string of letters and numbers for the computer to use instead of an image. Computers like that.

For the 😂 emoji the string of letters and numbers is U+1F602. When you add the 😂 emoji to a message using your phone’s keyboard for example, your phone is really recording that you added the code U+1F602. And then just about every device and platform in the known universe knows that if it sees U+1F602 in the message you typed it should show a little picture on the screen instead.

The device or platform showing the picture gets the picture from its own repository of emoji pictures, not some centralized place. That’s why if you are in a Google product and the text you are looking at contains U+1F602 you’ll see the emoji on the left in the image below, but Twitter will show the same code (U+1F602) as the emoji on the right:

Devices and platforms can interpret the “face with tears of joy” emoji slightly differently to ensure it fits their aesthetic.

Why A Lot of NFTS Should Work This Way

A lot of things in The Metaverse should work this way for these important reasons:

→ It makes NFTs interoperable & cross platform

A huge underpinning of The Metaverse is its interoperability — the idea that you can take all your cool shit from one place in The Metaverse to another. Have a sick weapon from Call of Duty? Take it with you to Roblox and start pwning the children (better examples exist, I stand by this one).

The problem with how we make a lot of our NFTs today is that we only make the pictures. We don’t give the NFTs a code like U+1F602 that would tell each device and platform what it actually is and what traits it has. Most NFTs do have numbers in their names like “#5491” or “Doodle #6914” but these numbers don’t say anything about what those tokens actually are. Does “Doodle #6914” have hair? The name doesn’t say. The metadata which does say isn’t stored on the blockchain, it’s somewhere else!

The big downside here is that to make your favorite mall ninja Call of Duty weapon NFT work in Roblox for example, the Roblox team has to look at your token, follow its link off-chain to the picture of your weapon, then bust their ass figuring out how to make that picture usable in the Roblox platform (is it the right file format? Does it use the platform’s color palette? And so on).

But why? With a standardized system you can give your weapon a code like U+1F602. Call of Duty will know U+1F602 is a dorky ass karambit and so will Roblox. Plus now Roblox is free to make their own version of how it looks and use a file format that better fits their platform.

Even if there isn’t a universal standardized system like Unicode where U+1F602 always means the same thing across the entire Metaverse, individual creators and artists can at least use the codes for their own collections. Their Smart Contracts stored on the blockchain can take care of explaining to other computers what all the codes mean.

Call of Duty could use give their karambit design the code W+3KDAS1 and maybe Roblox doesn’t have any universal way to know that W+3KDAS1 is a karambit, but they know this NFT was made by Call of Duty so their computers can reference the code from Call of Duty’s source docs or an on-chain contract.

In theory this is why the Loot project is so interesting. Instead of storing images of the weapons in each Loot bag the project stores the names of the loot (weapons, armor, etc.) on-chain. Other platforms and devices can see the names of the loot on the blockchain and show whatever images they want. But the names of the loot are stored in English, which not everybody uses. Computers also don’t speak English. And the Loot can never be upgraded.

→ It makes NFTs upgradeable

Just to be extra fucking cool if you give the NFT weapon in our karambit example a code like W+3KDAS1 you can keep adding codes to it and recording those updates on-chain for all other systems that want to use the weapon to see. Maybe W+3KDAS1 is a karambit but W+3KDAS1_2XL is an even more powerful karambit with a Damascus steel blade that will really help you slaughter the 9-year-olds in Roblox.

→ It makes NFTs editable

By using codes the images also can be updated. A few years ago Google products displayed emojis in their “blob” emoji shape. Then they realized that looks like shit and changed it to a circle like everyone else already had.

Google updated how it displays the “face with tears of joy” emoji in 2017.

The code U+1F602 never changed. The name of the emoji never changed. The images on Apple, Twitter and Facebook never changed. What changed was the picture that Google decided to show when a message on their platform contained the universal U+1F602 code.

→ It makes NFTs composable

With the Unicode system emojis can be combined. For example, combining the man, woman and child emojis creates the family emoji.

Combining emojis results in more intricate emojis.

NFTs that are made with the same kind of system can also be combined when displayed on devices and in platforms. This unlocks all kind of composable use cases:

  • Swap a single NFT weapon modifier (like a scope) across various NFT weapons in a game
  • Add branding from one NFT to clothes and other NFT objects in virtual worlds
  • Gain extra in-game powers/XP or rewards points by holding multiple NFTs from a collection, with each NFT contributing a different amount of power or points
  • A billion more things…

→ It saves a lot of space

There’s a lot of duplication happening on the blockchain right now. Many collections that started out as NFTs with 2D jpegs have added 3D models and other forms of the NFTs by making new NFTs with new images. This means there are multiple NFTs representing the same object, just with different versions of the image. Not only is that not an efficient use of the blockchain’s storage space, but it also means more than one person can technically “own” the object and the traits represented by the NFT.

Other projects like Doodles add new traits to their tokens with approaches like minting a new version of that NFT with new traits (in this case, a spaceship) that is then swapped for the old one. The owner can trade back whenever they want but there’s still two NFTs of the same Doodle in existence (one is in a spaceship, the other isn’t.)

→ It cuts down on fees and costs

Inefficient use of space isn’t the only downside to collections that use duplication to add or change traits. All the NFTs that get added cost ETH to mint and transfer around. Updating a Unicode-like code of an NFT is far cheaper than creating new NFTs, or even updating on-chain metadata.

Ok but let’s see it in practice

All of this is to say we need some unicode and emoji-thinking around here. I’ve explained what it might look like but don’t worry, Daddy made you an example.

That example is the lil fks and they just want you to know that The Metaverse would be a whole lot cooler if we could just use a goddamn unicode-like system.

The innovation behind the lil fks is that each lil fks non-fungible token includes a code like U+1F602 that is stored on-chain. The codes are a bit longer than that but you get the idea. Each lil fk has this code that can tell other computers, devices and platforms what it is (what eyes it has, what mouth, etc.).

The code for each lil fk can be updated by the owner of the NFT if they want to change what their lil fk looks like (and yes, we publish new and limited edition traits all the time that owners can add like costumes for Halloween and Santa hats for Christmas). When a lil fk is updated it’s not just the picture of it that gets updated but the on-chain code that tells every other computer looking at it exactly what traits it has. It costs around 0.0032 ETH at 42 GWEI to update a lil fk, but that can probably be optimized in the future (and just imagine the cost on an L2 like Polygon…)

Each lil fk NFT is associated with a code, which can also be updated with new traits and additional features. In this example the codes are short. The real codes we use are longer.

The lil fks also come with a set of on-chain images and metadata that go along with the codes so all the platforms and devices out there can see what each code and its traits are supposed to look like. If they want to display the provided on-chain images they can or they can make their own. If you own a lil fk you own its traits and no matter what platform or device you are looking at your lil fk on it can get the code to know exactly which mouth, eyes, color, etc. your lil fk should have.

Like emojis: Different devices, platforms and sites can choose to display the lil fks in the style that best fits their aesthetic. The lil fks’ on-chain identifier code tells the device or platform what traits and colors to use.

The platforms can show your lil fk in the style that best fits their aesthetic and in the file format they best support. If a platform or device doesn’t support the lil fks codes or if you hate the images they made to display them then you can complain and get them to fix it like Google did with their blob emojis. Or make and submit your own. As creators we can do this too, working with platforms or providing databases of the lil fks in the formats that will look best in their worlds or on their manufactured products.

It’s magic!

It’s amazing. We hope this will become the norm for how a lot of NFTs are made. It won’t make sense for most art NFTs that you never want to change but for the majority of NFT stuff — PFPs, collectibles, wearables, game items and more — it unlocks a lot of possibilities which are being demonstrated by the lil fks.

If you want to take your NFTs with you to various games and virtual worlds in The Metaverse (and IRL) the most efficient and interesting way for them to work is like emojis — like the lil fks.

If you want to know more about exactly how the lil fks work, ask! We’re planning on writing a more in-depth technical explanation soon. Let us know what we should be sure to include in it.

If you want to support our team as we expand this and our other projects (like The Worm 🪱) pick up a lil fk or two 🙏 .

As always, leave a comment and let us know what you think!

✍️ Written by Bleps.eth, aka Megan McNames
💻 Concepts and code by FelixGreen.eth, aka Felix Green
🖕 lil fks characters by scamwallet.eth, aka Macbeth
⬢ Together we are ambition.wtf
🪄 ƈʀɛǟȶɛ ȶɦɛ ʍǟɢɨƈ ʏօʊ աǟռȶ ȶօ ֆɛɛ ɨռ ȶɦɛ աօʀʟɖ 🪄

--

--