🟧.frens Protocol

Doggfather
4 min readAug 7, 2023

The first Ordinals Soulbound Token

TL;DR

The .frens protocol enables an on-chain social graph for the Bitcoin community. Users share their social connections by adding their friends’ Bitcoin addresses via Ordinal inscriptions. Indexers identify .frens inscriptions and provide a reputational score based on the number of mentions a particular address is having. It’s a non-commercial project with a free mint.

Soulbound tokens what? They are blockchain-based tokens representing a person’s characteristics, features, traits, and achievements. In contrast to NFTs, soulbound tokens cannot be transferred from your soul, i.e., your wallet.

🟧.frens Value Propositions

  1. Display your Bitcoin and Ordinals network to the community, showing how active and deeply connected you are. Leaderboards will encourage active participation in recruiting new members.
  2. You receive a higher .frens score if more of your friends add your address to their .frens ID address list. Such a metric measures the reputation an address is having in the network. There are various use cases for a .frens score: i) Risk indicator for DeFi protocols; ii) Source of trust for new Ordinals projects; iii) Minimum score for WL; iv) Airdrops to your .frens (and .frens or your .frens) for token gating.
  3. You can prove that you were early by your low .frens number. The “OG” .frens numbers will also receive a higher weight in future more advanced .frens score calculations, encouraging early participation once network effects are negligible.
  4. Unlike Twitter or Threads, it’s a decentralized & uncensorable network.

How 🟧.frens works

The protocol has three inscription functions:

  1. Deploy creates a new .frens soulbound token. Users can pick their unique user ID. Each Taproot address can only deploy one valid .frens ID.
  2. Update adds new addresses to an existing .frens ID. Say you made new friends and want to acknowledge that on-chain.
  3. Delete drops addresses from an existing .frens ID.

Everyone could in principle inscribe many .frens soulbound tokens and send them to arbitrary addresses to manipulate their own .frens score. Hence, the protocol uses the inscription service by Ordbit that requires connecting your Taproot wallet. The .frens inscriptions can only be sent to this particular wallet address. Any other .frens inscriptions will not be considered by the indexer.

Frens Leaderboard

You find a preliminary .frens score on the Ordbit website. The left column provides the number of times a user’s (Taproot) address was mentioned in other .frens IDs. We plan to enhance the score in future development rounds by weighting the mentions by their source reputation/OG status etc.

The .frens leaderboard

Create a 🟧.frens ID

My partner Ordbit is the main inscription service and indexer supporting the .frens protocol.

Follow these steps to create your .frens ID:

  1. Set up a Unisat, Xverse, or Leather (ex Hiro) wallet with some Bitcoin in your Taproot address. Skip this step if you already have one.
  2. Go to Ordbit.io, click on “Frens” in the upper navigation bar, then the “Inscribe” button on the upper right, and connect your wallet.
  3. Choose a .frens ID. The website checks whether that ID is already taken (it’s not case-sensitive). Note that it only checks inscribed .frens IDs and not those pending in the mempool. Don’t add a “.frens” suffix to your ID. Make sure there is no typo because you cannot change the ID later on.
  4. Add your friend’s address(es) comma separated. Any type of Bitcoin address works. Do not add your own (receiving) address! Pro tip: Use ord.io to search for your friends’ addresses.

Once your Deploy transaction went through, give the indexer some time to detect and check your inscription. It will show up on the Ordbit’s .frens website. Every valid .frens ID receives a number to reward early adopters.

Deploying a .frens ID

How to update or delete addresses

The Update function adds new addresses to an existing .frens ID. For instance, you made a few new friends and want to acknowledge that on-chain. The protocol uses a separate function to save copying (and paying for) all previously inscribed addresses. These new addresses will be added to the existing .frens ID in the connected wallet.

The Delete function drops one or several addresses from an existing .frens ID. These addresses will be dropped from the existing .frens ID in the connected wallet.

Note that any Update or Delete inscriptions without a previously inscribed .frens ID in the connected wallet are not picked up by the indexer.

Future plans

This is a (very) long-term project. Even though there is no formal roadmap, I have a clear vision and plenty of plans for further extensions once there is enough interest from the community.

First, after an initial invitation-only phase, I will open the .frens network to the public.

We plan to calculate a more meaningful .frens score based on how early an address was added to a .frens ID or how many inscriptions an address with a .frens ID hold, etc.

In the long run, the community should have a role in governing the protocol.

--

--