Note: Please relocate this contest to the subgovernance that would like to implement it.
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.
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 (https://en.wikipedia.org/wiki/Reverse_auction) 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)
Tests scripts for TS-4 in Python (should cover all functions, run and pass)
Description using any of the following languages: TLA+ family, TL-B, UML, Prolog family
DeBots following the latest specifications (link) 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.
Contest Dates: 30 March 2021 — 30 April 2021
Best implementation of most contest types according to provided architectural guidelines and contest terms.
1 place — 50 000
2 place — 25 000
3 place — 10 000
Places 4 and 5 — 2 500 each
Jury should be formed from known experts in the field of smart contracts only
An amount equal to 5% 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.