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

https://preview.redd.it/vaocqh2s4d3c1.png?width=680&format=png&auto=webp&s=16fac1b2c6537d646d8703b376b6aac8f1ce4fbd

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

https://preview.redd.it/bsyzprlu4d3c1.png?width=680&format=png&auto=webp&s=cab1005ca60320a13d53e7c6727aa27f9668344e

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.

https://preview.redd.it/7rsscw5w4d3c1.png?width=679&format=png&auto=webp&s=27019e4253397fdb1a075dd2c0426f8b169f9b17

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!