McTrade is a bot exploiting Binance API, open source! built in python !

Overview

Size Linex Contributor Downloads Issues License Stars


Logo

Open Source Crypto Trading Bot using Binance API

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Acknowledgments

About The Project

McTrade can run 24/7 on a server, laptop, anywhere.. his main purpose is to make smart trade. This Bot is not built for making 20 order/sec, McTrade will only trade when many parameters are combined. In fact, he is using 3 main financial indicators used by almost everyone trader on the market.

Here's why:

  • You will only need to give a configuration file to the bot, and that's it he won't need you anymore.
  • McTrade is free, so there is no fee, EXCEPT from Binance (0.1 %).
  • You can trade almost any crypto you want and at the same time !

Of course, we are in the real world, don't expect McTrade to make you billionaire in 2 weeks, the main idea of this bot is to give "passiv" revenue to anyone who wants to. Trading is not like roulette or black jack, so McTrade won't bet your money randomly and pray to gain money. Every decision he will make is mathematically correct.

(back to top)

Built With

The techs are really simple that's why he is really portable and has not a high memory usage !

Getting Started

Do not panic everything will be alright, really simple!

Prerequisites

You need of course python 3.6+ to launch everything, and pip3 to install package

  • apt-get
    $ sudo apt-get update
    $ sudo apt-get install python3.6
    $ sudo apt install python3-pip

Installation

  1. First get your account at Binance
  2. Put money on your wallet (50 USD or EUR ) is recommended but not mandatory you will see why.
  3. Clone the repo
    git clone https://github.com/nerap/McTrade.git
  4. Installing dependencies
    make setup
  5. Enter your API keys in .env
    api_key=SOME_API_KEY
    secret_api_key=SECRET_API_KEY
  6. Here we go you successfully installed McTrade !

Usage

McTrade works like any other script. The main argument that McTrade need is a configuration file

  python3 McTrady.py -f path/to/config/file

Default config files are in config_file/ directory

  python3 McTrady.py -f config_files/basic_config

The "tricky" part comes now, the configuration file. No extension needed but a really strict format is expected but unusual. The format is a json object, it's a json file.

   {
       "symbols": [
           {
               "symbol": "ETHUSDT"
           },
           {
               "symbol": "BTCUSDT",
               "quantity": 20,
               "risk": 7
           },
           {
               "symbol": "XRPUSDT",
               "quantity": 50
           }
       ]
   }

You have to respect that symbols is the key to yours symbols array, so whatever you are trying to do keep "symbols" as the main key to your array.

Like this

    {
        "symbols": [
            {
                "symbol": "ETHUSDT"
            }
        ]
    }

or like this

    {
        "symbols": [
            {
                "symbol": "ETHUSDT"
            },
            {
                "symbol": "BTCUSDT"
            },
            {
                "symbol": "DOGEUSDT"
            },
            {
                "symbol": "COMPUSDT"
            }
        ]
    }

Each element of symbols array in the configuration file, can take 3 parameters (5 in reality but I don't recommend to touch them unless you really know what you are doing).

    {
        "symbols": [
            {
                "symbol": "ETHUSDT",
                "quantity": 20,
                "risk": 4
            }
        ]
    }

Mandatory parameters

-The "symbol"

The only this to worry about is each element in your "symbols" array. You have to got at least 1 symbol (pair of coin and quote -> BTC + USDT , ETH + USDT, etc..) You can only trade crypto that end with USDT, because USDT is the only currency that McTrade can mange for now.

So if you want to trade, you need to make sure to have your wallet converted to USDT, because this is how McTrade will place his order. Each transaction is a minimum of 10 USDT (10 dollars), so you need at least 20 USDT to trade without being worried about the minimum about.

Optionnal parameters:

-The "quantity"

How many MAX % of your USDT wallet this McTrade will trade with, if you specify 20, 20 percent of your MAX % so if you 100 USDT, 20 will be dedicated to trade, (not more not less). McTrade won't run if the sum of your quantity is above 100 %

"quantity" must be between 10 and 100.

(If not quantity is present, the default value will be ( 100 / numbers of symbols)) so for instance if you want to trade 4 crypto simultaneously and none of them has precise their quantity each of them will use 25 % of your maximum wallet)

-The "risk"

Represent how greedy your bot will be, I don't recommend using this parameters neither, because the greater he is the more unpredictable the McTrade will be if you really want to use it, I suggest to put him between 3 and 7 MAXIMUM.

"risk" must be between 3 and 25

(Default value is 5)

WARNING THOSE 2 PARAMETERS ARE NOT RECOMMEND TO MODIFY

