Cooking By Numbers: Solana token metadata

2naD...aqYn
16 Jan 2025
100

Find this also on our Medium blog!
https://medium.com/@cakesonsolana/cooking-by-numbers-solana-token-metadata-ff9366a0a772


Pump.fun, Moonshot and others have created the idea that it’s now as easy as ‘clicking a button’ to launch a token on Solana.
And in some ways this is true.

But in some ways this is not true, and we think all the ways it isn’t true are the most important.
Metadata matters. As someone once said: “metdata is a love note to the future”.
In the case of the blockchain it takes on an even bigger role as the blockchain promises a shared and open ledger/database that is both verified and immutable (well mostly immutable, more on that later).

The saying: “don’t trust, verify” means you don’t have to establish trust with a counterparty when interacting over the blockchain for a transaction, rather you both can use the properties of the blockchain to guarantee that you’re both seeing the same thing.

With that in mind then the data on chain takes on a new importance. Can you truly say something is “on a blockchain” if the core aspects of it are not stored on chain?

this is an interesting conumdrum for NFT assets, which frequently have to store core aspects off chain. Though the steady improvements we see from decentralised and permissionless stores like Arweave and IPFS make that less an issue as times goes on.


Let’s look at what a token actually is first to understand what we’re working with.

We’ll review a couple of well, and not-so-well, known tokens.

NOTE: there’s two forms of metadata for most solana tokens, URI metadata and Metaplex metadata.Mostly you’ll want to focus on the URI Metadata as that’s where the information we’re all most familar with. It’s beyond the scope of this article to go into the technical details here of both but if you’re interested the official Solana documentation is the best place to start https://solana.com/docs/core/tokens



BONK

Solana memecoin royalty (is it even a “meme” coin at this stage?), BONK is heralded as kickstarting the Solana ecosystem after the disaster that was the FTX collapse.
Let’s look at it’s metadata using Solscan
https://solscan.io/token/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263#metadata
Metaplex Metadata

{
  "key": 4,
  "updateAuthority": "9AhKqLR67hwapvG8SA2JFXaCshXc9nALJjpKaHZrsbkw",
  "mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  "data": {
    "name": "Bonk",
    "symbol": "Bonk",
    "uri": "https://arweave.net/QPC6FYdUn-3V8ytFNuoCS85S2tHAuiDblh6u3CIZLsw",
    "sellerFeeBasisPoints": 0
  },
  "primarySaleHappened": 1,
  "isMutable": 1,
  "editionNonce": 255,
  "tokenStandard": 2
}

URI Metadata

{
  "name": "Bonk",
  "symbol": "Bonk",
  "image": "https://arweave.net/hQiPZOsRZXGXBJd_82PhVdlM_hACsT_q6wqwf5cSY7I",
  "description": "The Official Bonk Inu token",
  "creator": {
    "name": "DEXLAB MINTING LAB",
    "site": "https://www.dexlab.space"
  }
}


Already some of you who are familiar with BONK will be asking: “Is that even the right token? That doesn’t look anything like the BONK I know!”
And you’d be right about the second part. Not the first part, this is definitely the Bonk you know. All 2.8B dollars worth of it (at time of writing).

So let’s have a look at the “Bonk you know”.
Here’s BONK that people know better.

Coingecko

https://www.coingecko.com/en/coins/bonk


Birdeye

Token

DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263

birdeye.so


That’s more like it right? You’ll be more familar with those socials (X and Discord) and even the web home.
But that’s not what is on the blockchain. Which is, after all, the ultimate source of truth.



ZEX

Let’s look at another example. The goverance token from Solana perps dex Zeta Markets; ZEX
https://solscan.io/token/ZEXy1pqteRu3n13kdyh4LwPQknkFk3GzmMYMuNadWPo#metadata
Metaplex metadata

{
  "key": 4,
  "updateAuthority": "Bs5XaFx9wS8N5ir4QtTb2exhFMKQdZUmjga1peT2DBXt",
  "mint": "ZEXy1pqteRu3n13kdyh4LwPQknkFk3GzmMYMuNadWPo",
  "data": {
    "name": "Zeta",
    "symbol": "ZEX",
    "uri": "https://raw.githubusercontent.com/zetamarkets/brand/master/token/zex.json",
    "sellerFeeBasisPoints": 0
  },
  "primarySaleHappened": 0,
  "isMutable": 1,
  "editionNonce": 255,
  "tokenStandard": 2
}

