Introducing FlagTrail - Steemauto for Flagging Abuse

in #utopian-io2 years ago (edited)



FlagTrail is a Discord bot to flag abusive contents from all subscribed accounts all at once. It can also be used to counter retaliatory flags from the abusers.

The bot periodically updates registered accounts' voting power, vote value, vests, and authorization status from the Blockchain. It uses these variables and required rshares value to make an available voters list for specific content.

Along with flagging abuse it also comments from every subscribed accounts under @steemflagrewards approval comment so that all the participants can be rewarded by the @steemflagrewards.

Available Commands


Command: ?register username vote_weight voting_mana_limit abuser_sp_limit
Example: ?register noblebot 100 90 3000

With the above command, @noblebot can subscribe to the Trail. The bot will respond with a posting authorization SteemConnect link for the trail account.


The trail would use maximum of 100% voting weight as long as @noblebot's voting mana is above 90% and downvote if an abuser doesn't have more than 3000 SP.


Command: ?downvote content_url
Example: ?downvote

Only admin(s) can use downvote command. The trail would only downvote if the content has positive rshares and a @steemflagrewards approval comment is present.


When all the conditions are met, the bot would look for available voters based on criteria set by the subscribers. After that all downvote and follow-on comments will be sent all at once.


Command: ?upvote content_url
Example: ?upvote

Like downvote, this is also a restricted command for the admins. The trail would only process upvote if the content has negative rshares and bring it to zero rshares. This is used to counteract retaliatory flags from the abusers.



Command: ?delete username
Example: ?delete noblebot

Any registered user or admin can use this command to remove a subscribed user from the trail.

There is also ?help - a command for displaying all the commands with their required arguments.


It uses MongoDB for storing users data, dSteem to communicate with the Steem Blockchain, and Discord.js for Discord API.


  • Individual and overall statistics commands
  • Pause command for users
  • Minimum SP requirement for subscribers


  • Create a Discord bot and grab its token.
  • Rename example.env to .env and make required changes to the .env file
  • Change command prefix or Admin roles in config.js if needed.
  • Open up terminal and type npm install to install all the dependencies.
  • Run npm start to start the bot.


When contributing to this repository, please first discuss the change you wish to make via issue or any other method with the (owner) of this repository. But you are free to make your own copy and use it.

Pull Request

GitHub Account

Huge shout-out to @steemseph, @anthonyadavisii, @iamstan, and @wehmoen for testing the bot and all the suggestions.

Rabbit and Red Flag clip art is used under appropriate free license.


Thank you for your contribution. It will be really helpful for the communities to counter the abuse. The code looks great as usual and would love to see it improve as going forward.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Write a ticket on
Chat with us on Discord.

If u donno how to review, then stop doing it. Or u r just doing it for those rewards.
I noticed most of the time you are reviewing this guy's contribution and always giving an inappropriate low score. Tell me the fucking reason.

I know how to do my job, and have you seen the answers given, if not then instead of commenting here go and check. If a contributor wants to know the reason can ask.

would love to see it improve as going forward.

You're a moderator and find this review to be sorely lacking. You mention loving to see it improve but without any specifics? How would you like to see it improve? Is that not the job of a moderator.

If you are going to score something, at least give the courtesy of how @reazuliqbal could have done better.

It would be a crying shame if this post pays out without a vote while your mediocre review receives more STU.

I firmly disagree with your review. This doesn't just add "some value" to the ecosystem.

Toxicity Edited Out

Hello @imacryptorick. The contribution may have been overlooked as clearly there was demand for it and it has been upvoted right now. This doesn't justify such approach and such bad words used in this comment. I completely disagree with the language used here and the behaviour against the moderator who has been warned to provide more info next time as soon as the issue was brought up. Please refrain from using this approach in the future. Thanks

The reason I overreacted is because abuse has the largest impact on

1: STEEM price.
2: our ability to retain users.
3: fair rewards, and the general lack of proof-of-brain on the platform.

Any abuse curbing effort is like a blood transfusion to a fatal car accident survivor. It's something that every STEEM hodler should enthusiastically support.

Proof-of-brain can't exist alongside rampant abuse. And with rampant abuse Steem doesn't even deserve to be even #51 on coinmarketcap.

