I have previously explained why I think the new Farcaster channel moderation system is an exciting experiment that adds new primitives to social medial. Here, I want to go into the mechanics of setting up moderation and customizing it for your specific use case. I expect this post will be mostly useful for channel owners and moderators, and less so for casual users of Farcaster. However, if you just like to know how things work, by all means keep on reading.
General principles of channel moderation
Decentralized channels come with decentralized moderation tools, and so there are multiple options you can employ. The two most prominent ones currently are automod and airstack. I personally have only used automod so that's the system I'll describe here, but I would expect airstack to work similarly, at least in terms of the available moderation primitives. It is relatively straightforward to switch out your moderation engine, so it's fine to get started with one and at a future point switch to another if it provides additional features or benefits or lower costs. (The tools are free at present but will eventually require payment as they have ongoing maintenance costs.)
All of these tools fundamentally work in the same way. They employ a bot that is given moderation privileges for your channel. You interact with the bot to moderate. The interaction with the bot can be purely manual (the bot won't do anything unless you tell it to), or purely automated (the bot implements a set of moderation rules you have defined), or a mix of the two. When you hear "bot" you may initially think of purely automated moderation and you may not like the concept. I think it's best not to think of this type of moderation early on. Just start out in purely manual mode and then add automated rules as the need for them becomes apparent.
Why do you need a bot in the first place? You don't if you as the channel owner want to do 100% of all moderation yourself. I assume you don't. (You may want to sleep sometimes.) The new decentralized channel setup allows for one moderator account which can be distinct from the channel owner. So, you can do moderation yourself, delegate it to a trusted friend, or delegate it to a bot that provides a multitude of features, such as moderation teams, token gating, automated rules, etc. For all but the smallest channels people will likely opt for the bot setup.
There is one last concept you need to know before you can think about creating your own setup. What does the bot actually do when it moderates? I.e., how does moderation work in the new setup? Moderation is a simple binary flag, indicating whether a cast should be included in the Main feed or not. And this binary flag is a like of the cast by the moderator account. In other words, if the moderator bot likes a cast the cast will be shown in Main and if the bot doesn't like the cast (or removes a like it has previously applied) the cast will be removed from Main. That's it. Actions such as curate, ban, hide, etc. all just manage how the bot likes the casts in the channel. For example, "curate" means the bot applies a like and hence sends the cast into Main. "Hide" means the bot removes a like (if previously applied). "Ban" means the bot no longer applies likes to casts from the banned account, potentially overriding other rules that would imply casts should be liked. And so on.
Setting up automod
So let's talk about turning these general concepts into a concrete automod setup. Why automod? I had a quick look at airstack, and it seems a much more powerful and complex tool, with many different things it can do beyond channel moderation. By contrast, automod has a singular focus on moderation. Therefore, to start out, I assume you'll be better off with automod. (I have never used airstack though and would be interested in reading a blog post on how to set it up from start to finish.)
Disclaimer: I am not a member of the automod team and anything I write here is purely based on my experience and experimentation with the system. Some of the things I say may be wrong. Some things may have changed between the time I wrote this and the time you read this. This post is accurate to the best of my knowledge as of June 2, 2024.
Let me also say that automod is extremely minimalistic, to the point where in several instances there is literally a single button you can press, and you either do so or you don't. It works, but it doesn't spend many words explaining how things function and what exactly different parts of the setup do. If anybody from the automod team is reading this, you guys could benefit from a little more text that explains to your users what is happening.
To get started with automod, you go to automod.sh and log in with Farcaster. Then, you get the option to set up a new bot. You need one bot per channel you are moderating. For now, just click on the button to make a new bot, enter the name of your channel, and leave all other settings as is. The default setup mimics channels without moderation, where casts from users with a Power Badge make it into Main and all others do not. After you have created the bot, the automod site will remind you that you have to set the bot as the moderator account for your channel on Farcaster. If you don't do this, or don't use the correct bot name, nothing will happen in terms of moderation. Make sure you copy the correct bot name. (The automod system runs multiple bots with different names for efficiency.)
Next we can configure the bot we have just created. Let's start with "bypass", which I think is one of the most important settings to keep things manageable. (You can find bypass underneath the filtering rules in the Rules tab.) Through the bypass mechanism, you can set up a list of accounts whose casts will always make it into Main. This allows you to set up a list of trusted channel contributors that don't require manual approval each time. Because it's easy to expand or shrink this list, I think it's a very powerful tool for manual curation.
For my AI-art channel, all we use at present is bypass and manual curation. However, I have found that bypass doesn't work unless I set up some rule that simply hides all casts in the channel. I created this rule by asking automod to look for a rather long and arbitrary string of text in the user profile and hide all casts that don't contain this string of text.
I will say that automod is a bit confusing as of this writing because the available actions are negative (hide, ban, cooldown) rather than positive (curate into Main). But, because there is an "invert" button that converts each rule into its opposite, you can pretty much express any rule you want with the tools provided. Also, my understanding is the negative actions are a holdover from how moderation worked a few weeks ago and may soon be switched.
While we're not using automated rules in AI-art, I will point out that automod has a wide range of possible rules, so chances are whatever type of automated criteria you may want to set up (token gating, only allowing certain users to cast, etc.) automod can likely do it. It is also possible to combine multiple rules for even more complex moderation scenarios.
Now let's move on to setting up manual moderation. Automod allows you to create multiple groups of moderators with different abilities to moderate. Maybe some can only curate into Main, while others can curate and hide and ban. At present, in AI-art, I have a two-tiered setup where one group of moderators has access to everything (including the automod settings, see below) and a second group has more limited ability to moderate (currently they can curate, hide, and issue a cooldown).
It's easier to grant privileges than to take them away, so my recommendation would be to start out slowly and initially give new moderators only limited access to the moderation system and once they prove themselves as judicious moderators you can give them increasingly more responsibility.
Along the same lines, I think it's a good idea to have a small team of trusted collaborators that help you manage a channel and its automod configuration. Automod allows you to name such collaborators, and they will have full access to all automod settings.
Finally, I would like to mention that automod provides a detailed log of all moderation actions that have been taken, so whenever a cast either makes it into Main when you think it shouldn't or didn't make it into Main when you think it should, you can check what exactly happened. This also means that should a moderator on your team go nuts and inappropriately curate or hide all sorts of casts you would be able to see this and revoke their privileges.
This completes the automod setup, but we still need to talk about how exactly manual curation is effected. It works via cast actions, which means all moderators need to install the required actions in their Warpcast setup. Automod provides convenient install links for those actions on its moderators settings page, but most of your moderators won't have access to the automod setup so this won't be of use to them. So, you will have to tell them to go to the Warpcast cast actions site, search for "automod", and then install "Curate", "Hide", and whatever other actions you have enabled for them. Then, to curate a cast, the moderators click on the actions button of the cast in their feed and then select the relevant action. This will typically require two clicks, so is rather quick and nonintrusive. You can easily moderate a bunch of casts while you're reading the feed.
Frequently asked questions
I have just been made moderator of a channel. What now? How do I moderate? The first thing you have to do is install the relevant cast actions. Most importantly, you probably need "Curate", which you can find here. Additional cast actions are available here (just search for "automod"). Depending on how you have been set up, you may have access to "Hide" "Ban" "Cooldown" etc.
If one moderator has curated a cast, what happens if another curates the same cast? The second curate has no effect. The curate action simply causes the automod bot to like the cast and the bot will not like the cast a second time. If you want the cast to be more visible like it from your personal account.
Is there an easy way to see if a cast has been curated already? Yes and no. Yes in the sense that you could look up the likes of the cast and see if automod has liked it and if yes then you know the cast has been curated. No in the sense that this procedure requires multiple clicks and is much more cumbersome than just curating the cast again just in case. That's what I do. I just curate what I think should be curated and I don't worry whether a cast was already curated by another mod.
Will the author of a cast know their cast has been curated? They will see that their cast was liked by automod. They will not know why this happened. (For example, in a channel with multiple moderators, they will not know who triggered the curation.)
What happens if one mod curates a cast and another mod bans the same cast? The last action will take effect. "Curate" means automod likes the cast. "Ban" means automod removes any like it may have previously assigned. You can keep applying these actions to the same cast as many times as you like, and whatever is the most recent action is what will determine whether the cast is visible in the Main feed or not.
Is there a public list of all accounts that can moderate a channel? Not at present, as far as I can tell. The channel owner would have to separately assemble the list and publish somewhere.
Can moderators affect the ordering of casts in Main? No, the ordering is currently determined by the Warpcast algorithm. However, by liking or otherwise interacting with a cast you increase its visibility and the likelihood the algorithm will move it higher up in the feed. Yes this is somewhat dissatisfying. It's what we currently have.
Can moderators see the raw unfiltered feed for a channel? Apparently this is currently not possible except for the channel owner. This is one of my biggest gripes with the current system. Moderators need to be able to see the raw feed to discover gems from newer or unknown accounts or accounts not in their following list.