Post Promoter JavaScript Voting Bot - Blacklist Tags, Witness Vote Messages & More!

in utopian-io •  4 years ago  (edited)


More bots are running the Post Promoter software now than I can even keep track of and I'm getting requests for new features on daily basis! So here's the latest round of new goodies for all you bot owners (and users) out there...

Blacklist Tags

One nice feature that was requested was the ability to blacklist posts with certain tags. If a bot owner does not want to support posts with certain tags they can now add those tags in the new "blacklisted_tags" array in the config.json file like so:

"blacklisted_tags": ["nsfw", "other_undesired_tag"],

Any bids that are submitted for posts with one or more blacklisted tags will be automatically refunded to the user (if refunds are enabled) with a message indicating which tag(s) are not allowed by the bot. The code for that feature is relatively simple and added to the checkPost() function:

// Check if any tags on this post are blacklisted in the settings
if (config.blacklisted_tags && config.blacklisted_tags.length > 0 && result.json_metadata && result.json_metadata != '') {
  var tags = JSON.parse(result.json_metadata).tags;

  if (tags && tags.length > 0) {
    var tag = tags.find(t => config.blacklisted_tags.indexOf(t) >= 0);

    if(tag) {
      refund(sender, amount, currency, 'blacklist_tag', 0, tag);

Minimum Refund Amount

Funny story here...I registered the @postpromoter account with GINAbot a little while back to receive notifications when certain events happened. This involves sending a 0.001 STEEM transaction with a particular memo to the @ginabot account and then @ginabot sends a 0.001 STEEM transaction back with a success message.

Since @postpromoter automatically refunds any invalid bids it sent the 0.001 STEEM right back to @ginabot and thus the great bot refund war began. The quick fix at the time was to add "ginabot" to the no_refunds list in the config settings, however as a better solution to prevent refunds of transfer messages in general a new "min_refund_amount" setting was added.

"min_refund_amount": 0.002

With this the bot will no longer refund transactions less than 0.002 STEEM or SBD and thus prevent future refund wars and promote peace on the blockchain.

Max Bids Per Author Per Round

There are always those few users who feel the need to make a ridiculous number of posts every day and buy small upvotes for all of them using the voting bots. While many bots blacklist these users I thought I would also add another option to limit the number of upvotes a single author can receive in each bidding round. You can now set this using the following new setting:

"max_per_author_per_round": 1

With the above configuration, an author may only receive an upvote on one of their posts each round, regardless of who sends the bid. At some point I would also like to add a similar setting to limit upvotes by author by day, however that's a much more involved change since the bot software doesn't currently save bid data prior to the previous round.

The code for that is also in the checkPost() method and is as follows:

// Check if this author has gone over the max bids per author per round
    if(config.max_per_author_per_round && config.max_per_author_per_round > 0) {
      if(outstanding_bids.filter(b => == author).length >= config.max_per_author_per_round)
        refund(sender, amount, currency, 'bids_per_round');

Witness Vote Request Transfer Memo

This feature was requested by some bot owners who are also Steem witnesses, like myself. If enabled, each time a user submits a bid to the bot it will check if that user votes for the bot owner for witness (either directly or via proxy). If not it will send them a 0.001 STEEM or SBD transfer with a message asking for their vote to help support the bot. To enable this you must set the following two settings in config.json:

"owner_account": "bot_owner_account",
"transfer_memos": {
"witness_vote": "Thank you for promoting your post with [bot name]! Please consider voting for [bot owner] for witness at to support the service!"

The code for this feature is a bit more interesting. It's a new recursive method called checkWitnessVote(). It's recursive in the case of voting by proxy. It has to continue to follow the trail of proxies until it arrives at the final voter account:

function checkWitnessVote(sender, voter, currency) {
  if(!config.owner_account || config.owner_account == '')

  steem.api.getAccounts([voter], function (err, result) {
    if (result && !err) {
      if (result[0].proxy && result[0].proxy != '') {
        checkWitnessVote(sender, result[0].proxy, currency);

      if(result[0].witness_votes.indexOf(config.owner_account) < 0)
        refund(sender, 0.001, currency, 'witness_vote', 0);
    } else
      logError('Error loading sender account to check witness vote: ' + err);

Thanks for your support!

I feel like these posts are getting longer and longer! Does anyone actually read all of this stuff? If you read this, let me know in the comments! As always I want to thank everyone who has helped and supported me in creating this software. Please stay tuned for more updates in the coming weeks!

Links to relevant commits:

Posted on - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

Great job, I like the witness idea. Not too strange since I'm witness as well. ;-)

You can contact us on Discord.

Hey @helo, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Great work @yabapmatt, as a newbie, u are the 1st witness that i have voted for on steemit; and thats because i am motivated by your selfless work for the community...i sincerely appreciate your efforts....Keep up the good work...cheers

Thank you @fqtee, it's always great to see new users on the platform! Please feel free to reach out to me any time if you have questions or need help with anything!

In my culture,(Yoruba land) we refer to persons like u as "Eshin-waju" meaning the pace-setting horse-a leader! Thanks a lot for your kind words; i will surely reach out to you on some areas of concerns; and i will like ur inputs on how i can bring a re-known international NGO to this platform...Cheers

Can I have this advantage too @yabapmatt?

I will like to reach out [email protected]

i do not appreciate someone advertising for free on my post, since you released your new software i don't think anybody has a chance to make a buck anymore. thanks but no thanks

Who is advertising for free on your posts? and what does my voting bot software have anything to do with that? Also it seems like content publishers are making more money on Steem now than they ever have before so I really have no idea what you're talking about.

If you can provide some specific examples of things you don't like I would be happy to respond to them.

I am still waiting on my upvote for this post: I sent 3 SBD.

Hi @nicholas83 - the bot upvotes about once every 2.4 hours so you need to be a little patient. It looks like you have already gotten your vote at this point. Please check the Steem Bot Tracker website to see when the bot's next round of voting will begin.

Hi @yabamatt I am still a minnow, actually a plankton according to and I just got sent an upvote from @postpromoter for @jerrybanfield's Supernatural Writing Contest. I was supposed to receive around $50 for entering. The bid was 20 Steem from @gmichelbkk which should equate to roughly $80 with a current value of a little over $4 for 1 Steem dollar. (I guess it isn't a 100% return upvote?)

Here is what the transaction looked like in your wallet...

3 hours ago Receive 20.000 STEEM from gmichelbkk

My question and concern is why was my vote from @postpromoter only $34 for 20 Steem. :-( I'm not trying to be greedy but I guess I am a little disappointed and I don't understand why I got such a small upvote in comparison to the pretty good sized bid.

Hi @janellelanae - due to the fact that Steem Dollars (SBD) are now worth about $5 rather than $1 like they are intended, the value of votes shown on and other sites is not really correct.

Assuming your post is set to pay out 50/50 SBD and SP then your payout from the $34 vote will be as follows:

After 25% curation the $34 vote will be worth $25.50. You will receive half of that in SBD, which is 12.75 SBD. At the current price of about $5.30 / SBD that is worth about $67.57. Additionally you will receive the other half of the payout in SP, so you will receive $12.75 of SP at the current price of STEEM.

If you add those you will see that the total value of the $34 vote is actually about $80 that you will receive.

Wow. Thank you. I had no idea it was so off. Thank you for getting back to me about this and explaining it. I feel kind of embarrased now but thank you for kindly explaining it to me. I will vote for you as a witness. Thanks again.

Definitely no need to feel embarrassed, it's overly complicated and confusing right now and many, if not most, of the people here don't really understand it! The good news is that for those of us posting on the platform the high price of SBDs lets us earn a lot more money from our posts!

Yes they seem to get longer but I am still reading them. Thanks again for your information it helps. 👍👍👍👏👏👏😃🎉🎉

Thanks for the work you're doing @yabamatt! I really like the feature you've added for the witness vote request. I wish more Steemit users would take advantage of their opportunity to shape the platform by supporting witnesses like yourself that are consistently contributing to the community. --dt

the bot refund war LOL

I'm glad someone appreciates my little bits of humor :-)

Thats wonderful thought of you

:/ paid 3 Steem worth (12$) to get an 8$ steem payout...

Since @postpromoter automatically refunds any invalid bids it sent the 0.001 STEEM right back to @ginabot and thus the great bot refund war began. The quick fix at the time was to add "ginabot" to the no_refunds list in the config settings, however as a better solution to prevent refunds of transfer messages in general a new "min_refund_amount" setting was added.

No need to squabble over this issue. You guys can send me the 0.001 STEEM since it's causing issues 😁😁😁.

Thank you for the update tho :)

읽어도 무슨 말 인지 모르겠네요.

I voted in a very nice. utopian-io post post and commented and followed you and shared the post so that everyone can see this post and vote in this post.Hello friends have been there for the last few days join steemit family.steemit is a great platfram for us.i hope everyone support me for success.....@steemitraj

Thank you for the contribution. It has been approved.

Great description, great contribution. I like how you go in details. Your posts are definitely great examples for other to be inspired by. have anice day

Hey @yabapmatt, great job!

By its very name I can guess that post promoter java vote is some software that promotes posts automatically. I want to know how can one get this and how much does the programmer charge for this software?

I think the witness vote transfer request is awesome. That sounds particularly intriguing to me since I am currently trying to set up a witness node. Thanks for all the great work you do.

Thanks for your information @yabapmatt

Hi steemit friends Please support
Follow upvote me @aneukmeutuah
Thanks for your generous

Hi steemit friends Please support
Follow upvote me @ework
Thanks for your generous

Thanks for the great project and contributions . I see great things being added on steemit day by day!

Thnks you sir contribution. approved good job sir

Nice work as always @yabapmatt ! .. and that bot work with @ginabot .. hahahah, please accept my refund, no you accept my refund, no you accept my refund .. LOL

Hey @yabapmatt I am @utopian-io. I have just upvoted you!


  • WOW WOW WOW People loved what you did here. GREAT JOB!
  • You are generating more rewards than average for this category. Super!;)
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!


Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord

Hi for some reason there was a glitch in steembot tracker page and my vote got sent twice, i dont have much SBD in my account can you please refund me one of the votes 3SBD. Thanks

Is it possible to run the post promoter code on a container based website like openshift by redhat ? I cant seem to get the code to work on openshift.

Please vote for me and like my post I have done that to you thanks

You provide some of the (very few) really essential steemit tools. At least your tracker should be there on the menu, under steemit chat, IMHO.

Thank you for your hard work. It is very appreciated.

lol actually i was begining to wonder when the long message will finish but thanks for the contribution to this community @yabapmatta

thanks for your very useful postings, i am new in steemit and now i will follow you and honestly i like to post you especially this one ,, god job bro


Thanks for giving os the Bot tracker service.
Please consider, removing the bot: sleeplesswhale
(do you have a black list for bots?)

They do not always, upvote and do not respond.
see the comments on this post:

Thanks @yabapmatt for the work you've been doing! We've been using you tool now for a week and really appreciate how you've simplified the process for accessing and assessing which bots to use. have a nice day

wow very awesome story I like it thanks sir

that's very helpful post!!
thank you.

Your postings are very good friends, thank you for existing share ataspostingan may be useful for all of us

nice post, good information

Gostaria muito de saber mais e receber ajuda , quem puder ajudar assim poderei ajudar a outros tambem ! acho muito bom e interessante que aqui nessa rede todo mundo se ajuda e isso é extremamente importante para todo nos ... sucesso todos ! PT BR

sir i send 3 sbd and you mention that i will upvote 1.87% but you only upvote my pic 0.87%..

Having a hard time understanding how this will earn you more. Lost 4$ in payout for 3 Steem. If you could explain to me how I could maximize my earning, would really appreciate it. I've been creating so much educational content for Steem, I would definitely put this service to good use... Would use it each time I post. Would appreciate some tips @yabapmatt on how to maximise earning with this service. P.S i've voted you as a Witness aswell

Tip 1) Don't use full Steem power up Post right?


Thanks so much for this @yabapmatt. I love your services and use them regularly. I would like some help if that is possible.

I have recently started a bot called @greengrowth. This bot is targeted at the environmental and sustainable communities, but others can use it.

Anyhow, I was wondering how to get listed on the SteemBotTracker Website? Any help or pointing in the right direction will be welcomed.



I can list it in the other bots section, however I would ask that you add a profile image and some info on how to use the bot in the profile as well, that is where the site pulls its info from.

Thank you. I have also updated the JSON Metadata using the tool on your website.

In the longer term I would like to get the bot on the main section of the bot website. Do I need more SP to do this?


You got a 50.00% upvote from @greengrowth courtesy of @greengrowth!

thanks for the current info. I will use these boots

Read the entire post. Very informative. I’m still learning about how voting bots work and how everyone wins. The most simplified aspects of resteeminng bots I get. It’s the next level of “pooled” voting that is hard to understand.

Thank you 💝

May I be friends with you I want to have more themes in steem

Thanks so much for this @yabapmatt. I love your services and use them regularly. I would like some help if that is possible. I have recently started a bot called @SmartWhale . how to get listed on the SteemBotTracker Website? Any help or pointing in the right direction will be welcomed.


Hi SmartWhale. I am also interesting in finding out more information on this. If you do find out, could you please help a fellow bot.

@yabapmatt any interest in rebuilding steembottracker so it’s either a mobile app or a responsive web app for users? I’d be willing to rebuild the ux and ui to make the app an easier experience as for mobile it’s brutally broken. Lmk I’d work a deal with you to offer redesign work in exchange for growth assistance on articles and followers in the community lmk

Hey @theuxyeti, I would absolutely love to create a better experience for mobile users. My problem is that I have a job, a family, and a constantly growing list of Steem projects so I have to aggressively prioritize my time and this isn't too high on my list.

I would be happy to work out a deal with you to redesign it but we would also need someone to actually implement the design. I'll reach out to @suggeelson to see if he is interested/able to do it since he implemented the current design, or else if you have someone else in mind let me know!

yea if you add me and look at my posts im pitching a redesign of the current steemit home page along with other pages coming. I can see a LOT of value for rebuilding steembottracker responsively. I think there are TONS of users that dont follow through with a transaction because the fields are all misaligned on mobile devices. just a thought. I am on discord at TheUXyeti as well. add me and lets chat when able.

Thank you again. Thank you so much for giving beautiful information. The information is genuinely thankful. To help you distribute such beautiful information among us, I think we will help them after some time.


the information is very interesting, I think this software is very helpful for beginner steemian like me and others. hopefully all this is useful for us all in the future.

Waow.. so cool. This is one of the best thing for the beginners to become wealty as soon as possible. 😊

hola, me puedes ayudar??pague a @hellowhale desde y no me voto y no me reembolso. tu puedes reembolsar o al menos puedes eliminar ese bot q esta robando?...Hello, can you help me? Pay @hellowhale from and I do not vote and I do not get reimbursed. Can you reimburse or at least delete that bot that you are stealing? gracias

Very knowledgeable post about post promoter
Before i didn't know. Really you guide thank you very much

Great job on upvoting copyright abuse and helping it to get to the no. 1 position on the trending page! Thanks to services like yours is full of overvalued trash.

Hi @surfermarly, before getting into the issue you highlighted, I first want to address your comment to me. I don't appreciate the tone of this comment which is calling me out and blaming me for another user's particular misuse of an automated service I am providing.

Posting something like this is more likely to lead to a flame/flag war than a constructive conversation about how to address certain issues on the Steem platform. Maybe that's what you wanted, I don't know, but I will respond as if you brought this post to my attention in a more constructive and respectful manner.

Plagiarism and copyright infringement should absolutely not be tolerated here, or anywhere else for that matter. I appreciate you bringing this particular example to my attention, as have many other people, and in response I have downvoted the post with my full personal voting power and have blacklisted the author from using the @postpromoter service in the future as have many other similar services.

It seems to be very common to view these services as bad because some people take advantage of and abuse them, however I believe they do provide a very important service for many members of the Steem community. In any case, I believe content promotion services are not going away, and I, along with many other voting bot owners, work very hard to prevent them from being used by scammers, spammers, and plagiarizers. In fact, I have personally developed many of the tools used by the majority of the voting bots to block the author of this post and prevent similar content from being promoted in the future.

As I mentioned, I appreciate you bringing this issue to my attention, and I hope you will continue to bring similar issues to my attention when and if you see them. I am also always open to discussing content promotion services, their place on the platform, and how they can be improved. I would just ask that next time you contact me that you do it in a more constructive and respectful manner.

Thanks for your reply. Since you're not planning to remove your upvotes on obviously stolen content, I was completely right about my point of view. Your service helps to overvalue trash.

Why don't you remove your upvote knowing now that the user is abusing not only copyrights but also your service? How can you still be fine with a payout of $400 which is ~1,600 US Dollar for someone who copy-pasted data from the internet?

Oh and with regards to my tone: I'm upset - and as I can see now for a reason! You didn't do this by mistake, you consciously upvote stolen content. And instead of replying to my message on the discord channel you even confirmed it on the blockchain now.

Steemcleaners are surely not the ones to balance out all of your mistakes, you do have to take care of that by yourself. Putting a user on a blacklist is not enough, the rewards for stolen content will still go to his account.

I will do a post about this soon and definitely mention that you're aware of the situation but still don't remove the upvote. themarkymark has been the only one reacting in an appropriate manner here. I will also underline that!

EDIT: The article has been even detected as spam by steemcleaners now as you can see in the comments section of the post. Are you still planning to hold your upvote?

I never said that I was not going to remove the upvote. It seems like you assumed that and then went on to attack and threaten me :-(

Removing the vote is clearly the correct thing to do in this situation and I have now done that. I apologize for not having done it as quickly as you may have wanted, but I prefer not to make hasty decisions and take my time to evaluate the situation and what the community agrees is the best course of action.

I didn't notice your discord message, but would be happy to continue the conversation there assuming you are open to a civil discussion.

I'm sorry, I overreacted.
I sent you a longer message on discord.

Update! All voting bots - except your postpromoter - removed their votes from the respective article now.

Do you still belive it's correct to maintain your upvote as the only service not assuming responsibility?

Very well informed, I like this part most'
Max Bids Per Author Per Round- is really a good idea.

Up vote and follow me bro plzz, I also voted and followed you

This very nice post.. i like it.
best of luck

come to visiting my account story about the nature of aceh , i hope you're like and vote it

@yabapmatt can you suggest a solution please to ignoring my usa military veterans over payment of his service in which he paid 10 sbds by accident just to resteem one post. he has refused to get back to him and return the money but has all the Time in the World to harass people that are offering services to resteem posts. really is looking like a bully and harassing people too. what is your deal taking from a veteran and my friend and not returning their money? Not only did you take 10sbds for a resteem u charge 0.2 for you never replied back to him now he is discourged from using steemit. Really really low. Please fix this.


Your friend postet his comments in the nowhere:

We never received a notification from Steemit.
It's a shame that it takes messaging @yabapmatt just to get your response(but really cool there is soneone out there that has that power). But you can harass other people providing resteem services and their customers. And just to let you know while I have your ear ...resteem services at, least when i use them, i use in conjuction with other services as do a lot of people. Raise your price i dont care most wont but to harass and intimidate others over some kind of bunk claim that you're the owner of the term resteem and even if you were you might want to go and trademark it and go to centralized platform in my opinion. We are supposed to help each other and this platform harassing people and bullying them and the people they are trying to help does nothing for this platform but put it in a negative light and discourages growth

Finally figured how to add the witness @yabapmatt which I now support. Thanks again for all your hard work. :)

ok ok
If you want to succeed, we must work together

Your software is being used for @dailyupvotes and I must admit the stability is great. Thank you for this service I am voting you as witness!

  ·  4 years ago Reveal Comment