Skip to content
Home

Draft. This page has not been reviewed by a lawyer. Do not treat it as binding until a human legal review is complete.

Community guidelines

Draft updated 15 September 2026

These rules apply to every chat. Breaking them can mean a redacted message, a dropped message, an ended session, a trust penalty, an account restriction, or a ban. The server decides, not the client.

Minors — the largest enforcement category

Nobody under 18 may use this product. Do not say you are a minor. Do not ask anyone to say they are a minor. Do not sexualise anyone who might be a child.

The text filter flags age statements and school-year patterns (for example “i'm 14”, “class 9”) at high severity. A report reason exists specifically for suspected minors. If we think a minor is involved we treat it as the highest-priority safety issue we have.

When the filter Flags a message under the minor rule (not Terminate, not a spam Flag), the server sets users.restricted_at — not a bans row — and bumps token_version. WebSocket authenticate then fails closed (same error path as a ban). Later sends from that account end the session without delivering. Existing sockets are not torn down on the restrict write; the next send and the next authenticate are what fail closed.

Contact exchange

Do not share phone numbers, social handles, or “snap / insta / tg me” style lures. Contact exchange is the primary luring vector in this category.

The filter flags and redacts those patterns before relay. Trying to bypass the filter is still a violation.

Solicitation and sexual content

Do not pressure anyone for sexual content or nude imagery. Unwanted sexual talk is reportable as nudity or solicitation.

Repeat solicitation is escalated: later hits can block the message or terminate the session.

Hate

Slurs and hate speech are not allowed. The filter can drop the message and signal a trust penalty.

Spam and links

Do not flood, repeat the same text across sessions, or paste junk. Rate limits apply to send, typing, skip, and reports.

Links from domains that are not allowlisted can be blocked for low-trust users and flagged otherwise.

Reports, blocks, and skip

Report is one tap. Reasons in this version:

  • Nudity or solicitation
  • Harassment
  • Spam or scam
  • Suspected minor
  • Hate
  • Other

How reports work

There is no free-text field on a report. Abuse of the report button (too many reports) is ignored and can itself lower trust.

Block is permanent: you will not be matched with that person again. Skip ends the chat and finds someone new. A 30-minute no-rematch window applies after a pair.

Bans and evasion

Bans are stored on the bans table and cached briefly. Token version is bumped so existing access tokens stop working. Creating new anonymous sessions to dodge a ban is still evasion. Age-assurance restriction is separate: users.restricted_at, no bans row.