#137 Free TON wallet as a Chrome extension

Period

  • Submission period
    June 11 - June 11, 2021
  • Judging period
    June 12 - June 20, 2021

About

Abstract

Create a detailed, well-grounded, scalable, and secure Free TON extension for popular web browsers: Chrome (and Chromium-based browsers), Firefox, Brave, Edge.

Motivation

Many of us use mobile and desktop wallets to interact with Free TON. Surf, Crystal Wallet, Kilox, Extraton, Broxus, and many other applications make our life easier.

We aim to bring even more convenience to every common or business user of Free TON with web browser extensions with this contest.

If you ever worked with Ethereum, for sure, you know Metamask and how useful it is. Operate with tokens, submit transactions, interact with smart contracts, stake in depools, and many other things were made simple with this browser extension.

Now is the time to have such extensions in Free TON.

Stages

  1. Basic browser wallet
  2. Multisig wallet, tokens support, multiaccounts and multitransactions
  3. DePools support, Web3-like connection, smart-contracts interaction

General contest requirements

Your submission should include:

● The general technical architecture of the solution including all of the features listed below in the hard evaluation criteria section, along with the proposed customer journeys

● Detailed technical specification of the proposed implementation with the justification of the selected approach: smart contracts, integration layer, interfaces

● Name and contact information of the contestant for communication (Telegram username, e-mail)


Your work and the proposed solution must be:


● Original​. It should not include more than 10% of other contestants’ works and citing from other works available on the Internet;

● Implementable​. Keep in mind the peculiarities and goals of FreeTON;

● Consistent​. Its elements should not contradict each other and the FreeTON Declaration of Decentralization;

● Safe​. It must ensure a due level of funds security;

● Modern​. Inspire by the leading market solutions like Metamask;

● Open-sourced​. All the results of your efforts should be accessible in an open way, without password protection, and licensed under an open-source license, preferably Apache 2.0 or GPL 3.0. If your submission includes code, all dependencies source code should also be available openly.

Evaluation criteria and winning conditions

Hard criteria

● Generic

○ English language of the interface;

○ Support of Google Chrome;

○ Absence of analytical trackers (Google Analytics, Yandex Metrika, etc.)

○ Support of mainnet and testnet(s);

○ On-chain activity history (transactions, messages, contract interactions, etc.);

○ Any calls that require the user’s keys must ask for the password input to decrypt them from the local storage.

● Wallet features

○ Native support of any open-sourced non-custodial Free TON wallets, e.g.:

  • Original TON wallets​ (Wallet v. 3);
  • TON Labs’ wallets (​SafeMultisig​S​ etCodeMultisig​);

○ Random seed phrase generation;

○ 12 or 24 words wallet initialization (based on wallet contract);

○ Wallet seed phrase backup and restoration;

○ Public and private keys generation, backup, and restoration;

○ Encrypted local key storage;

○ Password protection;

○ Support of sending a memo with messages (or encoded payload).

Soft criteria

● Multilanguage support;

● The extension is published in the Chrome store;

● Support of additional browsers (Firefox, Brave, Edge, Safari, Opera);

● Browser notifications on events;

● Detailed and easily understandable charts explaining the architecture and business processes;

● Brevity;

● Mostly everyday English to facilitate understanding;

● Readiness to participate in the implementation of the solution in the next stage;

● Verifiable extension security along with the process to verify the equality of published version with source code.

Artifacts

● Technical paper in PDF format explaining the architecture in details along with detailed user scenarios;

● Source code for all modules published in any open repository like GitHub, GitLab, BitBucket, etc.

Licensing

● All works published under this contest enter the public domain immediately after the publication;

● The work should use any copyleft license (preferably Apache 2.0 or GNU GPL v. 3).

Procedural reminders to contestants

Keep in mind these simple principles to make sure your submission is well-formed:

● Accessibility. All submissions must be accessible for the Jury to open and view without a password, so please double-check your submission. If the submission is inaccessible or does not fit the criteria described, jurors have the right to reject the submission.

● Timing. Contestants must submit their work before the closing of the filing of applications. If not submitted on time, the submission will not count.

● Contact information. All submissions must contain the contestant’s contact information, preferably a Telegram username by which jurors can verify that the submission belongs to the individual who submitted it. If not, jurors have the right to reject your submission.

● Content. The content published in the forum and the provided PDF file should not differ, except for formatting. Otherwise, jurors have the right to reject the submission.

