-
Join our Community and register via the TicTon bot and run the program from GitHub.
-
Contributors to price stability earn points.
-
Top 50% participants receive 💎 NFTs.
-
Priority: 💎 > 🥇 > 🥈 > 🥉
-
Higher-tier NFTs will get priority for early TIC TOKEN releases.
-
Testing Period: March 2nd to March 10th.
Important
We also have ⭐️ TicTon Oracle Competition1: Tick & Ring ⭐️ for general users, which can refer to the following Step-by-Step: How to Earn NFTs Playing Tic Ton Tournament and Introduction of Competition1.
The Ticton Oracle Bot is an arbitrage bot that checks the current Alarm quotes on the Oracle by fetching the average market price of TON/USDT from multiple exchanges. When it detects an Alarm significantly deviating from the market price (which can be adjusted via TICTON_THRESHOLD_PRICE
in .evn
file for price deviation range), it performs arbitrage against it while also quoting to the Oracle.
If you want to understand the arbitrage mechanism of Tic Ton Oracle, you can refer to the following 2 Minute to Learn How TIC TON Oracle Works.
- Clone the Repository: Clone this repository to your local machine.
git clone https://github.com/Ton-Dynasty/ticton-oracle-automation.git
- Change Directory:
cd ticton-oracle-automation
- Environment Variables:
- Create a
.env
file in the root directory of the project. - Fill out your
.env
file using.env.example
as a guide. - Below are the parameters that need to be modified in
.env
fileTICTON_TONCENTER_API_KEY
: Obtain your Ton Center Testnet API key from @tonapibot.TICTON_WALLET_MNEMONICS
: Your ton testnet wallet mnemonic, for example: a b c d e f g .....TICTON_ORACLE_ADDRESS
: The Address of ticton oracle (For this Competition2: kQCQPYxpFyFXxISiA_c42wNYrzcGc29NcFHqrupDTlT3a9It).TICTON_THRESHOLD_PRICE
: A float value sets a threshold for arbitrage bots to act on price differences. For instance, with TICTON_THRESHOLD_PRICE = 0.5, if Alarm 1's quote is 2.0 and TON's current quote is 2.5, arbitrage will be executed against Alarm 1.MY_ADDRESS
: Your ton testnet wallet address.
- Create a
- Docker Compose: Navigate to the root directory of the project where the
docker-compose.yml
file is located. - Start the Application:
- Run the following command:
docker-compose up -d
- Run the following command:
Warning
This command will start all the services defined in your docker-compose.yml
file.
Ensure that the .env
file is correctly set up, as the Docker containers will rely on these environment variables.
-
Check the Logs:
-
Checking the current status of the bot will display the quotes received by the Oracle, show which Alarm IDs are available for arbitrage, and detail the arbitrage process.
docker logs ticton-oracle-automation-app-1 -f
-
Below is the program receiving a new Tick message and related information about the quote.
-
If the received quote from an Alarm exceeds the TICTON_THRESHOLD_PRICE, it will be placed into Profitable Alarms.
-
To determine whether the arbitrage was successful, you can check if the Timekeeper that received the Wind message is yourself.
-
-
Stop the Application:
docker stop ticton-oracle-automation-app-1
-
Restart the Application:
- It will start recording again from the Alarm information after the last checked Alarm ID when it was stoped.
docker restart ticton-oracle-automation-app-1
- It will start recording again from the Alarm information after the last checked Alarm ID when it was stoped.
docker compose down
docker system prune -a --volumes
rm -rf maria-db
TonCenterException 429: Rate limit exceeded: 10 per 1 second
: If this issue arises, it's likely due to network latency. Resolve it by adding QPS ( float, 1~9 ), to the .env file to set the maximum requests per second. The default is 9; reducing the QPS can help.TonCenterException 503
: This is normal. The problem happens because sometimes the toncenter API is not stable. You can simply ignore this issue.TonCenterException 500
: This is normal. This error message occurs when you wind or ring an alarm that no longer exists or has been fully arbitraged. It means you might be winding or ringing again, or someone else got there first. You can simply ignore this issue.