@THORChainHammer Bot Overview

THORChain Community
7 min readJun 18, 2020

Important: The bot is best designed to reply-to existing tweets. If you write a brand new tweet to @THORChainHammer, the next time you’ll want to tweet the same command to @THORChainHammer, your tweet will get rejected by Twitter.

Twitter imposed spam-prevention systems which prevent users from tweeting the same command twice within a certain short period of time.

An idea is to make a pinned thread at the top of your profile, and whenever you need to send a command to the bot, you can just reply to that thread.

The bot has been designed to serve 3 functions for the moment:

  • Reply with requested content (which can be links to content or a tweet).
  • Help #THORWarriors find their fit in the community by allowing them to assign themselves a role (or quit).
  • Give tasks to roles.

Let’s dive in deeper…

Content Commands:

Content commands must follow the following structure:

@THORChainHammer content-name

For example:

Someone is asking in a thread the link to the THORChain emission schedule. It’s a pretty tough one to find, it’s buried in the footer of the official THORChain.org website. All you’d have to reply to the user is:

@THORChainHammer emissions

The bot would reply with a direct link to the emission schedule spreadsheet.

Here’s the latest list of available content commands. The commands must follow the exact structure, spacings and names. You cannot send a command in any other way:

  • @THORChainHammer help
  • @THORChainHammer mission
  • @THORChainHammer website
  • @THORChainHammer twitter
  • @THORChainHammer reddit
  • @THORChainHammer discord
  • @THORChainHammer medium
  • @THORChainHammer telegram
  • @THORChainHammer telegram-dev
  • @THORChainHammer telegram-trading
  • @THORChainHammer telegram-announcements
  • @THORChainHammer github
  • @THORChainHammer gitlab
  • @THORChainHammer gitlab-thornode
  • @THORChainHammer gitlab-asgardex
  • @THORChainHammer gitlab-thornodebot
  • @THORChainHammer whitepaper
  • @THORChainHammer economics-paper
  • @THORChainHammer emissions
  • @THORChainHammer exchange-partner-program
  • @THORChainHammer video-explainer-thorchain
  • @THORChainHammer video-explainer-thorchain-yanliberman
  • @THORChainHammer video-explainer-runevault-staking-trustwallet
  • @THORChainHammer whisper-sweet-things
  • @THORChainHammer 3-times
  • @THORChainHammer epic-thread
  • @THORChainHammer illuminate
  • @THORChainHammer opportunities
  • @THORChainHammer use-cases
  • @THORChainHammer grants
  • @THORChainHammer connecting-to-thorchain
  • @THORChainHammer midgard-endpoint
  • @THORChainHammer midgard-network
  • @THORChainHammer motivate
  • @THORChainHammer language-community-guidelines
  • @THORChainHammer recruit-language-community
  • @THORChainHammer recruit-guide
  • @THORChainHammer rebase-whitepaper
  • @THORChainHammer rebase-node-operator
  • @THORChainHammer rebase-liquidity-provider
  • @THORChainHammer rebase-providing-liquidity
  • @THORChainHammer rebase-swaps
  • @THORChainHammer rebase-system-income
  • @THORChainHammer rebase-emission-schedule
  • @THORChainHammer rebase-economics-paper
  • @THORChainHammer research-binance
  • @THORChainHammer block42-thornode-telegram-bot
  • @THORChainHammer audit-certik-report
  • @THORChainHammer audit-kudelski-report
  • @THORChainHammer audit-gauntlet-economic-report
  • @THORChainHammer testnet-bepswap
  • @THORChainHammer rune-price-simulator
  • @THORChainHammer rune-price-simulator-de
  • @THORChainHammer rune-price-simulator-fr
  • @THORChainHammer rune-price-simulator-ru
  • @THORChainHammer rune-price-simulator-zh
  • @THORChainHammer rune-price-simulator-guide
  • @THORChainHammer rune-price-simulator-guide-de
  • @THORChainHammer thornode-yield-simulator
  • @THORChainHammer thorlinked
  • @THORChainHammer thorlinked-mentions
  • @THORChainHammer superrune-vision
  • @THORChainHammer rune-chart
  • @THORChainHammer latest-dev-update
  • @THORChainHammer buy-rune-binance-dex
  • @THORChainHammer black-hole-theory
  • @THORChainHammer buy-rune-bitmax
  • @THORChainHammer buy-rune-ftx
  • @THORChainHammer coinmarketcap
  • @THORChainHammer coingecko
  • @THORChainHammer ama
  • @THORChainHammer when-chaosnet
  • @THORChainHammer contest
  • @THORChainHammer runevault
  • @THORChainHammer brand-rune
  • @THORChainHammer brand-thorchain
  • @THORChainHammer brand-thorchain-community
  • @THORChainHammer creatives-wallpapers
  • @THORChainHammer buy-rune-gold-coin
  • More coming soon…

