Reports
Any signed-in user can report a thesis or reply as spam, scam, abuse, impersonation or other. Reports are weighted:
When the weights on a post add up to 3, the post is hidden right away and waits for a moderator. A
thesis.removed event goes out on the streams.
People whose reports are rejected again and again cannot report for 30 days. Their reports then fail with reporting_paused, and they get a reporting_paused notification.
Warnings and pauses
Both can be appealed. A warning or pause whose post is restored is taken back, and a pause it caused is lifted.
Moderator decisions
Notifications
The affected person gets a notification for every decision. Each has akind and a ready-made English text.
People see their notifications at id.cabalspy.xyz/me/notifications, and the thesis widget shows a banner with a link there when something is unread. Platforms with their own UI read them through the APIs below.
The notification object
integer
Notification id, used to appeal.
string
One of the kinds above.
string
Ready-made English text for the person.
object
Details: thesis_id, chain, mint and excerpt (the first 140 characters of the post) where a post is concerned, until for pauses, note for appeal decisions.
string
ISO timestamp.
boolean
Whether the person has seen it.
boolean
Whether the decision can be appealed.
string
Status of an appeal against it:
pending, accepted, rejected, or null when none was sent.Notification
Appeals
An appealable decision can be appealed within 30 days, once per decision, with an explanation of 10 to 1,000 characters. A moderator reviews it. When an appeal is accepted, the post is visible again and the warning or pause is taken back. The person getsappeal_accepted or appeal_rejected with the moderator’s note.
Data API
Read and appeal in the name of one of your users, with your API key. The user must have granted your app the scopethesis and be within your plan’s user limit, as for every thesis write.
GET /v1/theses/notifications
string
required
The user.
Response
items holds the 50 newest notifications, newest first.
POST /v1/theses/appeal
string
required
The user.
integer
required
The notification to appeal.
string
required
The user’s explanation, 10 to 1,000 characters.
201 with {"appealed": true}. Besides the appeal errors above, both endpoints return the usual write errors missing_parameter, consent_required, plan_user_limit and sandbox_user.
Browser API
With the signed-in user’s access token (scopethesis) on the browser API:
GET /thesis/v1/tokens/{chain}/{mint}/me also returns notices: unread (count), latest (the text of the newest notification, or null when nothing is unread) and url (https://id.cabalspy.xyz/me/notifications), so you can show the same banner as the widget.
