About Threads

Useful information on user roles and more.

This page contains additional information about threads that might help you better understand how threads work.

User Roles in Threads

Not every participant in a thread has equal permissions. In 3Box, we have the roles: first moderator, moderator, member, and user.

Information on these roles and their permissions are listed below from most to least powerful.

First Moderator

First moderators have the highest level of permissions as they are the creator of the moderated thread. Therefore they can decide to:

  • add initial moderators, or remain the sole moderator

  • decide if the thread is a members thread

    • If so, add initial members, or remain the sole member

First moderators also inherit permissions of moderators, members, and users.

Moderator

Moderators exist in moderated threads, if the first moderator chooses to add additional moderators. Once moderators are added, they can:

  • remove any post

  • add other moderators

If the thread is a member thread, they can also:

  • add new members.

Moderators also inherit permissions of members and users.

Member

Members exist in member threads and must be added by moderators. They can:

  • post new messages

Members also inherit permissions of users.

User

Users are all 3Box users. In any thread, 3Box users can:

  • read all posts

This is because threads and the messages contained inside are stored publicly. The only requirement to reading a thread is bring able to define the thread address or the thread parameters.

What Defines a Unique Thread?

Persistent Threads

Persistent threads are uniquely defined in one of two ways: a unique thread address, or a unique set of thread parameters. Both options can be used.

Thread Address

The threadAddress is the unique address of the OrbitDB feed store that keeps the content of the thread, which can be used to identity a thread. No two addresses are the same so this uniqueness holds true even for threads that are saved in different spaces.

Thread Parameters

The thread parameters are a unique set configurations that define a thread. These include: SpaceName + ThreadName + First Moderator ID + Members Boolean. When joining a thread, if any of these options differ then you will be interacting with a different thread.

Ghost Threads

Unlike persistent threads, ghost threads don't use OrbitDB in any capacity so we cannot identify the ghost threads using OrbitDB information.

Thread Address

The threadAddress is ghost threads is simply the complete topic used to publish and subscribe to messages on pubsub. It looks something like this:

3box.chat.spaceName.roomName

Thread Parameters

Ghost threads don't have parameters like moderators, everyone in the room has write access.