Community Roles:

I’ve mentioned in the past that the THORChain Community should lead by example, and be an open and front-facing Twitter-bearing community. My theory is simple, the more public exposure THORChain has, the higher chances it may peak one’s curiosity. And the more conversations we as a community have outside of the shadows of Telegram/Discord/DM, the more chances we have to create buzz. We have nothing to hide — why? Well because we’re a a community campaigning-for interoperability. We invite other projects to ask tough questions, study, befriend — and ultimately become liquidity providers / swappers. We as a community should be the most upfront and welcoming #crypto community of all. It’s this attitude that’ll lead this technology to be adopted by the greater ecosystem.

That said, here’s how roles work:

You can join a role, and you can quit a role. By assigning yourself a role, you commit yourself to be an active member of the THORChain Community, and will assist with a variety of functions. This is a great time to reflect on your skills, and be honest with yourself regarding your fit in the community. When the #THORChainAdmins will call for help, we hope that you’ll be ready to assist. It’s the only way this community and project will lead itself towards adoption.

You can assign yourself a role by following this command structure:

@THORChainHammer join role-name

For example:

You’d like to join #THORChainDesigner in the community, because you think you can create some quality creatives — whether it be memes, graphics, badges, banners, or even-assist #THORChainMarketer with some targeted content-focused creatives. All you would have to tweet is:

@THORChainHammer join THORChainDesigner

The bot would reply with:

Welcome to #THORChainDesigner. You may ask for tasks with: @THORChainHammer tasks THORChainDesigner

And yes, you’ve guessed it right. The THORChainAdmins can assign tasks to roles, but I’ll get to that in a bit.

You can equally quit a role you’ve assigned yourself with the following tweet:

@THORChainHammer quit role-name

For example:

@THORChainHammer quit THORChainDesigner

Here’s the latest list of available role commands. The commands must follow the exact structure, spacings and names. You cannot send a command in any other way.

Joining:

  • @THORChainHammer join THORChainEngineer
  • @THORChainHammer join THORChainDevOps
  • @THORChainHammer join THORChainAnalyst
  • @THORChainHammer join THORChainMarketer
  • @THORChainHammer join THORChainDesigner
  • @THORChainHammer join THORChainPartnershipDeveloper
  • @THORChainHammer join THORChainAdoptionDeveloper
  • @THORChainHammer join THORChainPressOfficer
  • @THORChainHammer join THORChainSupportAgent
  • @THORChainHammer join THORChainTrader

Quitting:

  • @THORChainHammer quit THORChainEngineer
  • @THORChainHammer quit THORChainDevOps
  • @THORChainHammer quit THORChainAnalyst
  • @THORChainHammer quit THORChainMarketer
  • @THORChainHammer quit THORChainDesigner
  • @THORChainHammer quit THORChainPartnershipDeveloper
  • @THORChainHammer quit THORChainAdoptionDeveloper
  • @THORChainHammer quit THORChainPressOfficer
  • @THORChainHammer quit THORChainSupportAgent
  • @THORChainHammer quit THORChainTrader

