Hello everyone!

We at TON Studio are proud to present the Tact Smart Battle 1, a week-long smart contract coding competition powered by the Tact language. This challenge is designed to push your problem-solving skills to the limit as you tackle real-world blockchain development tasks on The Open Network (TON). With a $20,000 prize pool and unique opportunities for recognition, we invite you to join this exciting event.
About the Challenge
Participants will solve five progressively complex tasks focused on building efficient voting systems. Each task is crafted to test different aspects of smart contract development:
- Simple Voting: — basic voting system.
- Serial Voting: — multiple proposals via a master contract.
- Scalable Voting: — support up to 4 billion voters.
- Voting with Refunds: — refunds to voters.
- Gas-Managed Voting: — fully optimized contracts.
Prizes
- The $20,000 prize pool (in Toncoin) will be shared by the top 128 participants based on contest rankings.
- All participants who submit valid solutions will receive a Soulbound Token (SBT), a non-transferrable token that highlights your contribution on-chain.
- Top performers will earn exclusive SBTs to showcase their achievements.
Outstanding contestants may also receive interview invitations from TON Studio for career opportunities in blockchain development.
Contest Timeline
Start: April 21, 12:00 UTC+3
End: April 28, 12:00 UTC+3
Why Compete?
This event is more than a contest — it’s a chance to hone your skills in cutting-edge blockchain development, earn tangible rewards, and build your reputation within the TON ecosystem. Whether you’re a seasoned coder or exploring smart contracts for the first time, the Tact Smart Battle offers a platform to learn, innovate, and prove your expertise.
For questions or technical assistance, visit the official Telegram chat.
We look forward to seeing your creativity, efficiency, and problem-solving prowess in action.
Best of luck to all participants!
UPD 1: We’ve made a few minor corrections and clarifications to the task descriptions to ensure everything is as clear and transparent as possible. Full list of changes: https://github.com/ton-studio/tact-smart-battle/pull/1
If you’ve already started working on your solutions — take a quick look to make sure your task wasn’t affected. The logic remains unchanged; the updates are purely textual.
UPD 2: We’re aware that some participants have explored ways to pass the tests without fully implementing all the requirements stated in the task descriptions. That’s on us — some test cases didn’t cover all possible edge scenarios, and we appreciate your creativity in finding those gaps.
That said, we confirm the following: final score will be determined solely based on the results of the available test cases. Your position on the leaderboard directly reflects the number of points earned through passing these tests. This decision ensures transparency and fairness for all participants.
Important: this does not exempt submissions from checks for plagiarism and independent work. Any violations in that regard may still result in disqualification.
Thank you to everyone who’s competing honestly and helping make this format better. You are the core of this community.









Is it rating?
It is an unrated competition.
The Tact language link is relative, and hence, broken.
Fixed.
It's still broken in russian version. And by the way, what's the sense of russian version if the text isn't translated?
is it rated?
of course unrated
Wow !!
I wonder how it is possible to test smart contracts.
How are the prizes split between top participants? Evenly?
wanted to bump this...
https://github.com/ton-studio/tact-smart-battle/tree/main?tab=readme-ov-file#prize-breakdown
thanks!
GLHF!
Can we discuss the API here?
I've been asking clarification for hours, but no one is answering. Could you please answer me?
This contest introduced TACT coding language for the first time
just as a recommendation, to beginners like me it was quite difficult to understand what this language does,
please add sample solutions to some basic problem, not just a template in github, and preferablly add some docs or videos that help beginers to learn the language
As a newcomer to Tact myself, https://tact-by-example.org/all and https://ide.ton.org/ were pretty helpful.
One annoying thing about the contest format was that there was no feedback given about the correctness tests aside from the number of tests passed ... Though I did manage to figure out what was wrong after thinking for a while / testing some examples via the web ide.
Anyone willing to share their most creative optimizations? :P
You should check out the Telegram https://t.me/tact_smart_battle, most of the discussion is happening there.
It was a very guess-y contest for me. Most of my "optimizations" are just trial and error swapping statements and then crossing my fingers. For C/E, I went from a map of ints -> bitset -> just check the previous sender. Towards the end of the contest out of desperation I tried to use
setCodewith FunC to remove some of the boilerplate which didn't help much but it was enough :)I took first place and published explanation for C in Tact group here and code with comments for A here