This bot tweets about the price variations of any cryptocurrency every certain time interval.
Every coin listed in Binance are supported.
Prices' data is retrieved from the Binance API.
Tweets generated by the bot look like this:
You can achieve this with just one line of code! Simply choose a coin, a time interval between tweets, and that's it!
-
Node.js: You need to have Node.js installed on your computer to run this bot. You can download it here.
-
Twitter account: This is just a normal Twitter account. You can create one here.
-
Twitter developer account: Log in with your Twitter account and apply for a developer one here.
-
RapidAPI account: If you don't have one already, you can create one here.
- First of all, fork this repository. If you don't know how forking works, check out this guide.
- Now that you have your own fork of the project, clone your repository to your computer.
- Go to the Twitter tokens generator and generate the necessary access tokens for this bot.
- You can skip this step if you already have them.
- Go to the Candlestick Chart API and subscribe to a plan of your choice. Note that the basic plan will allow you to tweet with charts' images every 20 minutes.
- Copy your
x-rapidapi-key
key from the code snippet that you can find in the API page. If you are having trouble finding the RapidAPI key, watch this video. - Create a file named
.env
at the repo's root directory and paste the keys from the previous steps in it (It should look like.env.example
). - Open your console inside the directory.
- Run
yarn
ornpm i
to install the project's dependencies. - Go to the
index.ts
file and choose the cryptocurrency you want, you can also change the time between tweets. Go to the ⚙️ Bot options section to see how to customize your bot. - Finally, run
yarn start
ornpm start
and your bot will start running! - That's it! You have your own Twitter Crypto Bot!
Your bot can be customized if you want it to have a different behaviour. The options that it supports right now are:
Option | Sub option | Description | Default value | Value type |
---|---|---|---|---|
credentials | ||||
consumer_key | Key you get from your Twitter app. | CONSUMER_KEY value in your .env file. | String | |
consumer_secret | Secret key you get from your Twitter app. | CONSUMER_SECRET value in your .env file. | String | |
access_token | Generated access token you get for an specific Twitter user. | ACCESS_TOKEN value in your .env file. | String | |
access_token_secret | Generated secret access token you get for an specific Twitter user. | ACCESS_TOKEN_SECRET value in your .env file. | String | |
decimalsAmount | Number of decimal places after the comma of the cryptocurrency price. | From 0 to 8 depending on the cryptocurrency price. | Positive number | |
hasHashtags | ||||
code | If the tweet should contain the coin code as a hashtag or not. E.g. #BTC. | true | Boolean | |
name | If the tweet should contain the coin name as a hashtag or not. E.g. #Bitcoin. | true | Boolean | |
hasComparisons | ||||
lastTweet | If the tweet should contain the comparison between the current price and the one from 24 hours ago. | true | Boolean | |
lastDay | If the tweet should contain the comparison between the current price and the one from the last tweet. | true | Boolean | |
chartOptions | ||||
interval |
Time interval for each candle.
|
1m |
|
|
limit | Amount of candles in the chart | 16 | Integer. Maximum 1000 |
When you saw the first example, you might have noticed that the tweet interval was set in minutes. If you want to set the interval to certain amount of hours, minutes, and/or seconds, you can use a time object to explicitly set them.
Option | Description | Value Type |
---|---|---|
hours | Time interval in hours between tweets. | Positive number |
minutes | Time interval in minutes between tweets. | Positive number |
seconds | Time interval in seconds between tweets. | Positive number |
As shown in the first example you can also use just a number instead of an object and it will be considered as minutes.
E.g.
bot.setTweetInterval(15)
is the same asbot.setTweetInterval({ minutes: 15 })
If you like what we do and want to encourage us to continue creating stuff, starring and sharing this project would be really appreciated! Also, if you want to support us a little bit more, you can buy us a coffe, or make a BTC tip to the following address: 1E6ZBxA8c32YwJxiWW4ohvm9oVYqqWh5tU
Contributions are more than welcome!
We think that you might have great ideas to make this project even better, so if you do, please create a pull request and/or issue following our contribution guidelines.
This project was made with ❤ and TypeScript