Skip to content

Configuration

PoktBot is highly configurable. The configuration file is structured in the following sections:

Section TELEGRAM_API

This section holds telegram secrets to run the bot.

SECTION OPTION DESCRIPTION DEFAULT VALUE
TELEGRAM_API api_id API ID number generated at https://my.telegram.org. It is usually an unsigned integer of 64bits.
TELEGRAM_API api_hash API Hash generated at https://my.telegram.org. It is usually a 32-chars hexadecimal string (16 bytes)
TELEGRAM_API bot_token Token generated by creating the bot at BotFather. It is usually a string in the format "id:hash"
TELEGRAM_API session_path Path for the storage of the telegram session. var/lib/poktbot/telegram/sessions/
TELEGRAM_API session_name Filename for the telegram session. poktbot

Section SERVER

This section holds server configuration, like nodes, database and notification rules.

SECTION OPTION DESCRIPTION DEFAULT VALUE
SERVER log_file_location Filename location for the storage of the logs. var/log/poktbot.log
SERVER database_type Database backend format. As of PoktBot 0.1.3, it is supported:

- joblib: The stored database is a LZ4 compressed joblib data file.
joblib
SERVER database_secret Secret required by the database backend. As of PoktBot 0.1.3:

- joblib: the secret consists of the path location for the storage of the data.
var/lib/poktbot/db/
SERVER nodes List of the nodes addresses to track by the bot. A node address is the account of the node.
This config option can be updated through the Telegram bot interface (menu nodes).
[]
SERVER chain_ids Dictionary of chain IDs supported by the bot.
Fields of transactions referencing to these chain ids are translated into the corresponding name.
"0029": "Algorand"
"000D": "Algorand Archival"
"0045": "Algorand Testnet"
"0A45": "Algorand Testnet Archival"
"0030": "Arweave"
"0003": "Avalanche"
"00A3": "Avalanche Archival"
"000E": "Avalanche Fuji"
"0004": "Binance Smart Chain"
"0010": "Binance Smart Chain Archival"
"0011": "Binance Smart Chain Testnet"
"0012": "Binance Smart Chain Testnet Archival"
"0002": "Bitcoin"
"0021": "Ethereum"
"0022": "Ethereum Archival"
"0028": "Ethereum Archival Trace"
"0026": "Ethereum Goerli"
"0024": "Ethereum Kovan"
"0025": "Ethereum Rinkeby"
"0023": "Ethereum Ropsten"
"0046": "Evmos"
"0005": "FUSE"
"000A": "FUSE Archival"
"0027": "Gnosis Chain"
"000C": "Gnosis Chain Archival"
"0040": "Harmony Shard 0"
"0A40": "Harmony Shard 0 Archival"
"0041": "Harmony Shard 1"
"0A41": "Harmony Shard 1 Archival"
"0042": "Harmony Shard 2"
"0A42": "Harmony Shard 2 Archival"
"0043": "Harmony Shard 3"
"0A43": "Harmony Shard 3 Archival"
"0044": "IoTeX"
"0047": "OKExChain"
"0001": "Pocket Network"
"0009": "Polygon"
"000B": "Polygon Archival"
"000F": "Polygon Mumbai"
"00AF": "Polygon Mumbai Archival"
"0006": "Solana"
"0031": "Solana Testnet"
SERVER api_url_rewards Backend URL to fetch transactions rewards data. https://poktscan.com/api/graphql?opname=transactions
SERVER api_max_page_count How many pages the node API will request at most in a single shot.
Note that this attribute limits the number of HTTP requests made to the API between observer updates. If the total number of pages retrieved are fewer than the available pages, the database will take several observer updates to be up to date. In other words: the first update may not fill the database until "now" if the number of pages to retrieve are greater than this value; but further updates might get up to date.
2
SERVER api_date_format Format for the date returned by the API. This format is used to transform the string dates into datetime objects. %Y-%m-%dT%H:%M:%S.%f

Section PRICES

This section holds prices API configuration, like backend and currency format.

SECTION OPTION DESCRIPTION DEFAULT VALUE
PRICES coingecko_url URL from the API of Coingecko to fetch prices from. https://api.coingecko.com/api/v3/coins/{cryptocurrency}/market_chart/range?id=pocket-network&vs_currency={currency}&from={start}&to={end}
PRICES currency Currency format for the retrieved information. eur
PRICES currency_alias Currency alias is the currency suffix name in the column of the files generated in the balances menu.
Have correspondence with the PRICE.currency value.
Euro

Section IDS

This section holds IDS that are allowed to interact with the bot. The IDs are structured in a RBAC system, being 2 roles currently implemented as of version 0.1.3:

SECTION OPTION DESCRIPTION DEFAULT VALUE
IDS admins_ids Administrators of the bot.
This parameter holds telegram IDs of allowed users with granted permission to change configuration, add/remove investors & admins, and receive node status/error notifications.
[]
IDS investors_ids Investors of the bot.
This parameter holds telegram IDs of users that are allowed to access statistics and rewards information.
[]

Section CONF

This section holds global configuration of the system, like timeouts and timers intervals.

SECTION OPTION DESCRIPTION DEFAULT VALUE
CONF global_timeout Global timeout in seconds for Telegram commands interaction (when requesting data to the user). 20
CONF global_periodic_time Interval in seconds for the observation of new transactions, errors and prices. 240
CONF timezone Timezone at which every datetime will be located when generating reports. Europe/Madrid
CONF date_format Datetime format for the reports.
Supported formats: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes.
%d/%m/%Y %H:%M:%S %z
CONF last_days_stats_graph Number of days to display in the stats graph. 15
CONF release_url URL where the bot release is published. https://pypi.org/pypi/poktbot/json
CONF release_docs URL where the documentation of the bot is published. https://poktbot.readthedocs.io/en/latest/
CONF notify_releases Boolean specifying if new bot releases should generate notifications. true

Minimum configuration file

Options that contain default values can be omitted from the config file. A minimum configuration file looks as follows:

---
    TELEGRAM_API:
        api_hash: <<YOUR API HASH>>
        api_id: <<YOUR API ID>>
        bot_token: <<YOUR BOT TOKEN>>

    IDS:
        admins_ids:
            - <<YOUR TELEGRAM ID>>
            - <<THE TELEGRAM ID OF THE ADMINISTRATOR 2>>
            ...
        investors_ids:
            - <<THE TELEGRAM ID OF THE INVESTOR 1>>
            - <<THE TELEGRAM ID OF THE INVESTOR 2>>
            ...

    SERVER:
        nodes:
            - <<YOUR NODE 1 ACCOUNT HASH>>
            - <<YOUR NODE 2 ACCOUNT HASH>>
            ...