The previous launch of the contest failed due to the small number of participants and low quality of works, at the meeting of DevEx Subgov, it was decided to relaunch this contest.
A copy of the document in Google Doc format is here: Contest-proposal-On-line_auctions_implementation_relaunch - Google Docs
Bellow is the text of the contest proposal.
These parts were changed:
- participants rewards;
- jury reward;
- added a section of the contest announcement program;
There is a clear need for efficient implementation of different Auction types in Free TON. As many use cases demands auction mechanics we need a reference implementation of many auction types in-line with distributed smart contract architecture. Here I propose a Contest to fill that gap.
Contest participants will compete to create, test and deploy smart contracts implementing different types of auctions.
Contest Dates: 25 June 2021 — 25 July 2021
Judging: 26 July 2021 — 8 August 2021
What types of auctions?
Since we have already implemented Vickry auctions in DeNS contest we should concentrate on the following auction types and their variants:
- English auction (https://en.wikipedia.org/wiki/English_auction )
- Dutch (https://en.wikipedia.org/wiki/Dutch_auction )
Both auction types should be implemented for forward (https://en.wikipedia.org/wiki/Forward_auction ), reversed (Reverse auction - Wikipedia) auction types and blind variant (which technically are considered a separate type but we will use the English and Dutch names for simplicity) should be submitted with at least a commit-reveal scheme or zero-knowledge proofs.
What are architectural guidelines?
All submitted auction implementations should be composable, meaning the combined auction systems supporting governance contracts, etc, could be set up using the submissions. For example a cascading auctions, auctions with reserved or non reserved price and so on could be set up with minimal additions.
Auctions must be scalable and should not rely on a single contract. Auction Root contract should be able to deploy infinite amount of atomic auctions. Bids should be submitted as a separate contract each.
Contracts must interface with TON Crystal native cryptocurrency, Transfer function in DePools as well as TIP-3 tokens.
Auctions must emit on-chain events reporting important state changes that could be used by other smart contracts.
What programming languages could be used?
Solidity or C++ or combination of these must be used
What should submission include?
Source code (open source, Free Software licence).
● Test scripts for all functionality using one of the existing frameworks (should cover all functions, run and pass):
○ TS-4 in Python from TonLabs;
○ Echpochmak fron Wintexpro;
○ TON testing suite or Locklift from Broxus.
● Description using any of the following languages: TLA+ family, TL-B, UML, Prolog family.
● DeBots following the latest specifications to all user interactions with auction smart contracts.
● All smart contracts and DeBots should be deployed to DevNet, addresses provided in the submission, operational.
Contracts may have SetCode function but the clean no SetCode variant should be provided as well.
Defense of contest works
At the end of the applications acceptance, AMA-session will be appointed for participants, jurors and everyone else. At this session, each contestant has to present his/her work.
A video presentation of the work is highly desirable. There are no strict requirements for the presentation. It can be prepared in any form (slide show, program text demonstration, video performance, etc.).
The presentation language is English or Russian. The presentation time should not exceed 10-20 minutes.
If a contestant cannot present the work on-line, he/she can make a video recording and publish it on YouTub.
Best implementation of most contest types according to provided architectural guidelines and contest terms.
1 place — 50 000
2 place — 35 000
3 place — 20 000
4 place — 15 000
5 place — 10 000
Only qualified jurors, able to understand and evaluate smart contracts on Free TON should judge.
Each juror will vote by rating each submission on a scale of 1 to 10 or can choose to reject it if it does not meet requirements, or they can choose to abstain from voting if they feel unqualified to judge.
Jurors will provide feedback on your submissions.
Duplicate, incomplete or inappropriate submissions will be rejected.
An amount equal to 10% of all total tokens actually awarded and distributed will go to each juror for performing their civic duty to the community and taking the time to judge each submission and provide feedback.
Contest announcement and attracting new members rewards
An amount equal to 5% of the prize fund will be allocated to announcing partners who participates in announcing the contest in different media according with the following table: media list for technical contests announcements, to be distributed equally among them:
Each participant of the contest, when submitting an application, will be asked through which announcing partner he/she learned about the contest. After the end of the contest, for each participant who won a reward, an amount equal to 5% of his/her reward will additionally be distributed:
- To the announcing partner who attracted him, if the referral was given during work submission;
- Or equally to all aforementioned partners of the announcement program, if the referral was not specified.