Nevertheless you still can, see this doc https://python-binance.readthedocs.io/en/latest/constants.html

-The "interval"

McTrade is fetching data from Binance API and the data have an interval for example, 1 minutes between each price of the BTC, or 30 minutes even 1 day between each data. That doesn't mean that when you fetch a data with 1 day interval that you won't have the actual current price of the BTC, you will have the each price from now with an "interval" with a certain "lookback".

(Default value is "5m")

-The "lookback"

Like interval, lookback has special format that you will need to stick to. Reprensent how far you will look for you data, example 100 minutes, 1 week, 1 year. McTrade will use data 1 year old with a certain "interval" between each of them.

(Default value is "7 day ago UTC")

Roadmap

  • [] Add another currency than USDT
  • [] Add Docker file
  • [] Make a prettier ReadMe
  • [] Configuration file should looks like nginx.conf
  • [] More UX friendly stats while the Bot is running See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU License. See LICENSE.txt for more information.

Acknowledgments

Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!

(back to top)

Comments
  • Config error

    Config error

    Hello,

    thanks for making this bot. I'm just curious and test this on my server for hobby purposes. But when running it give me the following output:

    already solved :)

    opened by SolosoftNL 11
  • conf file should be like nginx.conf format

    conf file should be like nginx.conf format

    I think this format might be someone interesting https://www.nginx.com/resources/wiki/start/topics/examples/full/ Find a way to implement something like this

    enhancement question 
    opened by nerap 0
  • Feature/buying selling order

    Feature/buying selling order

    Main loop, is based on thread.is_alive() instead of join(), (restarting thread next step) if the program stop on open position he will retrieve that last position

    opened by nerap 0
  • Need  a version where advanced paramters can be modified and with fake buying and selling order

    Need a version where advanced paramters can be modified and with fake buying and selling order

    Need to be able to look even futher on the K line (current 14 days) / same goes with the interval (current 1h) Need to benchmark how much step we need to look backward (current 5 day) (risk parameter) And possible more (D line ) (MACD line) (RSI line)

    enhancement 
    opened by nerap 0
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • .github/workflows/codeql-analysis.yml (github-actions)
    • .github/workflows/python-package-conda.yml (github-actions)
    • requirements.txt (pip_requirements)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Enable Renovate Dependency Dashboard creation.
    • If Renovate detects semantic commits, it will use semantic commit type fix for dependencies and chore for all others.
    • Ignore node_modules, bower_components, vendor and various test/tests directories.
    • Autodetect whether to pin dependencies or maintain ranges.
    • Rate limit PR creation to a maximum of two per hour.
    • Limit to maximum 10 open PRs at any time.
    • Group known monorepo packages together.
    • Use curated list of recommended non-monorepo package groupings.
    • A collection of workarounds for known problems with packages.

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 41 Pull Requests:

    chore(deps): update dependency numpy to v1.22.0 [security]
    • Branch name: renovate/pypi-numpy-vulnerability
    • Merge into: master
    • Upgrade numpy to ==1.22.0
    chore(deps): update dependency pillow to v9 [security]
    • Branch name: renovate/pypi-Pillow-vulnerability
    • Merge into: master
    • Upgrade Pillow to ==9.0.1
    chore(deps): update dependency ujson to v5 [security]
    • Branch name: renovate/pypi-ujson-vulnerability
    • Merge into: master
    • Upgrade ujson to ==5.4.0
    chore(deps): pin dependency aiohttp to ==3.8.1
    • Schedule: ["at any time"]
    • Branch name: renovate/pin-dependencies
    • Merge into: master
    • Pin aiohttp to ==3.8.1
    chore(deps): update dependency dateparser to v1.1.1
    • Schedule: ["at any time"]
    • Branch name: renovate/dateparser-1.x
    • Merge into: master
    • Upgrade dateparser to ==1.1.1
    chore(deps): update dependency nginxparser_eb to v0.0.9
    • Schedule: ["at any time"]
    • Branch name: renovate/nginxparser_eb-0.x
    • Merge into: master
    • Upgrade nginxparser_eb to ==0.0.9
    chore(deps): update dependency python-binance to v1.0.16
    • Schedule: ["at any time"]
    • Branch name: renovate/python-binance-1.x
    • Merge into: master
    • Upgrade python-binance to ==1.0.16
    chore(deps): update dependency sqlalchemy to v1.4.39
    • Schedule: ["at any time"]
    • Branch name: renovate/sqlalchemy-1.x
    • Merge into: master
    • Upgrade SQLAlchemy to ==1.4.39
    chore(deps): update dependency urllib3 to v1.26.10
    • Schedule: ["at any time"]
    • Branch name: renovate/urllib3-1.x
    • Merge into: master
    • Upgrade urllib3 to ==1.26.10
    chore(deps): update dependency yarl to v1.7.2
    • Schedule: ["at any time"]
    • Branch name: renovate/yarl-1.x
    • Merge into: master
    • Upgrade yarl to ==1.7.2
    chore(deps): update dependency yfinance to v0.1.74
    • Schedule: ["at any time"]
    • Branch name: renovate/yfinance-0.x
    • Merge into: master
    • Upgrade yfinance to ==0.1.74
    chore(deps): update dependency attrs to v21.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/attrs-21.x
    • Merge into: master
    • Upgrade attrs to ==21.4.0
    chore(deps): update dependency blessed to v1.19.1
    • Schedule: ["at any time"]
    • Branch name: renovate/blessed-1.x
    • Merge into: master
    • Upgrade blessed to ==1.19.1
    chore(deps): update dependency charset-normalizer to v2.1.0
    • Schedule: ["at any time"]
    • Branch name: renovate/charset-normalizer-2.x
    • Merge into: master
    • Upgrade charset-normalizer to ==2.1.0
    chore(deps): update dependency cycler to v0.11.0
    • Schedule: ["at any time"]
    • Branch name: renovate/cycler-0.x
    • Merge into: master
    • Upgrade cycler to ==0.11.0
    chore(deps): update dependency importlib-metadata to v4.12.0
    • Schedule: ["at any time"]
    • Branch name: renovate/importlib-metadata-4.x
    • Merge into: master
    • Upgrade importlib-metadata to ==4.12.0
    chore(deps): update dependency kiwisolver to v1.4.4
    • Schedule: ["at any time"]
    • Branch name: renovate/kiwisolver-1.x
    • Merge into: master
    • Upgrade kiwisolver to ==1.4.4
    chore(deps): update dependency matplotlib to v3.5.2
    • Schedule: ["at any time"]
    • Branch name: renovate/matplotlib-3.x
    • Merge into: master
    • Upgrade matplotlib to ==3.5.2
    chore(deps): update dependency pandas to v1.4.3
    • Schedule: ["at any time"]
    • Branch name: renovate/pandas-1.x
    • Merge into: master
    • Upgrade pandas to ==1.4.3
    chore(deps): update dependency python-dotenv to v0.20.0
    • Schedule: ["at any time"]
    • Branch name: renovate/python-dotenv-0.x
    • Merge into: master
    • Upgrade python-dotenv to ==0.20.0
    chore(deps): update dependency regex to v2021.11.10
    • Schedule: ["at any time"]
    • Branch name: renovate/regex-2021.x
    • Merge into: master
    • Upgrade regex to ==2021.11.10
    chore(deps): update dependency requests to v2.28.1
    • Schedule: ["at any time"]
    • Branch name: renovate/requests-2.x
    • Merge into: master
    • Upgrade requests to ==2.28.1
    chore(deps): update dependency ta to v0.10.1
    • Schedule: ["at any time"]
    • Branch name: renovate/ta-0.x
    • Merge into: master
    • Upgrade ta to ==0.10.1
    chore(deps): update dependency tzdata to v2021.5
    • Schedule: ["at any time"]
    • Branch name: renovate/tzdata-2021.x
    • Merge into: master
    • Upgrade tzdata to ==2021.5
    chore(deps): update dependency zipp to v3.8.1
    • Schedule: ["at any time"]
    • Branch name: renovate/zipp-3.x
    • Merge into: master
    • Upgrade zipp to ==3.8.1
    chore(deps): update actions/checkout action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-checkout-3.x
    • Merge into: master
    • Upgrade actions/checkout to v3
    chore(deps): update actions/setup-python action to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-setup-python-4.x
    • Merge into: master
    • Upgrade actions/setup-python to v4
    chore(deps): update dependency asn1crypto to v1
    • Schedule: ["at any time"]
    • Branch name: renovate/asn1crypto-1.x
    • Merge into: master
    • Upgrade asn1crypto to ==1.5.1
    chore(deps): update dependency async-timeout to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/async-timeout-4.x
    • Merge into: master
    • Upgrade async-timeout to ==4.0.2
    chore(deps): update dependency certifi to v2022
    • Schedule: ["at any time"]
    • Branch name: renovate/certifi-2022.x
    • Merge into: master
    • Upgrade certifi to ==2022.6.15
    chore(deps): update dependency chardet to v5
    • Schedule: ["at any time"]
    • Branch name: renovate/chardet-5.x
    • Merge into: master
    • Upgrade chardet to ==5.0.0
    chore(deps): update dependency multidict to v6
    • Schedule: ["at any time"]
    • Branch name: renovate/multidict-6.x
    • Merge into: master
    • Upgrade multidict to ==6.0.2
    chore(deps): update dependency pyparsing to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/pyparsing-3.x
    • Merge into: master
    • Upgrade pyparsing to ==3.0.9
    chore(deps): update dependency pytz to v2022
    • Schedule: ["at any time"]
    • Branch name: renovate/pytz-2022.x
    • Merge into: master
    • Upgrade pytz to ==2022.1
    chore(deps): update dependency readchar to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/readchar-3.x
    • Merge into: master
    • Upgrade readchar to ==3.0.6
    chore(deps): update dependency regex to v2022
    • Schedule: ["at any time"]
    • Branch name: renovate/regex-2022.x
    • Merge into: master
    • Upgrade regex to ==2022.7.9
    chore(deps): update dependency typing-extensions to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/typing-extensions-4.x
    • Merge into: master
    • Upgrade typing-extensions to ==4.3.0
    chore(deps): update dependency tzdata to v2022
    • Schedule: ["at any time"]
    • Branch name: renovate/tzdata-2022.x
    • Merge into: master
    • Upgrade tzdata to ==2022.1
    chore(deps): update dependency tzlocal to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/tzlocal-4.x
    • Merge into: master
    • Upgrade tzlocal to ==4.2
    chore(deps): update dependency websockets to v10
    • Schedule: ["at any time"]
    • Branch name: renovate/websockets-10.x
    • Merge into: master
    • Upgrade websockets to ==10.3
    chore(deps): update github/codeql-action action to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/github-codeql-action-2.x
    • Merge into: master
    • Upgrade github/codeql-action to v2

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
Releases(v1.0.0)
  • v1.0.0(Nov 10, 2021)

    McTrade is fully fonctinnal, and can trade day and night forever and ever. Report any issues you have.

    What's Changed

    • Feature/macd by @nerap in https://github.com/nerap/McTrade/pull/45
    • feat(Nginx): parsing now working with the nginx.conf format by @nerap in https://github.com/nerap/McTrade/pull/46

    Full Changelog: https://github.com/nerap/McTrade/commits/v1.0.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Oct 20, 2021)

    What's Changed

    • Feature/buying selling order by @nerap in https://github.com/nerap/McTrade/pull/35
    • Feature/buying selling order by @nerap in https://github.com/nerap/McTrade/pull/36
    • Feature/buying selling order by @nerap in https://github.com/nerap/McTrade/pull/37
    • Feature/buying selling order by @nerap in https://github.com/nerap/McTrade/pull/39
    • update(printing): new printing and configuration file by @nerap in https://github.com/nerap/McTrade/pull/40

    Full Changelog: https://github.com/nerap/McTrade/compare/v0.1.0...v0.1.1

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Oct 18, 2021)

    What's Changed

    • Features/buying order by @nerap in https://github.com/nerap/BinanceBot/pull/5
    • update(file): file structure is new, Makefile is improved and worflow… by @nerap in https://github.com/nerap/BinanceBot/pull/6
    • Feature/buying order by @nerap in https://github.com/nerap/BinanceBot/pull/19

    Full Changelog: https://github.com/nerap/BinanceBot/compare/v0.0.1-pre-alpha...v0.1.0

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1.1-pre-alpha(Oct 15, 2021)

    What's Changed

    • Features/buying order by @nerap in https://github.com/nerap/BinanceBot/pull/5
    • update(file): file structure is new, Makefile is improved and worflow… by @nerap in https://github.com/nerap/BinanceBot/pull/6

    Full Changelog: https://github.com/nerap/BinanceBot/compare/v0.0.1-pre-alpha...v0.0.1.1-pre-alpha

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-pre-alpha(Oct 14, 2021)

    What's Changed

    • project is now working with configuration file and not with command line arguments by @nerap in https://github.com/nerap/BinanceBot/pull/1
    • feat(add): added githooks and make file by @nerap in https://github.com/nerap/BinanceBot/pull/2
    • update(test): Now all the test is working as expected by @nerap in https://github.com/nerap/BinanceBot/pull/3
    • feat(add): Binance can fetch N symbol from configuration file and store it with SQLite by @nerap in https://github.com/nerap/BinanceBot/pull/4

    New Contributors

    • @nerap made their first contribution in https://github.com/nerap/BinanceBot/pull/1

    Full Changelog: https://github.com/nerap/BinanceBot/commits/v0.0.1-pre-alpha

    Source code(tar.gz)
    Source code(zip)
