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

# .bitter

This is just a fun experimental standard demonstrating that you can create off-chain social media with inscriptions. It by no means should be considered THE standard for social media on bitcoin with ordinals, as I believe there are almost certainly better design choices and optimization improvements to be made. Consequently, this is an extremely dynamic experiment, and I strongly discourage any financial decisions to be made on the basis of it's design. I do, however, encourage the bitcoin community to tinker with standard designs and optimizations until a general consensus on best practices is met (or to decide that this is a bad idea altogether!).

## Idea

Experiment to see if ordinal theory can facilitate social media on bitcoin

* Create a .bitter username
* Create a "post" function
* Create a "reply" function&#x20;

A name.bitter post can be found by searching for the user/post via a index like unisat, for example. A poster can find replies by searching all "reply" that reference the Ordinal # of the "post" Inscription.

◉ name.bitter initialize user handle

EXAMPLE: SatoshiNakamoto.bitter

◉ "post" create a post, followed by :"content"

EXAMPLE:

{ "username": "name.bitter", "op": "post", "content": "This is a sample post content." }

◉ "reply" create a reply to a post. "reply" will reference the ordinal inscription ID of a "post"

EXAMPLE:

{ "username": "name.bitter", "op": "reply", "ordinal": "123", "content": "This is a sample post content" }

## Operations

As I mentioned above, this is just my fun experimental standard design. I welcome anyone to improve upon the design, rules, or compression issues it poses. For traceability json {} are required for all functions except claiming of user names, as well as the minimum required information to satisfy one of the functions.

### Deploy .bitter handle

```markup
SatoshiNakamoto.bitter
```

<table><thead><tr><th width="97">Key</th><th>Description</th><th data-hidden>Required?</th></tr></thead><tbody><tr><td>.bitter</td><td>Username.bitter Only lowest inscription # is the valid .bitter user name</td><td>Yes</td></tr></tbody></table>

### Create .post

```
{ "p":".bitter",
  "username":"SatoshiNakamoto.bitter",
  "op":"post",
  "content":"Sample",
}
```

<table><thead><tr><th width="171">Key</th><th width="126">Required?</th><th>Description</th></tr></thead><tbody><tr><td>p</td><td>Yes</td><td>Protocol: Helps other systems identify and process .bitter events</td></tr><tr><td>username</td><td>Yes</td><td>Helps identify the user posting</td></tr><tr><td>op</td><td>Yes</td><td>Operation: Type of event (Post, Reply)</td></tr><tr><td>content</td><td>Yes</td><td>The content of the post</td></tr></tbody></table>

### Create .reply

&#x20;&#x20;

```
{ "p":".bitter",
  "username":"SatoshiNakamoto.bitter",
  "op":"reply",
  "ordinal":"34b174f9fe3027d4ab8f2bb7f9e320259e596306d751cc0c09e7b4906f4d1ddbi0",
  "content":"Sample"
}
```

<table><thead><tr><th width="153">Key</th><th width="127">Required?</th><th>Description</th></tr></thead><tbody><tr><td>p</td><td></td><td>Protocol: Helps other systems identify and process .bitter events</td></tr><tr><td>username</td><td>Yes</td><td>Helps identify the user being replied to</td></tr><tr><td>op</td><td>Yes</td><td>Operation: Type of event (Post, Reply)</td></tr><tr><td>ordinal</td><td>Yes</td><td>The Ordinal ID number of the post you are replying to</td></tr><tr><td>content</td><td>Yes</td><td>The content of the post</td></tr></tbody></table>

### Notes

* Have fun!
* Only the lowest username inscription # is valid
* replies to a post can be searched by searching your handle and viewing any replies that reference the ordinal # of your post inscription
* There are no limits on content length
* Usernames.bitter have a tentative cap of 21 bytes, subject to change by community consensus.
* This is an experiment.&#x20;
* There is NO FINANCIAL VALUE TO ANY .bitter INSCRIPTIONS
* This is my ONLY contribution to .bitter, the community will HAVE to do the rest, including indexing etc.
* There is no leader for .bitter
* Don't be bitter if this takes off!
* 🟧🧡🟧
