Like many existing social platforms, the user typically starts by creating a character, which will be the entity participating in all the following social activities. The difference here is that each character is a sequentially ID'd NFT owned by the creator. There’s no limitation on how many characters each address could create or hold. But holding one character NFT doesn’t mean using that character to socialize definitely. So to eliminate unnecessary confusion, each address could select one of their characters as the primary character. By default, the first created character is the user’s primary character.

When a character is created, the user could set a human-readable handle as the unique identifier for that character, and also an optional link module that will be triggered once that character is linked in the future. Besides, the nickname, bio, avatars, or some other useful information can be set within a URI that points to such character metadata. Crossbell doesn’t care about whether that URI uses ipfs protocol or https protocol, which is a free choice for applications or users. Just for better data interoperability, Crossbell proposes a suggested character metadata specification.

All of this initialized information could all be updated later at any time.


All interactions on Crossbell are essentially transactions requiring the user’s signature, which can be an experience barrier for traditional Web2 users. To provide more convenience, each wallet address could set an operator account on behalf of they to make posts, or follow anyone else. That permission can be granted or revoked at any time.