Owner
Raphael Cohen
42 students
Raphael Cohen
Multi Account Generator Minecraft/NordVPN/Hulu/Origin And ...

Multi Account Generator Minecraft/NordVPN/Hulu/Origin And ...

76 Jan 01, 2023
Chronocalc - Calculates the dates and times when the sun or moon is in a given position in the sky

Chronocalc I wrote this script after I was busy updating my article on chronoloc

16 Dec 13, 2022
API to retrieve the number of grades on the OGE website (Website listing the grades of students) to know if a new grade is available. If a new grade has been entered, the program sends a notification e-mail with the subject.

OGE-ESIREM-API Introduction API to retrieve the number of grades on the OGE website (Website listing the grades of students) to know if a new grade is

Benjamin Milhet 5 Apr 27, 2022
2b2t Priority queue discord bot announcer

2b2t Priority queue discord bot announcer Commands !prioq - Checks the priority queue length and sends it. !start - Starts a loop that sends the sta

Gumi 5 Jun 06, 2022
Python bindings for LibreTranslate

Python bindings for LibreTranslate

Argos Open Tech 42 Jan 03, 2023
allow windows programs to call dssp/mkdssp command from wsl; rework biopython on windows (PDB -> dssp -> fasta)

dssp-wsl Converting PDB (Protein Data Bank) file format to DSSP file format is required for generating datasets of peptides and their secondary struct

