On-line auctions implementation contest

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.

7 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

Simple Auction
Simplified English & Dutch Auctions if Free TON smart contracts.

Code & documentation

Sample Root in Devnet
0:0eb6fef10aa7f2496c8f43c5b120ae01a2f0661508184b98b9b0c8f44052b709

Sample DeBot in Devnet
0:ed64f712d1c8e263cbaf338944f1a78e8beaa3acc5534c57e759471a342a4868

https://devex.gov.freeton.org/submission?proposalAddress=0%3Af4bad3b4f8c58251f5123941332a847e659f708f724c6f77d204091e729cedbf&submissionId=1

6 Likes

Free TON online Auctions

Code & documentation:
https://github.com/tonred/auction

All info in documentation

By TON RED team

https://devex.gov.freeton.org/submission?proposalAddress=0%3Af4bad3b4f8c58251f5123941332a847e659f708f724c6f77d204091e729cedbf&submissionId=2

2 Likes

Introduction

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:

  • dates;
  • 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 period

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:

  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 (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.

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).
● 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.

SetCode Policy

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.

Winners criteria:

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

Proposed prizes:

1 place — 50 000
2 place — 35 000
3 place — 20 000
4 place — 15 000
5 place — 10 000

Voting

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.

The jury:

Telegram ID Public key
@lailune fb2fe560bfbdda910798e1365d9419ff6e0a75ed5262410b714f162434a88af6
@d_borisenkov 09e78ab9ceb5a0df34ecd4d70822848eba2d8cfc63fa05ef613b5d9a373b2a99
@inyellowbus f0c02482ac2a54691aba1e2c38b6cd7fd3708f9eb015058c7d85a939646715e7
@Custler 2c0ec55a109eb466d9db5ee7c3adb075e77627ade83ae17cea847671ab8f0a85
@RRoman_Tver 49c1c8453240fced11141a690870924fb4d9e9eeb8ea6fae54b8549677fb8bd5
@anovi 6bf867e7773038f9491b5d397cb7da8a20e112b45db9523cd8dae9deb608fb5a
@ded_mrz 9e808b1540babb85c428b9197b8df87860882d2db70607dfa134774a0513db30
@aleksandr_h 3bdb99452a6ed9138af385d035e0967250d0e2da6f58b90245f285daf250915c
@zxcat 0f07a7cb924c7420520d0d98afad87d9b5e1765920fda698c22da6d0cd3354b9
@bivanovsky 1a99622e54b4e87d603dd87c9cc936b388b2a0e1979bb56d4039cfad0fbadc8c
@get_username d89e20f2e164f4e64a3637cc6926baf66482bf8c875e4e7eebedd6f28024998c
@pafaul 7657b6b62ec6846e6341315ba3b8d611afe2ef79e8ee3214d45cc4ede3c50972

Jury rewards:

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:

  • @anovi
  • @Alex770
  • @moqub
  • @heyodhewow
  • @lesnik13utsa
  • @Kronchs

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.
3 Likes

Reserved space for future detailed instructions.

1 Like

The announcement of the contest was posted on many crypto forums, at the moment we are working on opening the Free TON page on the dev.to developers website.

1 Like

Hi!

Very interesting competition. Unfortanlty, I’m a begginer in freeTon.

Do you have some ofical tutorials and development examples?

I found only https://ton.dev/ and some habr.ru topics.

Maybe you have more?

Pruvendo team plans to send its solution in a few hours.

Hi! Here’s my submission.
Repo: https://github.com/SolderingArmor/freeton-auctions
Description: (attached to contest submission);
Telegram: @SuperArmor
Wallet: 0:cba39007bdb0f025aac0609b25e96a7d2153f06d22fa47b5f6c26cf756b8b2d6

1 Like

Hi ! Here is our submission:
Repo: GitHub - OCamlPro/freeton_auctions: Implementation of Auctions on Free TON
Contact on Telegram: @fabrice_dune
Wallet: 0:24a44423bc7edc2598b50ae87267bd06bc53455328e837dae32b9b7592716de7

1 Like

Hi! Here is our submission:
Repo: https://github.com/tonred/auction
Contact on Telegram: @Abionics
Wallet: 0:fa94171cb0565789224814561cc558e59315971ee9d03085de3dcb5f8b94d95e

1 Like

In case you wish to reach me use Telegram account @SergeyEgorovSPb