Source: https://twitter.com/ngundotra/status/1729988769632170404
SPL 20 explainer thread
SPL 20 is ~roughly~ a Solana version of the BRC 20 inscription standard on Bitcoin.
You can do 3 things with this standard:
- Deploy a new SPL 20 collection
- Mint to a new SPL 20 collection
- Transfer an SPL 20 token
Deploying SPL 20
You can “deploy” a collection with a “maximum size” of however many you want, like 1billion.
However, the max # you will be able to store in a Fair Launch deployment is ~250,000.
For more info see the Libreplex Fair Launch program https://explorer.solana.com/address/8bvPnYE5Pvz2Z9dE6RAqWr1rzLknTndZ9hwvRE6kPDXP/anchor-program
Minting SPL 20
Minting an SPL 20 just mints a Metaplex NFT to your wallet & makes it immutable. There’s some inscription stuff that happens on-chain too, but it seems mostly irrelevant.
Your `ordinal` number is actually determined by the *TOTAL NUMBER* of inscriptions ever done
Minting SPL 20 - 2/3
At any moment your ordinal number is decided by the total_inscription_count in this global account: https://explorer.solana.com/address/3QVcm8JUz7TCyCQhPMGogjdbhgCW9chEzKZhLcddn4QH/anchor-account
You can see the `inscription_count_total` as the first field. This is the `ordinal` number you will end up minting if you mint rn
Minting SPL 20 - 3/3
Upon successful mint, your mint address is stored in the Deployment’s Hashlist, along with your `ordinal` number.
This is how marketplaces determine your SPL20 number. Your SPL 20 # is GLOBALLY unique across all SPL 20 collections.
Transferring SPL 20
Works like normal token transfer. Metadata & inscriptions are immutable.
Looking forwards
I worry a little bit about validating collections & documentation, but I know that will arise in good time.
Actually it’s even possible to use account compression to keep track of the hashlist in real-time. This would expand max size to ~1b accounts!
Best of luck to @LibrePlex
Godspeed 🪽
Huge s/o @Scruffyy_ for helping me work through all this!