What this mod did is like igniting a rain forest on fire when the poles are about to melt.

Even if it was not intentional, its a terrible thing to do, and I still would've downvoted his comment, because denying an extremely important, utopian guidelines abiding, open source project for the Steem ecosystem is not something anyone one of us should want.

Since he received feedback, and I hope that he'll be able to do his job properly from now on, I'm removing my downvote.

I just want to see this ecosystem prosper. Even if that means I need not to be nice sometimes.


While I agree that @codingdefined could've maybe added a bit more justification for the given score, the contributor could've also simply asked him to expand on it. I'm 100% sure that wouldn't have been a problem. If the contributor still disagreed with the review, he could've even asked for another person to review it. Instead you all came in here like a mob and insulted him, so I would suggest you take a long look in the mirror and reflect on that.

He also didn't "deny" anything, he simply assigned a score, and the way the utopian-io bot works is that it prioritises contributions with the highest scores first.

That basically means, if a contribution gets a somewhat lower than average score, and a lot of other contributions get an exceptionally high score , the lower scored contribution can get 0.00$ rewards from utopian, if it won't reach its place in the queue before the 7 day mark.

Isn't it a serious bug in the system? Some can put a decent amount of work into a contribution, even if the medium\below average score is justified, it still would mean that those users ge a 🖕big from @utopian-io, because higher scored contributions were prioritized up to the point where the payment window for the lower scored contribution is shut forever.

I don't know whether its obvious or not, but under those circumstances, a user who isn't sure that they'll get a high score in the review, will risk putting all that work without getting the expected reward. Some might contribute regardless, meaning they would contribute even if utopian didn't exist.

But some are doing it, at least partially, for the 30$-70$ reward (or whatever the range is for rewards is these days), those users might choose to do something more financially productive, like adding more shifts to their day-job, or just enjoy their free time playing the Xbox or something, if they feel that the game is rigged (or just simply to unpredictable) they won't participate, and the whole Steem ecosystem loses.

Also, some may disagree with me, but in business, certainty is one the most important a start-up should offer. Right after having a viable product.
I hope utopian can address that, so users won't have to feel like they're gambling when contributing, and may have a fair knowledge about what they're about to earn as long as they follow the rules.

It has been said many times that upvotes from Utopian aren't guaranteed. As @knowledges has already mentioned the idea behind Utopian is incentivising people to contribute to open source projects, which thousands of people already do without receiving any kind of compensation. People shouldn't be contributing / creating an open source because they think they will receive a reward by submitting it to Utopian. I feel like you are completing missing this point and are seeing it as some kind of compensation towards the contributor, which it was never meant to be.

Either way you think about it, it's still impossible to reward everyone (especially with the current price of Steem). Because of this @elear decided to split the reward pool amongst categories (so each contribution is only competing with contributions in the same category) and prioritise contributions with a high score (which generally means a quality contribution). This way it is made sure that at least the best of the best is rewarded, and the others still have a chance of being rewarded.

As for your concerns whether or not people will use Utopian when the next version comes out if the bot keeps this behaviour (which I disagree with): I have complete confidence that @elear knows what he is doing, and I'm sure he has plenty of great ideas to keep users interested, like the new bounty system they are implementing.

I'm not going to discuss utopian's future plans and their viability over Steempeak comments.

^100% this. I hate feeling like I'm gambling when I pour my heart, soul and most importantly my valuable time into a post.

My day job pays me well enough and I could just be focusing on that instead of dealing with hypercritical mods.

Some may have awesome tech skills but doesn't mean they are competent at properly appraising the value of a contribution to our chain, first and foremost, and then the open source ecosystem in a broader sense.

I got un-voted by one of their higher ups which I suspect was due to a damn typo even though I did work and spent time investigating in a bug-hunting contribution which revealed a certain plug-in was finally disabled on the StINC API nodes. I knew it was coming but I learned it finally happened while putting time into troubleshooting the flag rewards bot.

That node is still a default node in Beem so maybe others would run into the same issue and would follow the trail after searching for the error and details I recorded on the blockchain. It could be helpful to someone.

I'm not asking them for participation trophies but if that higher-ups unvote was due to my typo it kind of says something about how exceedingly critical some of them are.