● Well-formed links. Suppose your submission has links to the work performed. In that case, the content of those links must have the contestant’s contact details, preferably a Telegram username, or backlink to your submission at the FreeTON forum, so jurors can match it and verify to whom the work belongs. If not, jurors have the right to reject your submission.

● Multiple submissions.

○ Each contestant has the right to provide several submissions if they contain different approaches to the contest problem’s solving. However, if works are not unique enough or differ just in insignificant details, jurors have the right to reject such repeating submissions.

○ If the contestant wants to make an additional submission that overrides the one previously published, he must inform the Jury about this fact and indicate the correct revision to assess. In this case, only the indicated work will count. If the contestant hasn’t indicated the updated submission as the correct one, only the first one will count, the Jury will reject all the others.

Fair play

It is not enough to win to enjoy the fruits of success. Triumph must be measured by absolute fair means, honesty and just play.

As a contestant, you agree to follow these simple rules to ensure fair play among contestants.

● Respect. ​Fair play requires unconditional respect for opponents, jurors, governance, and community members.

● Friendship​. Rivalry in the contest does not exclude friendship. On the contrary, friendship could grow from noble rivalries.

● Solidarity​. It is important to support each other and share feelings, aims and dreams. Mutual support brings mutual success on and off the field.

● Tolerance​. The willingness to accept behavior or decisions you may not agree with develops your self-control. Ultimately, that could be the deciding factor when it comes to winning or losing.

● Plagiarism-free​. Your work should be the product of your own mind and contain at least 90% of the original content. If some part of your work is taken from another source or submission, you must clearly cite the source.

● Public domain​.

○ The work you submit for the contest enters the public domain immediately after publication, even if it doesn’t win any prize places.

○ If your work has been made partly or in full by someone else, it is your responsibility to get and publish the proper waivers from this person. If any juror discovers that the submission violates the original author’s rights, it gets immediately disqualified, even if other jurors have already assigned some points to the work.

○ Free TON, its Subgovernances, or any of its members shall in no case be liable for any possible claims from the original content owner(s), public authorities, or any other person or body.

Procedural remarks for jurors

Jurors play an extremely important and vital role for the entire Free TON community. You and only you affect the quality and the perception of Free TON, in whole, and in parts.

This is a technology-intensive contest that requires a deep understanding of the contest subject from your side.

Voting process

As a juror, you agree to follow these simple rules at the moment of judging:

● Technology understanding​. Jury members who vote in the contest must have a solid understanding of the technology. Those jurors who don’t should choose “Abstain.”

● Contest participation​. Jurors whose team(s), relatives or friends intend to participate in the contest by providing submissions lose their right to vote in the contest and should choose “Abstain” for all works. They shall also clearly and publicly indicate this to other jurors. Suppose anyone discovers that the juror violates this requirement. In that case, his scores will not be considered when calculating the resulting participants’ ranking, and he will not get rewarded for judging this contest.

● Feedback​. Jurors shall provide valuable feedback on each submission justifying their decision.

● Quality filter​. The Jury will reject duplicate, sub-par, incomplete, or inappropriate submissions.

Submissions assessment

● Quorum​.

○ Assessing the submissions is considered legitimate if at least 50%+1 of jurors have cast their votes, be it “Accept”, “Reject” or “Abstain”, to the submission with the least number of votes. For example, if a group consists of 16 jurors, then at least 9 of them must assess the submissions.

○ However, if the number of jurors who have voted “Accept” or “Reject” (all together) will not exceed 3 (three), the contest submissions assessment is not considered legitimate and must be repeated from scratch. I.e., one poorly voted submission may fail the whole contest, and you will need to re-vote again.

● Scale​. A juror shall assess a submission on a scale of 1 to 10 (10 is the highest score, 1 is the lowest score) or vote to "abstain" or “reject”.

○ The "Abstain" vote means that the juror is not qualified or eligible to assess the submission. Such a vote is not taken into account when a rating score is calculated. Example.​ Ifasubmissionwasassessedby3jurorsasfollows:"10","2"and "Abstain", then the resulting score will be equal to (10 + 2) / 2 = 6.

○ The "Reject" vote means that a submission does not meet at least one of the contest conditions and should be disqualified.

○ If a juror considers a submission useless, although it formally meets contest requirements, he/she must notify its author and clearly state in feedback a reason for a low rating.

Winners works