URI metadata

{
  "name": "Zeta",
  "symbol": "ZEX",
  "description": "ZEX is the official governance token for Zeta.",
  "image": "https://raw.githubusercontent.com/zetamarkets/brand/master/assets/zeta.png"
}


Again this doesn’t seem like the ZEX we know. Least not from the major token analysis tools.


CMC

Zeta price today, ZEX to USD live price, marketcap and chart | CoinMarketCap

The live Zeta price today is $0.06656 USD with a 24-hour trading volume of $1,875,342.36 USD. We update our ZEX to USD…

coinmarketcap.com



DEX Screener

https://dexscreener.com/solana/ZEXy1pqteRu3n13kdyh4LwPQknkFk3GzmMYMuNadWPo

It’s completely different story to what is actually on chain.
Let’s look at a couple more examples to get a better picture of what’s going on.



ACT

Let’s look at a pump.fun token, Token Act I : The AI Prophecy. Solscan helpfully labels pump tokens in the headline info
https://solscan.io/token/GJAFwWjJ3vnTsrQVabjBVK2TYB1YtRCQXRDfDgUnpump#metadata
Metaplex metadata

{
  "key": 4,
  "updateAuthority": "TSLvdd1pWpHVjahSpsvCXUbgwsL3JAcvokwaKt1eokM",
  "mint": "GJAFwWjJ3vnTsrQVabjBVK2TYB1YtRCQXRDfDgUnpump",
  "data": {
    "name": "Act I : The AI Prophecy",
    "symbol": "ACT",
    "uri": "https://ipfs.io/ipfs/QmapPN3ZaZTKQ7XYmEDjh75j2V83dcBoNg8FTQrZGEGcAE",
    "sellerFeeBasisPoints": 0
  },
  "primarySaleHappened": 0,
  "isMutable": 0,
  "editionNonce": 254,
  "tokenStandard": 2
}

URI metadata

{
  "name": "Act I : The AI Prophecy",
  "symbol": "ACT",
  "description": "Act I : The AI Prophecy",
  "image": "https://ipfs.io/ipfs/QmUfrHNLqia7NmqgbzHYGF4rtX75nEwukPFFU1YscKKquL",
  "showName": true,
  "createdOn": "https://pump.fun",
  "twitter": "https://x.com/repligate/status/1841064405980913705",
  "telegram": "https://x.com/repligate/status/1839080227944935934",
  "website": "https://cyborgism.wiki/hypha/act_i"
}


“finally!”, you might be thinking, “a token has the correct metadata on chain!”
But look closer.
That’s not a TG link, it’s an X link. And the X and TG links are a X status update, not an X profile.
Least the website looks right… right?


Birdeye

https://birdeye.so/token/GJAFwWjJ3vnTsrQVabjBVK2TYB1YtRCQXRDfDgUnpump?chain=solana

