Free TON

On-line auctions implementation contest

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:

  1. English auction (https://en.wikipedia.org/wiki/English_auction)
  2. 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.

Interfaces

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

SetCode Policy

Contracts may have SetCode function but the clean no SetCode variant should be provided as well.

Contest Dates: 30 March 2021 — 30 April 2021

Winners criteria:

Best implementation of most contest types according to provided architectural guidelines and contest terms.

Proposed prizes:

1 place — 50 000

2 place — 25 000

3 place — 10 000

Places 4 and 5 — 2 500 each

The jury:

Jury should be formed from known experts in the field of smart contracts only

Jury rewards:

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.

6 Likes

There is the only one Subgov which can efficiently judge smart contracts contests - DevEx

Looks like after this contest (Free TON Community) any subgovernance will be able to run SC contests with Global jurors

Test scripts for all functionality using one of the existing frameworks (should cover all functions, run and pass):

  • TS-4 in Python fron TonLabs;
  • Echpochmak fron Wintexpro;
  • TON testing suite or Locklift from Broxus;
2 Likes

Please include in the contest rules that a video presentation of the work is highly desirable.
And, at the end of the acceptance of applications, an AMA session will be appointed for participants, judges and everyone else. All records will be published on YouTube.

2 Likes