Audit your NFT collection on chain
Inspect your Solana NFT like a database record and verify that its metadata, extensions, and collection link are really there on-chain.
Audit your NFT collection on chain
The Scenario
The past three days have been a whirlwind. You minted a 1-of-1 token, you stamped metadata directly onto the mint with the Metadata extension, and you wrapped the whole thing inside a collection using the Group and Member extensions. In your head, you know each piece is on Solana. But how do you actually see it?
In your Web2 life, after running a migration or seeding a database, you would not just trust that the rows are there. You would open a database client, query the table, and eyeball the structure. You would check that foreign keys actually point at the right parent rows. You would compare two records side by side to make sure the schema applied consistently.
Today you do the Solana equivalent. You are going to read your NFT and your collection back from devnet, inspect every extension you attached, and confirm that the link between the member NFT and its parent collection is exactly what you think it is. No new minting. No new code. Just a careful look at what is already there, the way a senior engineer reviews their own work before shipping.
The Challenge
What you’ll need
- A terminal with the Solana CLI and spl-token CLI installed (you have used both since Arc 4)
- A web browser open to Solana Explorer on devnet
- The mint address of your member NFT from Day 44
- The mint address of your collection NFT from Day 45
- Your Solana CLI pointed at devnet (run
solana config getto confirm)
Steps
-
Confirm your devnet setup. Make sure your CLI is talking to devnet so any commands against your mints resolve correctly.
solana config set --url https://api.devnet.solana.com solana config get -
Display your member NFT. Use the
spl-token displaycommand on the mint address of the NFT you built on Day 44. ReplaceYOUR_NFT_MINTwith that address.
Look closely at the output. You should see:spl-token display YOUR_NFT_MINTSupply: 1Decimals: 0-
Mint authority: (not set)because you burned it on Day 43 - An
Extensionssection listingMetadataPointer,TokenMetadata, andGroupMemberPointer(plusTokenGroupMemberif you stored member data on the mint itself) - The
Name,Symbol, andURIyou set on Day 44
-
Display your collection NFT. Run the same command against your collection mint from Day 45.
This time you should seespl-token display YOUR_COLLECTION_MINTGroupPointerandTokenGroupin the extensions list, along with aMax sizeand anUpdate authorityfor the group. -
Verify the parent reference. Inside the
TokenGroupMemberdata on your member NFT, find theGroupaddress. It should equal your collection mint address byte-for-byte. This is the equivalent of a foreign key resolving correctly between two rows. -
View both on Solana Explorer. Open Solana Explorer, make sure the cluster dropdown shows Devnet, and paste in your member mint address. Click around the page and find:
- The Token Extensions panel listing every extension on the mint
- The Metadata section rendering your token’s name and image
- A link or address pointing back to the collection mint
Repeat for the collection mint address.
-
Compare with an old fungible mint. If you still have any mint address from the SPL Token weeks, run
spl-token displayon it too. Notice what is missing: noExtensionsblock with metadata, no group pointer, decimals greater than zero, supply larger than one. This contrast is the clearest way to see what makes an NFT an NFT on Solana.
Run it
solana config set --url https://api.devnet.solana.com
spl-token display YOUR_NFT_MINT
spl-token display YOUR_COLLECTION_MINT
What Just Happened
You just did the Solana version of a careful code review. The spl-token display command parses the raw bytes of the mint account and walks the Type-Length-Value list of extensions stored on it, then prints each one in human-readable form. Every line you read came from real data sitting on devnet validators, not from a JSON file on your laptop. The reason it works is the design choice you have been quietly relying on for three days: with Token Extensions, all of the metadata, all of the group membership, and all of the issuance rules live on the mint account itself rather than scattered across companion accounts.
The parent reference check is the most important moment of the exercise. When you confirmed that the Group field on your member NFT equals your collection mint address, you proved that anyone in the world, including Phantom and every marketplace, can verify membership without trusting you or any off-chain index. That is what people mean when they say Solana NFTs have “verifiable provenance.” It is not a marketing phrase. It is two byte arrays comparing equal.
If your old fungible mint also showed up bare in comparison, you now have a concrete sense of why NFT tooling is just SPL Token plus a small set of carefully chosen extensions. There is no separate “NFT program” you are missing. The same primitives you have been using since Epoch 1 are what make collectibles possible.
Resources
- Token Extensions overview on the official Solana docs
- Metadata Pointer and Token Metadata reference
- Token Groups and Members reference
- Solana Explorer (devnet) for visual inspection of any mint
-
Token-2022 program documentation covering the
spl-tokenCLI flags for extensions
Submission
Take a screenshot of your spl-token display output for both your member NFT and your collection mint, side by side if you can, and submit it below!