> For the complete documentation index, see [llms.txt](https://doggfather.gitbook.io/the-.frens-protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doggfather.gitbook.io/the-.frens-protocol/the-.frens-protocol.md).

# The .frens Protocol

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 an [on-chain reputational score](https://twitter.com/decryptmedia/status/1697080559816609888) based on the number of mentions a particular address is having. It’s a non-commercial project with a free mint.

### Use cases

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:&#x20;

* Risk KPI for DeFi protocols
* Source of trust for new Ordinals projects
* Minimum score for WL spots in new drops
* Send airdrops to your .frens (and .frens of your .frens).

### Operations

#### Deploy function

```
{
   "p":"frens",
   "op":"deploy",
   "id":"doggfather",
   "addr":[
      "bc1p5vtmpp6j4sawj6a6jtwqwfy38pw8lnskd9wdcwkqfuak0p4grd5s9sa8uu",
      "bc1pdhfte32r3q89hlt6se84kpge2dsu6nk268shc9d62nuu3afqmj4qqcy83q"],
   "notes":"Twitter: @doggfathercrew"
}
```

#### Update function

```
{
   "p":"frens",
   "op":"update",
   "addr":[
      "bc1psdrtnpakc5hlmvtu0j9gyy05ftlxh7zjx6zuqal4ct3txdt87lmsuekmty"]
}
```

#### Delete function

```
{
   "p":"frens",
   "op":"delete",
   "addr":[
      "bc1pdhfte32r3q89hlt6se84kpge2dsu6nk268shc9d62nuu3afqmj4qqcy83q"]
}
```

<table><thead><tr><th width="125.33333333333331">Key</th><th width="144">Required</th><th>Description</th></tr></thead><tbody><tr><td>p</td><td>YES</td><td>Protocol: Helps other systems identify and process .frens events</td></tr><tr><td>op</td><td>YES</td><td>Operation: Type of event (Deploy, Update, Delete)</td></tr><tr><td>id</td><td>YES (Deploy)</td><td>Frens user ID</td></tr><tr><td>addr</td><td>YES</td><td>Bitcoin address(es)</td></tr><tr><td>notes</td><td>NO</td><td>Additional information such as a Twitter handle or a sats name</td></tr></tbody></table>

Each address can only *Deploy* one .frens ID. Our inscription service provider Orbit 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. Make sure there is no typo because you cannot change the ID later on. <br>

The *Update* function appends new addresses to an already deployed .frens ID while the *Delete* function is dropping an address/several addresses from a .frens ID. Note that any *Update* or *Delete* inscriptions without a previously inscribed .frens ID in the connected wallet are not picked up by the indexer. &#x20;

### Confirming .frens events&#x20;

Everyone could in principle deploy many .frens IDs and send them to arbitrary addresses to manipulate their own .frens score. Hence, the protocol uses an inscription service run by [Ordbit ](https://inscribe.ordbit.io/?coupon_code=DOGGFATHER)that requires connecting your Taproot wallet. The .frens inscriptions can only be sent to this particular address. Any other .frens inscriptions will not be considered by the indexer. Valid .frens IDs are ranked from 0 to *m* by their inscription number.
