Encoding Relationships in Tokens

In some respect, all tokens contain social information. When my wallet has an Ape, and your wallet has an Ape, our wallets reveal something about our proximity to each other. One day I bought a thugbird and set it as my twitter avi, and then I got 150 new followers.

But the larger a token's community, the weaker its members' expected ties. When token communities need several hundred participants to create price momentum, they tend to focus on the project and not the people. That is, the thugbird community unites around the concept of a thugbird, not the community members' relationships to each other.

I wanted to make something that people could use to create tokens whose sole purpose was to associate their holders with each other.

Madpacks

Madpacks is a token standard for minting and managing tokens in small groups (<= 7), called packs. Every pack has a token. If you hold the token, you're in the pack, and every pack token has the same verified creator.

This way, any dapp can look into a user's wallet, find the pack tokens, then use those tokens to figure out which friend groups that user belongs to, and who else is in those friend groups. A dapp might use this, for example, to tell the user about their friends' activities—an NFT's mint site could say, "3 members from ASAP Mob minted this yesterday."

Madpacks brings small-group identity on-chain. It's the concept of having friends on Solana. This lets users demonstrate allegiance to each other (e.g., FaZe Clan, rat pack, Cheetah Girls), and renders important social information available to all developers.

Example: Press The Button

I made an example app that shows one way that devs could use packs in their projects. The app is called Press The Button. On the app, there's a single button. If you press the button, it shows which of the people in your packs have also pressed the button.

This was my first project on Solana. Big shoutout to the Serum/Anchor discord for helping me get off the ground.

Built With

Share this project:

Updates