Forgot your role? No problem, run:

@THORChainHammer role

Want to see all roles available without coming back to this article? No problem, tweet:

@THORChainHammer recruit

^ This recruit command can be useful for you to tweet as a reply to others interested to join.

Need to see a recruitment guide to help you out? Tweet:

@THORChainHammer recruit-guide

Want to motivate others to join a role? Tweet:

@THORChainHammer motivate

Tasks:

We built-into the @THORChainHammer the ability for #THORChainAdmin leadership to set tasks for each role. This is because the #THORChainAdmin leadership likely has a better grasp at what the project needs in order to achieve goals — and it’s important that they convey those messages effectively to the @THORChain Community.

The tasks will likely be organized in medium articles, and assigned to each role.

You can request the most up-to-date task list for your role by following this command structure:

@THORChainHammer tasks role-name

For example:

You’d like to get the most recent tasks for #THORChainEngineer because you’d like to contribute to the initiative. All you would have to tweet is:

@THORChainHammer tasks THORChainEngineer

The bot would reply with a tweet or link to a medium article which explains the current tasks assigned for that role.

This is a simpler system than scouring through Telegram/Discord and asking others how you can contribute. Everything would be maintained in clean and organized tweets/medium articles.

Vision:

My vision for this tool is to really give the community the opportunity to work with one another to achieve @THORChain adoption goals. We all know that the more assets get locked into the @THORChain network, the more $RUNE grows in value. So it’s our job to work together to lead towards that.

With that said, we didn’t build a #role-hashtag listen command for no reason…

Conversations on Twitter are public and open for anyone to see. Sometimes we stumble on a conversation that’s outside of our expertise / role… but we still want to help. Well now you can.

Just tweet as a reply the hashtag of the role you think would be able to help that user.

For example, you may stumble on a thread where an Analyst is asking a question about $RUNE, and you can’t help him yourself. Just tweet to him:

#THORChainAnalyst can you help this gentleman/woman ^?

This would stamp that conversation for #THORChainAnalyst roles to come in and help out.

But how can we know if my role’s hashtag has been mentioned? Well, we built in a command which lets each role stalk-for tweets which include the #hashtag relevant to them.

Roles can request the latest #hashtag mentions by following this command structure:

@THORChainHammer stalk role-name

For example:

You’d like to get the most recent mentions for #THORChainAnalyst because you’d like to listen-for conversations and help out. All you would have to tweet is:

@THORChainHammer stalk THORChainAnalyst

The bot would reply with the following link:

https://twitter.com/search?q=(%23thorchainanalyst)&src=typed_query&f=live

^ You’d see all the latest mentions of #THORChainAnalyst.

Instead of asking “@MehowBrains can you help this person?” — everyone now has an opportunity to come and help. This removes the pressure from tagged handles from having-to reply within a short window, and ultimately opening opportunities for others to make their name in the community.

Future:

There’s a ton of features that can be added to this @THORChainHammer, some examples:

  • Enabling/disabling large $RUNE on-chain transaction alerts via private message i.e. “Someone just bought 50,000 $RUNE”. I had this running on my Twitter profile, but some users found it annoying (and hence I disabled it temporarily). We can bring this back by allowing users to enable such alerts to come into their private message inbox instead of a public feed.
  • Pulling data from ASGARDEX using the Midgard API. I can’t express the sheer amount of features that can be fed to liquidity providers, swappers etc. The sky is the limit.

Twitter API Rate Limiting:

The @THORChainHammer has been tested, and Twitter is a little limiting with API requests. There is a limit of 100,000 mention requests daily, 75 requests per 15 minute window. We are doing our best to optimize requests, and in the meantime if the @THORChainHammer doesn’t reply to you — it may very be likely a rate limit issue. Please be patient while we optimize things using the free API limits provided to us.

--

--