Taine Zhao 1 Feb 23, 2022
Discord bot that displays the current Swatch Internet Time (.beat) as a status.

Internet-Time-Display Discord bot that displays the current Swatch Internet Time (.beat) as a status. Visit the website! Add the bot to your server! A

2 Mar 15, 2022
Discord group chat leaver.

Discord group chat leaver I know many people who have fallen victim to these weird group chat spammers including me. I made this script to help those

cliphd 3 Feb 27, 2022
A simple Spamming software made in python

Spam-qlk Warning!!! 'I' am not responsible for the 'damage or harm' caused by this 'Software'!!! Use at your own risk!!! Input the message. After you

Aditya kumar 1 Nov 30, 2021
A Twitter bot written in Python using Tweepy and hosted on a server.

A Twitter bot written in Python using Tweepy. It can like and/or retweet tweets that contain single or multiple keywords and hashtags.

anniedotexe 11 Dec 15, 2022
Бот для мини-игры "Рабы" ("Рабство") ВКонтакте.

vk-slaves-bot Бот для мини-игры "Рабы" ("Рабство") ВК Группа в ВК, в ней публикуются новости и другая полезная информация. У группы есть беседа, в кот

Almaz 80 Dec 17, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.5k Jan 08, 2023
Pyspark sam - Analyze Big Sequence Alignments with PySpark in AWS EMR

