- task1 - Counter contract
- task2 - Proxy contract
- task3 - Dex contract
- task4 - NFT locker contract
- task5 - NFT random swap
Each task has two parts:
- 📋 A comment with a description of what the smart contract should do.
- 💻 The code of the smart contract with one or more functions marked as
testable
.
The goal of the contestants is to provide a code that matches the description.
Each task may give the contestant either 0 or 5 to 6 score points: 5 for all tests passed plus "gas-score" from 0 to 1 (0 for "infinite" gas consumption, 1 for 0 gas consumption, dependence is inverse exponent).
Each TVM execution is limited to 100,000,000 (hundred million) gas units. This limit is high enough that it only rules out infinite loops. Any practical solution, regardless of how (un)optimized it is, will fit.
We ask participants not to change the signature (number, order, and types of arguments and result) of testable
functions for us to be able to evaluate their submission.
-
Registration Process: Before you begin, make sure to go through the registration process via the @smartchallengebot. Your solutions will not be accepted if you are not properly registered.
-
Create a Private GitHub Repository: Clone this repository and set it as your own private GitHub repo. Ensuring the visibility configs are set to "private" is crucial to safeguarding your solution.
-
Set Your Token: Utilize the
token
provided to you during registration in Telegram bot and set it as a secret variable called USER_TOKEN in your private repository. You can learn more about setting secret variables in the official GitHub documentation. -
Submit Your Solution: When you are ready to submit your solution, simply push your code into your private repository. The code will be sent to the task review server, and GitHub actions will display the status of your submission.
-
Solution Evaluation: If at least one of your solutions works well, your submission will be counted. Feel free to push solutions for more tasks; GitHub actions will run your code against tests and count successful submissions. To see a detailed report on your submission, proceed to GitHub Actions tab and you will see a similar report along with possible errors if present:
Task ID | Compiled | Tests Passed | Points | Gas Used | Compilation Error |
---|---|---|---|---|---|
1 | ❌ | ❌ | 0 | N/A | Error Details |
2 | ✅ | ❌ 0/6 | 0 | 0 | |
3 | ✅ | ✅ 10/10 | 5.127 | 491,235,717 | |
4 | ❌ | ❌ | 0 | N/A | Error Details |
5 | ❌ | ❌ | 0 | N/A | Error Details |
- Check Your Points: To check your solution points, review the logs of the GitHub action for your latest commit. Additionally, you can find your solution points in the menu button inside of the Telegram bot.
Best of luck with your submissions!
- It's forbidden to use any FunC/Fift code inside of submitted Tact solutions. Participants who will have FunC/Fift code in their submissions will be disqualified. This rule applies to Tact bindings as they're using a lower level of abstraction thus compromising the nature of Tact Challenge.
- Please don't share your solution's code with anybody. If someone's submission will be suspected of using your code - both participants will be disqualified. Repeated case will cause lifetime ban from TON Smart Challenges.
Winners of the contest will receive prizes denominated in Toncoin, the native cryptocurrency of TON blockchain, which is also used as a resource for contract execution.
Each task can bring you a max of 6 points. You get 5 points for solving a task. You get an extra point if you solve it without using any gas.
Minimum amount of points to be eligible for the prize is 6 points.
Prizes:
- The top 15% of participants share $10,000 in TON
- The middle 30% of participants share $10,000 in TON
- The bottom 55% of participants share $10,000 in TON
Each prize pool is shared equally among the participants in that group. In total, we're giving away $30,000 in TON prizes.
The total prize might change depending on the number of participants.
New to blockchain or TON development? Start here:
Master the Tact language with these must-have materials:
Find ready-to-use smart contract examples here. Explore more about Tact in the awesome-tact repository.
For Tact Challenge we recommend cloning current repository and follow the submission guide described above.
We recommend using tact-template for a smooth Tact development experience:
- Clone the template repo
yarn build
to build contractsyarn test
to test contractsyarn deploy
to deploy contracts
Stay in the loop and engage with other developers: