> 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!
* 🟧🧡🟧


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://blockchainracingclub.gitbook.io/bitter-experiment/.bitter.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
