This is a living document that provides an overview of trust and safety considerations and recommendations for ActivityPub and Activity Streams 2.0. We've structured this document to outline why we need to think about trust and safety, the current trust and safety features in ActivityPub, the current areas of work we're undertaking to improve trust and safety in ActivityPub, and advice for people building ActivityPub-enabled software.

Introduction

Why does trust and safety matter for ActivityPub?

ActivityPub is an inherently social protocol, and as such, it must adequately address trust and safety for the success of the protocol and the platforms that are built with it. As an implementer of an ActivityPub-enabled social platform, if you were to only read the ActivityPub, Activity Streams 2.0 Core, and Activity Vocabulary specifications, you would not have enough knowledge to ensure trust and safety for your service. This report provides additional information to ensure you can reach a baseline of trust and safety in your ActivityPub-enabled software. As noted by the Atlantic Council in their [[[scalingtrust]]] paper:

Risk and harm are set to scale exponentially and may strangle the opportunities generational technologies create. We have a narrow window and opportunity to leverage decades of hard won lessons and invest in reinforcing human dignity and societal resilience globally.

Atlantic Council — [[[scalingtrust]]]

This applies directly to ActivityPub software: we are in a pivotal moment of early growth and adoption, where we can leverage decades of learning on trust and safety for online social platforms to ensure that the protocol meets the challenges that will face us as adoption grows. We regularly face issues with spam and abuse, and we have seen services taken down by online harms related to user generated content. We have already seen issues with moderation reports for harmful behaviour being dropped due to incompatibilities between various ActivityPub software. These issues result in people not trusting platforms that are powered by ActivityPub. Trust and safety isn't just about the needs of specific groups that use platforms, but about ensuring all those that use platforms built on ActivityPub have experiences that align with their expectations to be free from harassment, abuse, and inauthentic activity.

ActivityPub Trust and Safety Task Force

The task force brings together a variety of contributors from varying projects, platforms, and organisations, along with experts in trust and safety, researchers, and moderators. We work to reach consensus on the documents that we produce through regular meetings that are open for anyone to join. Our [scope of work](https://github.com/swicg/activitypub-trust-and-safety?tab=readme-ov-file#scope-of-work) focuses on improving core protocol features that already exist and are in use, before working on new features. ### Workstreams The work of the task force is organized into separate workstreams, focused around user stories and problem areas regarding trust and safety challenges in the ActivityPub ecosystem. Workstreams result in fulfilling specific goals such as: - Producing a document describing the current state of the ActivityPub ecosystem regarding a certain feature or aspect - Developing a common profile of functionality that can be implemented in ActivityPub-enabled software The current workstreams open right now are: -

-

Output documents

Activities related to trust and safety

Draft CG Report - Describes the Block activity as specified in ActivityPub. - Mentions the Ignore activity as not included in ActivityPub. - Recommends giving users more flexible control over their own experiences with filters (instead of or in addition to mutes) and policies (instead of or in addition to blocks). - Also mentions the Flag activity as not included in ActivityPub. - Refers to and for further information.

Sensitive content

Draft CG Report - Describes the widely-used `sensitive` (as:sensitive) property and how it is used. - Develops a processing model based on prior implementation experience for content warnings and hidden link previews, when the aforementioned property has a value of `true`. - Includes criticisms of the existing usage.

Reporting problematic content

Draft CG Report - Define a common profile for the Flag activity to represent a "report". - Explores UX for users and moderators regarding reports.

Addressing considerations

Draft CG Report - Metadata leakage when embedded information is included in activities delivered to wider audiences, such as Announce activities which include embedded information vs Announce activities which include only an id reference - Inappropriate audience targeting, such as sending moderation-related activities to the author of the problematic content vs sending them to dedicated moderators

Discovering moderators

Draft CG Report - no broad agreement yet on how, but you should be able to discover the moderators for a given object in order to send moderation-related activities to moderators

Future areas

### Considerations for service providers For services with users and user-generated content

#### Open registration - Open registration and the moderation responsibility that it entails - Explain that whilst open registration can be desirable, it comes with the responsibility to be able to moderate around the clock, and also should be implemented such that if a server becomes unmaintained, it automatically closes, as to prevent that server from being used as a vector for abuse and spam - Automatically closing open registration upon moderator inactivity #### Federation management - being able to block domains / actors at a service level - Explain the different approaches to federation management: open federation, consent-based federation, and closed federation. Explain how the implementation of federation management can directly impact your users and their experiences. #### Anti-spam The ActivityPub specification contains the following language regarding spam:

Spam is a problem in any network, perhaps especially so in federated networks. While no specific mechanism for combating spam is provided in ActivityPub, it is recommended that servers filter incoming content both by local untrusted users and any remote users through some sort of spam filter.

[[[ActivityPub]]], B.6 Spam

TODO: expand on why this isn't enough ### Verification and trust models