Jul 29, 2023
The year was 2022, I was as sick as anyone with the state of NFTs. But I wrote a set of tools for interacting with the Solana Blockchain anyway… 🤷♂️
The year was 2022, I was as sick as anyone with the state of NFTs. The technology was really interesting - I felt that digital ownership and scarcity could be great for digital artists, but surely overpriced collectible JPEGs of Apes weren’t it, right? So I set out to create an NFT project that actually had some artistic merit and pushed the limits of what NFTs could represent. To do this I wrote some tools for setting up a collection of NFTs on the Solana blockchain.
I started out in React, then eventually moved everything to Next. Everything is built to run locally on the user’s computer. No sensitive data ever leaves their machine - until they send it to the blockchain. And even in then it goes directly to where it needs to go, nothing sensitive ever touches my server.
Over the course of many evenings I thoroughly explored the possibilities of the Solana blockchain.
This page was done last. I think the bit about the basics of Wallets, KeyPairs and Addresses turned out quite nice! With examples of each that are randomly generated and can be re-generated as often as you like.
I built a Keygen (🌐 → https://indx.at/tools/keygen) that allows you to create new wallets or inspect existing ones on devnet, testnet and mainnet.
- You can generate a wallet from a mnemonic seed phrase (or paste your own mnemonic seed phrase and generate the rest from that - yes seed phrases from Phantom wallet will work perfectly fine, just note that Phantom does not use the main address, look at the first derived KeyPair instead)
- If you have a Mnemonic Seed Phrase, it generates Derived KeyPairs for you - click the use button next to one to set it as the current wallet.
- If there’s a public key (generate one, or paste one in), it will show you the SOL balance and balances for all found token accounts.
- You can also generate a public key directly from a Secret Key or a Secret Key in Uint8-Array format (that’s what you get from some keygens, so you can just paste that in here)
- If you’re on devnet you can airdrop 1 SOL into your account - Airdrop is a bit hit and miss, if it doesn’t work, just try again a bit later. (Nothing I can fix on my end)
- If you have a valid secret key you can transfer SOL to another account (again, all this works on devnet, testnet and mainnet - just select whichever cluster you want on the top-right. Although the actual content of your wallet is of course different on each)
Allows you to run through the entire token creation process.
- Add a Fee Payer account (generate or paste a secret key)
- Optionally set Mint Authority and Freeze Authority accounts
- Create a Token Mint Account
- Mint as many tokens as you want (auto-creates a Token Account for you)
Adding an actual name and icon for your token is a different story. (Oh, seems like they changed the process from submitting a change request to a git repository to something that I could actually do on the site! - Maybe I’ll add that someday…)
Handles the entire NFT collection lifecycle.
- Set up your Main Identity and optionally a Creator Identity
- Set up Collection MetaData and upload it to nft.storage
- Create a Collection NFT
- Set up an Item Metadata Template and configure Traits
- Load the actual data as a CSV file that matches the template to automatically fill in the data
- Add images and upload them to nft.storage
- Preview your collection in a grid of images
- If everything is good, upload the item metadata to nft.storage
- Set up, configure and load the Candy Machine (you load in all the NFTs, whenever a user puts the require amount of SOL in, they get a random NFT out)
- Follow the link to a template you can use to build a website where users can mint your NFTs
- Once users have minted some NFTs you have the option to verify your Account as the Creator of those NFTs.
- And once the Candy Machine is all empty you have the option to delete it and reclaim storage costs.