pyspark_sam This repo hosts my code for the article "Analyze Big Sequence Alignm

Sixing Huang 4 Dec 09, 2022
(@Tablada32BOT is my bot in twitter) This is a simple bot, its main and only function is to reply to tweets where they mention their bot with their @

Remember If you are going to host your twitter bot on a page where they can read your code, I recommend that you create an .env file and put your twit

3 Jun 04, 2021
rewise is an unofficial wrapper for google search's auto-complete feature

rewise is an unofficial wrapper for google search's auto-complete feature

Somdev Sangwan 71 Jul 19, 2022
Buy early bsc gems with custom gas fee, slippage, amount. Auto approve token after buy. Sell buyed token with custom gas fee, slippage, amount. And more.

Pancakeswap Sniper bot Full version of Pancakeswap sniping bot used to snipe during fair coin launches. With advanced options and a graphical user int

Jesus Crypto 204 Apr 27, 2022
Easy and simple, Telegram Bot to Show alert when some edits a message in Group

Edit-Message-Alert Just a simple bot to show alert when someone edits a message sent by them, Just 17 Lines of Code These codes are for those who incu

Nuhman Pk 6 Dec 15, 2021
Unofficial API wrapper for seedr.cc

Seedr API Unofficial API wrapper for seedr.cc Inspired by theabbie's seedr-api Powered by @harp_tech (Telegram) How to use You can install lib via git

Anjana Madu 49 Oct 24, 2022
Source code of u/pekofy_bot from reddit.

pekofy-bot Source code of u/pekofy_bot from reddit. Get more info about the bot here: https://www.reddit.com/user/pekofy_bot/comments/krxxol/pekofy_bo

32 Dec 25, 2022