Birdeye not only doesn’t list the website from the metadata, instead it lists the token launch page on pump.fun.
And the X (https://x.com/amplifiedamp) and TG (https://t.me/actportal) are completely different to what’s on chain in the metadata.

One last example before we dig into what is exactly going on with Solana token metadata.



HMTR

Our favourite under-the-radar project on Solana. HampterFi is a tinker’s and trader’s dream. Filled to the gills with interesting tools it’s one of our go tos for plenty of our builder/trader needs.
And their token ain’t half bad (in fact it’s 100% in terms of metadata)
https://solscan.io/token/7JhmUcZrrfhyt5nTSu3AfsrUq2L9992a7AhwdSDxdoL2#metadata
Metaplex metadata

{
  "key": 4,
  "updateAuthority": "AWC1h4oqLQdurcRZdYPBrwiHbj8HpVW945qKYwwrWBY5",
  "mint": "7JhmUcZrrfhyt5nTSu3AfsrUq2L9992a7AhwdSDxdoL2",
  "data": {
    "name": "HampterFi",
    "symbol": "HMTR",
    "uri": "https://arweave.net/ZwtFwe8_egGlXCJ1ZkwkGmjyXA8HBENscyNn-fj5CyA",
    "sellerFeeBasisPoints": 0
  },
  "primarySaleHappened": 0,
  "isMutable": 1,
  "editionNonce": 253,
  "tokenStandard": 1,
  "type": "metaplex"
}

URI metadata

{
  "name": "HampterFi",
  "symbol": "HMTR",
  "description": "Hi I am Hampter. \nTrading Tools For Everyone.\nHampterfi.com",
  "image": "https://arweave.net/4gD5pJQbMxu-J7tGxtoMRpbirRfAhWcjCunHuNmUqFg",
  "twitter": "https://x.com/hampterfi",
  "discord": "https://discord.gg/qHwDrKxENK",
  "website": "https://www.hampterfi.com/",
  "telegram": "https://t.me/hampterfi_tg",
  "medium": "https://medium.com/@hampterfi",
  "github": "https://github.com/HampterFi",
  "gitlab": "https://github.com/HampterFi",
  "bitbucket": "https://github.com/HampterFi",
  "coingecko": "https://www.geckoterminal.com/solana/pools/HF7E2b13dV1GW9G5Me1AZh11WYceai5F9RCTkozryrh3",
  "coinmarketcap": "https://coinmarketcap.com/dexscan/solana/HF7E2b13dV1GW9G5Me1AZh11WYceai5F9RCTkozryrh3/#Pairs",
  "links": {
    "instagram": "https://x.com/hampterfi",
    "coingecko": "https://www.geckoterminal.com/solana/pools/HF7E2b13dV1GW9G5Me1AZh11WYceai5F9RCTkozryrh3",
    "github": "https://github.com/HampterFi",
    "gitlab": "https://github.com/HampterFi",
    "bitbucket": "https://github.com/HampterFi",
    "website": "https://www.hampterfi.com/",
    "twitter": "https://x.com/hampterfi",
    "telegram": "https://t.me/hampterfi_tg",
    "discord": "https://discord.gg/qHwDrKxENK"
  },
  "extensions": {
    "instagram": "https://x.com/hampterfi",
    "coingecko": "https://www.geckoterminal.com/solana/pools/HF7E2b13dV1GW9G5Me1AZh11WYceai5F9RCTkozryrh3",
    "github": "https://github.com/HampterFi",
    "gitlab": "https://github.com/HampterFi",
    "bitbucket": "https://github.com/HampterFi",
    "website": "https://www.hampterfi.com/",
    "twitter": "https://x.com/hampterfi",
    "telegram": "https://t.me/hampterfi_tg",
    "discord": "https://discord.gg/qHwDrKxENK"
  },
  "data": {
    "instagram": "https://x.com/hampterfi",
    "coingecko": "https://www.geckoterminal.com/solana/pools/HF7E2b13dV1GW9G5Me1AZh11WYceai5F9RCTkozryrh3",
    "github": "https://github.com/HampterFi",
    "gitlab": "https://github.com/HampterFi",
    "bitbucket": "https://github.com/HampterFi",
    "website": "https://www.hampterfi.com/",
    "twitter": "https://x.com/hampterfi",
    "telegram": "https://t.me/hampterfi_tg",
    "discord": "https://discord.gg/qHwDrKxENK"
  },
  "instagram": "https://x.com/hampterfi"
}


This is a stacked token. The metadata is spot on and filled with important information.
If we venture across to the analysis services you’ll see they’ve also been filled out correctly.


Token

7JhmUcZrrfhyt5nTSu3AfsrUq2L9992a7AhwdSDxdoL2

birdeye.so



DEX Screener

https://dexscreener.com/solana/hf7e2b13dv1gw9g5me1azh11wyceai5f9rctkozryrh3
It should come as no surprise HampterFi have built an excellent metadata updater that you can use on their website. More on that very soon.



Metadata on Solana

There’s your token’s metadata then there’s on chain metadata for your token. These are often overlapping circles but they are not the same circle.
Lets run through a selection of the major token analysis services on Solana and show you how they handle token metadata both on and off chain.


Solscan

On Solscan all tokens will have their on-chain data displayed in the Metadata field. Let’s look at a typical no-effort memecoin, PWH, to see how that works.
https://solscan.io/token/FAXKkxyDL8TLsqcphJ3zvruosefZBtEdxXnW7LkSpump#metadata
You use the purple button on the right to toggle between the URI and Metaplex metadata

What isn’t as obvious is how the links at the top of the page under ‘Social Channels’ get populated.
For this we’ll defer to the excellent support people at Solscan to explain.


support@solscan.io

Hi team,
In this specific case, we would like to direct you to our token reputation system — Solscan Token Reputation. In the following image, please take notice of the check mark next to the token name (Peng). This token has a reputation status of Neutral, so all social links (including the website, X/Twitter, and Telegram accounts) are displayed on the token page. At the moment, your token has a reputation of Not Classify (all tokens are defaulted to this state), thus the social links are not displayed.
In the first place, a lot of scam projects had taken advantage of this social links display and included phishing or drainer links in the metadata. Solscan Token Reputation status is designed to help users interact with tokens that are verified as legitimate, and in a safe practice.
​Please refer to the following articles:
- Solscan Token Reputation: https://info.solscan.io/solscan-token-reputation/.
- How to update my token’s reputation status on Solscan?: https://info.solscan.io/how-to-update-token-reputation-status-on-solscan/.
TLDR: Only tokens with a reputation of Neutral or OK will have a full display of token information (including Market Cap, Holder Count, Price, website link, and social links). In order to update the reputation status, kindly get your token verified by Coingecko.



DEX Screener

From https://docs.dexscreener.com/token-listing
DEX Screener automatically looks for token information from external token lists, such as CoinGecko’s. Once a token is present on such a list, all of its information will be displayed on DS (DEX Screener) automatically.
However you can speed up this process by paying for enhanced data (which is 300 USD) https://marketplace.dexscreener.com/product/token-info



Birdeye

Same as DEX Screener in that Birdseye will pull from publically accessible sources (CMC, CoinGecko ect..) when those sources are available.
But, like DEX Screener, you can pay to have these fields updated sooner. Similar pricing to DEX Screener too https://docs.birdeye.so/docs/token-info-update-service



CMC

The listing process is here https://support.coinmarketcap.com/hc/en-us/articles/360043659351-Listings-Criteria and this is a free service but it’s more complex than simply applying
All the details are in the above article but put simply there is are two broad tiers: Verified Listings and Unverified Listings.
And, of course, they offer a paid service to speed up listing. Which is hideously expensive https://support.coinmarketcap.com/hc/en-us/articles/16945563933723-CMC-Priority-CMCP
CMC say they pull data from on chain but when asked what exact fields they look at they decline to disclose.
From CMC support:
Regretfully, we are unable to share the internal link sources as well as which fields are pulled to get the Solana token contract data.

To give you a general information, we recommend you to review our Methodology below:
https://support.coinmarketcap.com/hc/en-us/articles/360043395752-Price-Market-Pair-Cryptoasset



Coingecko

Coingecko are likeCMC in that their listing process follows a similar process https://www.coingecko.com/en/methodology
Where they differ though is there is no express service yo
u can pay for and, to their credit, Coingecko make a point in the above documentation of pointing out this fact.
However, as with CMC, they won’t tell you where exactly on chain they’re pulling data from. From Coingecko Support
Kindly be advised that these data are project-provided during listings application and verified against official website, social channels and information that are publicly available.

As for prices, we pull data (prices, volume etc.) from various exchanges worldwide. We hope this helps!



What pump.fun got right (and what they got wrong)

NOTE: Whilst we’ll be talking about pump.fun specifically all the topics covered here apply to pretty much all pump.fun clones e.g., Moonshot (from DEX Screener), Token Mill, M3M3 etc…



What pump.fun gets right

It’s a poor take that pump.fun mints “unsafe” tokens.
They actually dramatically improved the token standards on Solana. How did they do this?
By standardising token contracts and locking down token metadata.

This Coingecko article explains well the mechanics of pump.fun tokens https://www.coingecko.com/learn/pump-fun-guide-how-to-create-your-own-memecoins.

This explains well the key aspect for most users which is the ‘fair launch’ design where all tokens are available at mint for any user to purchase at market prices.
This is as opposed to projects that allocat large amounts of tokens at mint to insiders/investors, often for free or steep discounts to market value, which then can be quickly dumped onto the retail market.

Airdrop farmers benefit greatly from such token designs as they are able to obtain tokens at below cost of acquisition through cybil strategies and then dump these onto the market for a quick profit (at the expense of legitimate buyers). In fact the entire airdrop farming industry relies on many tokens continuing to NOT be fair launched.

One of the common pre-pump.fun scammer tactics was to simply freeze a token after you’d extracted profits to not allow anyone to sell it by using the Freeze authority (explained here https://help.solflare.com/en/articles/9271566-understanding-frozen-tokens-and-freeze-authority-on-solana).
pump.fun tokens have the Freeze authority revoked at mint so this can’t happen.

Some very large (and seemingly legit…) tokens on Solana have the ability to freeze tokens. Most notably USDC. Search ‘‘Blocked Addresses & Forfeited Funds” in https://www.circle.com/legal/usdc-terms


pump.fun token also have supply locked via the Mint Authority being revoked on mint. This means you can’t simply mint more tokens (thus diluting supply).

Nearly all major L1 tokens (ETH, SOL, even BTC) are able to increase (aka dilute) the total supply via minting more tokens, and do so as part of their consensus mechanism. A lot of major dapp tokens also have the token mint authority enabled.


Another, less effective, tactic scammers used previously was to edit token metadata to try and fool people or simply launch without metadata. This isn’t really as much of an issue these days due to the maturing of the Solana data infrastructure, but pump.fun has standardised this by requiring a minimum amount of metadata on token creation and revoking the update authority at mint so it can’t be changed.



What pump.fun gets wrong

Unfortunately pump.fun isn’t a one-size fits all solution. For one the fair launchis only fair in so much as it’s open season once a token mints and unless you’re particularly good at running trading bots then you’ll likely never be first in line to buy a pump.fun token.
In crypto this is often called ‘sniping’. A common term for this in the non-crypto world is ‘front running’
But then again in pretty much all major stock exchanges around the world you are able to be (legally!) front run by High Frequency Trading Firms so it’s not like this is a “crypto problem” by any means…

Note: If people are told the minting wallet beforehand and are explicitly watching it…that’s a different (much dodgier) story



The other aspect that isn’t great about pump.fun tokens is the lack of ability to update token metadata.
At least a few times a day someone will pop up in the pump.fun Support Telegram group looking for a way to update their token metadata (normally the X account) only to be met with /addsocials

For someone who is trying to launch something that isn’t a 15 min token via pump.fun (which many do, despite what you read) they’re faced with the prospect of having to pay hundreds of dollars to update the centralised, decidedly NOT on-chain, databases of places like DEX Screener, Birdeye ect.. to get their token properly set up.

And being an actual developer won’t help either as the update authority, once revoked, can’t be unrevoked.



Rugcheck — token data validation

At this stage it’s important to highlight an excellent service on Solana called Rugcheck https://rugcheck.xyz/
It provides an easy to understand assessement of a token at a basic level. You can find a link out to a token’s Rugcheck profile on most token data tools (including Solscan).

Rugcheck also offer a verification process, in conjunction with AllDomains, which can help increase the trust in a token https://rugcheck.xyz/verify/token. Well worth considering if you’re looking to launch your own tokens.



HampterFi token tools

Luckily help for your metadata and token minting woes is on the way. There’s a growing number of no-code tools emerging on Solana to help you build great tokens and keep them updated at a reasonable cost.
We’ll be focusing on the tools at HampterFi because these are what we’ll be using for our tokens but here’s non-exhaustive list of the other tools out there:
https://sol-tools.tonyboyle.io/token-tools/create-token
https://famousfoxes.com/foxymint

fluxbeam.xyz

https://app.streamflow.finance/mint-tokens

Key to note: These are all very DIY.

There’s no streamlined process like with pump.fun (and similar services). If you want to make your token tradeable it’s up to you to go and make LPs yourself (a topic we’ll cover in a future post).

Think of it this way: If pump.fun is the Facebook of building a website, then these tools are the Wordpress of website building.

You can mint your basic token at HampterFi https://www.hampterfi.com/minter
And then you can use the Metadata updater to add/update metadata as needed https://www.hampterfi.com/meta

It’s super simple and cost effective. Especially considering the alternatives.
https://x.com/hampterfi/status/1832170320431870369


Get fast shipping, movies & more with Amazon Prime

Start free trial

Enjoy this blog? Subscribe to Cakes On Solana

0 Comments