P.S. I know Utopian votes aren't guaranteed but damn the splitting of hairs and throwing the baby out with the bathwater. That shit has got to stop. /rant

One of the main goal of the open source world is to give project users the chance to contribute to the project they love. Even before the birth of, open source exists and people have been contributing to it free without prioritising the "reward." Although the reward sometimes motivate people to contribute to one's project. Utopian serve as a gate way to empower (not "pay") these contributors by rewarding them for their quality effort. If you truely love and appreciate the term open source, you would not even care about the reward. I understand that utopian reward is one of the key factor that motivates some users to contribute but we've mentioned it many times that these rewards are not guaranteed. There wont be hard feelings if the reason why you contribute is not soley tied to the reward.

I suggest saying 'Rewards are guaranteed for most of good contributions' instead!
why we are delegating sp to the utopian? we want to reward contributors

Then it seems the "rewards aren't guaranteed" policy isn't broadcasted enough.
Users who assume they'll receive them, even if they would've contributed regardless will feel cheated.

It's not a good feeling to have if you want them using utopian V2.

It's actually a terrible policy to have if you want them to use Utopian V2.

I hope you change it, because it seriously lowers your chances of becoming profitable.

Thank you for your review, @codingdefined! Keep up the good work!

My review.

This is fucking great, give it a try, I have. 😁 It's auto flagged 3 douchebags already!!


Thank you for your review, @pjau! Keep up the good work! 🙂

Great job mate, this is helpful in so many ways it's crazy, I'm not a developer but as a manual advise fighter, I understand the implications and practical uses we can give to the automation of this process. Gave it a 100% vote 💪

Thank you. 🙂

You’ve created a valuable tool that helps focus our efforts and increase our efficiency. FlagTrail helps us defend the reward pool as well as those Steem neighbors who are willing to help defend it. SFR has the independence to correct retaliation flags from abusers.

FlagTrail’s features work well. It’s been easy to work with. No curation service should be without a version of FlagTrail. Steem Cleaners should pay you for it. 😳

Thank you for testing it and all the suggestions. :)

Steem Cleaners should pay you for it.

They are already doing enough for the blockchain. 😁

Yeah, they do a lot... Cheetah is so cute... speaking of cute... feel free to use this or don’t, as you see fit. 👍

I challenge someone to make a better one (cuz I’m lazy). 😳 Have fun.

Did anyone think about a Flag trail before? I don't think so! How nicely and how clearly a try to remove abuse from the Steemit platform. SFR took this initiative and later you added a fantastic surprise on that. There are many people who are less/more SP holders and they want to spend their personal gain to remove abuse, but can not afford time. Flag trail is not an excellent solution for them? Like I always want to give time on my writings and to my community. Now I can make an equal contribution by following Flag trail to remove the abuse.
What you've done so far is remarkable, I believe in the future you will do even more. And the most amazing thing on you is Honesty!

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 13 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 6 SBD worth and should receive 150 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,

Great work! I am looking forward to create a discord bot for our business. How can I contact you?

Posted using Partiko Android

You can find me on Discord at reazuliqbal#1149.

I know, right?!

I asked mahdiyari if he could have added flag trail functionality a while back to steemauto but the beautiful thing here is that coupled with @steemflagrewards upvotes, this is a abuse fighting force multiplier that Steem desperately needed.

It's a shame some of those mods above couldn't see this for it's worth.

Yeah! 😁

It works with @steemflagrewards. Take a look at this as an example:

Are all those "follow on flag" comments needed?

Posted using Partiko Android

Needed if you want to receive rewards for your effort to clean the Steem from abuse. But in future updates there will be an option to opt out of commenting.

Hi @reazuliqbal, your post has been upvoted by @bdcommunity and the trail!

If you want to support us, please consider following our curation trail on or delegating STEEM POWER to us.

20 SP50 SP100 SP200 SP300 SP500 SP1000 SP


Wouldn't it be better to use Wise protocol to flagtrail abusers?

I was not aware of Wise. Thanks for the link. I'll check it out. :)

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by anthonyadavisii from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Hi @reazuliqbal!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

This post has been included in the latest edition of SOS Daily News - a digest of all you need to know about the State of Steem.