Standard Reader

Update on Protocol Moderation

Where account takedowns happen is important

Paul's Leaflets
Sep 18, 2025 · 2 min read
49

s I said recently, I’ve been compressing my descriptions of AT to two major roles. This is a simplification, but it captures the important dynamics:

As lots of applications can access your account and data, the relationship is rather more like this:

If an application decides you’ve crossed its moderation policies, it should pause and/or filter your activity in the application for the duration of the suspension. This should have an effect that’s localized to the application, which is where moderation is applied.

Separately, if a PDS decides that you’ve crossed its moderation policies, it should pause hosting your account and announce it is no longer available. This affects the account across all applications:

If the user subsequently migrates to a new PDS, the account will be restored to the applications:

An account takedown on a PDS is a big deal because it affects all applications. PDS operators should be reserving the takedown for network abuse and illegal content, if possible.  Migrations should also be available post takedown, to the extent that a PDS can offer it without enabling complete resource abuse.

I was surprised to discover recently that our account suspension system has been operating entirely at the PDS level. This appears to be due to a workstream that got dropped in the early 2024 rush to open the network. What should be happening is that we apply a strong label such as `!takedown` which applies locally to our application.

This is rather important for a number of reasons:

  • The idea of a suspension on Bluesky that could affect Leaflet or Tangled is bad
  • Suspensions at the PDS level are ineffective; a PDS migration circumvents it
  • The Bluesky application server allows clients to replace the labeling system, which lowers the cost of running alternative moderation; using labels for account suspensions would better enable that

This is being fixed. Takedowns and suspensions which are not due to legal or network-abuse reasons will be handled using labels, which will be removable using the labeler header.

You’ll also be hearing some news soon from the protocol team about improving migration and supporting independent PDSes more effectively.

Paul's Leaflets
Paul's Leaflets
@pfrazee.com
BlueskyDiscussion
Paul Frazee
Paul Frazee@pfrazee.com
42 replies
picklefactory
picklefactory@picklefactory.org
1 reply
dapurplesharpie
dapurplesharpie@sharpiepls.com

obligatory update from @pfrazee.com which describes how moderation on bsky works (which turns out to have been bugged previously?)

doesn't change my previous statements or my feelings, unfortunately 😔

0 replies
Stefan Bohacek
Stefan Bohacek@fediverse.stefanbohacek.online
0 replies
Emelia
Emelia@thisismissem.social

This is really good to hear: pfrazee.leaflet.pub/3lz4sgu7iec2k

Also, these diagrams capture pretty perfectly the things I've been saying about ActivityPub and AT Proto not being that different, once ActivityPub API is in wide usage. The model looks pretty much the same.

1 reply
山貂
山貂@yamarten.bsky.social
1 reply
Liz Fong-Jones (方禮真)
Liz Fong-Jones (方禮真)@lizthegrey.com
1 reply
vriska
vriska@vriska.bsky.social
1 reply
Ariel M. (she/her)
Ariel M. (she/her)@byarielm.fyi
0 replies
Liz Fong-Jones (方禮真)
Liz Fong-Jones (方禮真)@lizthegrey.com
1 reply
neko
neko@neko.moe.observer

luckily, morale is improving somewhat.. circumventing most of bsky's moderation will now only require using a different client app like deer.social. apps don't need to host their own app servers to have different rules. only things bsky thinks are illegal/spam will get removed from their app server.

0 replies
Jack
Jack@jackvalinsky.com
0 replies
Ruby Chocolate Kitsune ✨
Ruby Chocolate Kitsune ✨@the.choco.one
1 reply
Weaver 🐾
Weaver 🐾@woofawoo.bsky.social

Would this be related to that issue? pfrazee.leaflet.pub/3lz4sgu7iec2k

From my quick understanding, it looks like bans on an App vs an independent PDS in the future for account/content take downs will be addressed.

0 replies
Evan Jarrett
Evan Jarrett@evan.jarrett.net

Note that when I say bluesky i mean their official views of it. I believe alternate clients like deer.social could still let you post unless they listen to the labels bluesky puts on your account. (But the official bsky app could filter you out even if you circumvent)

1 reply
山貂
山貂@yamarten.bsky.social
1 reply
walking mirage
walking mirage@wolf.observer
1 reply
vielle 🪤
vielle 🪤@vielle.dev
1 reply
Velvetshadow
Velvetshadow@velvetshadow.fr
1 reply
Manton Reece
Manton Reece@manton.org

Paul Frazee has another post about the relationship between a PDS and the app layer of AT Protocol. With diagrams! Good description of how moderation and migration can work.

0 replies
Flef
Flef@flefgraph.bsky.social
1 reply
@skewer0846.bsky.social
@skewer0846.bsky.social@skewer0846.bsky.social
1 reply
Daphne Keller
Daphne Keller@daphnek.bsky.social

A couple of weeks later, @pfrazee.com started posting about building pretty much exactly that. Which is AWESOME. 2/

pfrazee.leaflet.pub/3lz4sgu7iec2k

1 reply
Ruby Chocolate Kitsune ✨
Ruby Chocolate Kitsune ✨@the.choco.one

Cliff notes for those curious:

Bsky has already been designed to allow the implementation of separate moderation services that you can swap out yourself.

Clients can decide whether or not to show your account/content depending on the labeling system you want.

Read about this from Bsky's CTO here:

1 reply
Victoria
Victoria@vicwalker.dev.br

If you open one post in a leaflet publication, you have both quotes and comments Quotes are bluesky posts with a embedded link to the post highlighting a segment of text

You can see it in action here

0 replies
dan
dan@danabra.mov

re: first point, there’s actually a real issue there with where moderation is currently applied but there’s ongoing work to fix that. see here for details

2 replies
Bossett
Bossett@bossett.social

And Paul wrote a bit about current state here - where "account suspension system has been operating entirely at the PDS level" - which means that the bar for 'third parties' is actually 'build your own complete ecosystem' and not just 'use a different...'

1 reply
neko
neko@neko.moe.observer

the linked blog post is the latest update on it, which is very promising.

composable moderation in practice means that you pick a base layer when you use an app. then you layer additional mod services on top.

importantly, you can use many different apps at once. you don't have to pick only one.

0 replies
Northsky Social Cooperative
Northsky Social Cooperative@transrights.northsky.social

What Bluesky will have to start doing if they want to block content hosted on our PDS, is start blocking content at the Appview level (which Paul has talked about here: see link) or entirely sever our PDS from their Relay (the nuclear option, unlikely to happen, has only happened to literal nazis)

1 reply
vielle 🪤
vielle 🪤@vielle.dev

theoretically: labellers and pds takedowns (illegal content)

in practice they accidentally moderate at pds and appview levels for tos content sometimes

0 replies
Grace
Grace@gracekind.net
1 reply
Christopher S. Rice, Ph.D.
Christopher S. Rice, Ph.D.@badfutures.com
0 replies
‏Greg
‏Greg@mostech6502.bsky.social

pfrazee.leaflet.pub/3lz4sgu7iec2k

> I was surprised to discover recently that our account suspension system has been operating entirely at the PDS level. This appears to be due to a workstream that got dropped in the early 2024 rush to open the network...

0 replies
Victoria
Victoria@vicwalker.dev.br
0 replies
Blaze
Blaze@blazeberaht.bsky.social
0 replies
jay pico
jay pico@jpco.io

possibly case in point, it’s only been a couple weeks since Paul learned where the moderation happens

0 replies
vielle 🪤
vielle 🪤@vielle.dev
0 replies
m@
m@@matt.evil.gay
0 replies
dan
dan@danabra.mov

to be clear i don't work at bsky (anymore)

you should be able to use pdsls.dev to verify whether any account's data is still there (for any account)

afaik there's an existing issue with moderation being applied at a wrong layer (pfrazee.leaflet.pub/3lz4sgu7iec2k) which i hope they'll fix soon

0 replies
ZippyVtuber🔞
ZippyVtuber🔞@zippyvtuber.bsky.social
1 reply
Aaron Rodericks
Aaron Rodericks@aaron.bsky.team

TBH that was an error on our end that I wasn't aware of until extremely recently pfrazee.leaflet.pub/3lz4sgu7iec2k. It's being addressed architecturally. As far as I'm aware we only ban CSAM at a relay level, but I'm not particularly technical.

1 reply
Alex Sørlie
Alex Sørlie@alex.sorlie.io
1 reply
visionaire
visionaire@handle.invalid
0 replies
Tomás
Tomás@tomasdelgado.ar
1 reply
Hilary Baumann 💻 🥃
Hilary Baumann 💻 🥃@hilarybaumann.com

pfrazee.leaflet.pub/3lz4sgu7iec2k

I think this addresses it somewhat though it does still leave a loophole related to legal compliance.

1 reply
Victoria
Victoria@vicwalker.dev.br
3 replies
AngryDutchman
AngryDutchman@angrydutchman.peedee.es
2 replies
kat
kat@katherine.computer
0 replies
Kandy 🔜CanFURence
Kandy 🔜CanFURence@kandyelmo.northsky.social
1 reply