Waves Grants: Recipients’ Successes

Vitalii Tsyhulov
Waves Labs
Published in
8 min readApr 26, 2019

We are thrilled to share with you the details of the first projects carried out under our grant program.

Just over three months ago, Waves Labs launched a grant program aimed at incentivising individual developers and startups to work on projects that help facilitate mass adoption of blockchain technology and build out the Waves ecosystem.

Now it is time to share the first achievements of our grant recipients, whose talent and commitment resulted in a number of excellent solutions and projects based on Waves technologies.

So far, out of the 24 disbursed grants, 12 projects have already been completed, and the remaining ones are expected to be finished within a month.

Most of the completed projects were executed under grants released in the first batch, but two recipients of the second batch of grants have also completed their projects.

Now, let’s have a look at some of the solutions from our Waves Grants recipients!

MaDaMa Labs

The Waves community already knows MaDaMa Labs’ team thanks to their project One Million Pixel Waves. A grant was issued to the team for support of this project, as well as for development of a new decentralised gaming app, Waves Island.

dApps powered by Waves’ smart contracts are one of Waves Labs’ main focuses, and we are convinced that they are vital for building out the entire ecosystem. We are always ready to support work in that direction.

In Waves Island, all gaming processes are written on RIDE, Waves’ native language for smart contracts. To take part in the game, a user has to commit a stake in WAVES. Access to the jackpot will be available to the winner only, which is guaranteed by a smart contract.

You can test the game here.

Server Address: https://wavesexplorer.com/address/3PN7QTU2utDPaHdgUMobFecnf68FdKk4LAb

BestRate

We are happy to share with you the news that BestRate is almost done with its part of Waves integration. You can already install WooCommerce plugin with WAVES tokens available on board. Please don’t hesitate to become an early adopter of this plugin.

Igor Shadurin

A website, PHP and full-stack developer with 10 years of experience, Igor has been involved in developing decentralised applications and smart contracts for the last three years. He has a substantial track record of working on the Ethereum platform but, more recently, has also been learning Waves’ tools — and has proven highly successful.

Waves Merchant, a solution proposed in the grant application, facilitates setting up WAVES payments on various websites smoothly and quickly. Believing this solution to be important for the Waves ecosystem, we decided to disburse a grant to Igor.

Waves Merchant is a widget for receiving WAVES and tokens issued on the platform, which can be embedded in any website. The widget’s key feature is automatic conversion of prices from fiat to cryptocurrency at the rate relevant at the time of purchase, through the Waves DEX exchange. All Waves-based tokens, fiat currency tokens and other popular cryptocurrency tokens are traded on DEX. Therefore, you can accept any of them to pay for goods and services.

The solution is already operational and you can test it here. However, the developer has big plans for improving the solution, which include:

  • A donation widget. Waves Merchant can be used not only in stores, but also in charitable projects that accept donations;
  • Transaction Alerts via email, Telegram messaging service and VKontakte social network. With a single solution, you can send alerts to all these and other services, without having to set up scripts on the store owner’s side;
  • Implementation of CRM systems;
  • Plugins for popular CMS;
  • Stablecoin exchange.

Demo: http://testeron.pro/waves-merchant/example/
Configurator: http://testeron.pro/waves-merchant/
Source code: https://github.com/IgorShadurin/waves-merchant
Detailed description on Medium: https://medium.com/@igor.shadurin/waves-merchant-integration-48ca753d9c8b

Waves World

A grant was released to the Waves World team to carry out research under the suggested use case ‘Loyalty Program’. The result of the research is a document describing the structure of existing loyalty programs, a concept for building a competitive loyalty program based on Waves World Token, and a mechanism that other projects can use for creating their own loyalty programs.

The findings of the research are available here.

Dmitry Pichulin

Dmitry has been an active participant in Waves’ bug bounty program and has extensive experience with Waves development tools. He also created a PHP library.

Dmitry’s proposed solution, for which a grant has been released, is VECRO (Verifiable Elliptic Curve Random Oracle), implemented on the Waves blockchain in request/reply mode through transfer transactions between a user and the oracle.

On the Waves blockchain, signature scheme EdDSA (version Ed25519) is used. In that scheme, a signature consists of values R and S. R is dependable on a random value and S is calculated on the basis of a signed message, a private key and the same random number as R. There is no unique dependence, and several valid signatures exist for the same user message.

To achieve determinacy, the developer suggested that the value of R be fixed until the arrival of a message to be signed. If R is fixed and part of the signed message, this provides extra fixation of R in the message, and is S completely determined by the user message and, therefore, can be used as a source of pseudorandom numbers.

To use the oracle, you need to:

1. Fix R.

  • Send a minimum of 0.005 WAVES to the oracle’s alias init@vecr;
  • Receive an R code in the attachment field in the 1 R-vecr token transfer from the oracle to the user;

2. Receive a signature.

  • Send a minimum of 0.005 WAVES to the oracle’s alias random@vecr. You are also REQUIRED to enter in the attachment field the received R code and additional user data;
  • Receive an S code in the attachment field in the 1 S-vecr token transfer from the oracle to the user;

3. Use the S code as a source of pseudo random numbers.

Nuances of current implementation:

  • WAVES sent to the oracle are primarily used as fees for the return transaction to the user, up to a maximum of 1 WAVES;
  • R code is a concatenation of the R symbol byte and 32-byte R value in base58 coding;
  • R code in the attachment has to precede user data;
  • S code is a concatenation of the S symbol byte and 32 S value in base58 coding;
  • S is the result of a modulo division and cannot be used as a proper 256-bit pseudorandom number (it can be considered a 252-bit pseudorandom number at most);
  • The easiest option is the use of S code’s hash as a pseudorandom number.

Examples of receiving S code:

A detailed description of the solution is available here.

Tradisys

The activation of smart contracts on Waves opened a range of opportunities for developers. One of the most promising fields is the development of oracles. Venturing into that area, the Tradisys team collected funding for the development and support of a random number oracle, Centaur.

The oracle is configured in such a way that every 30 blocks (configurable parameter) it reads the current height of the Waves blockchain (the last generated and signed block), takes the hash of this block and performs a data transaction to the oracle address on the blockchain. However, since miners can manipulate block hashes, such hashes cannot be trusted. Therefore, before running a data transaction with a random number, the oracle performs one tricky manipulation.

After receiving the hash of the last block, Centaur signs this hash with a previously generated private RSA key. No one, except for the oracle, has access to this private RSA key. So, no one, except for the oracle, will be able to correctly sign the data transaction that is sent to the oracle address on the blockchain. You can verify that the oracle provides correct numbers with the help of the public RSA key, which was previously tied to the Centaur address.

A more detailed description of the oracle is available here.

Centaur oracle address: http://wavesexplorer.com/address/3P4xYCRQtXKkLV4gKVPEjE8ckwRKRjhdahk
Source code: https://github.com/tradisys/centaur-oracle

Digilira

Serkan Bayar, the creator of Digilira, a Waves gateway for the Turkish lira, has an impressive track record in crypto-based payments solutions.

The grant was used to fund further development of the existing payment solution payment.digilira.com, aimed at merchants willing to accept crypto payments. A merchant will be able to integrate a script into their website and set prices for products in any currency. In turn, buyers will be able to pay in WAVES or any Waves tokens including fiat tokens like EUR, USD and TRY, with payments confirmed with Waves Keeper or made via QR code.

The payment system works with Waves data transactions, and no database other than the Waves blockchain is required, making the payment system truly decentralised.

The developer shared open-source code of the solution’s most interesting elements and will make additions as the service develops.

Mixer Tumblex

Tumblex is a mixing/tumbling service for the Waves Platform. Its purpose is to offer Waves users more anonymity by swapping the user’s Waves tokens with tokens from the Tumblex pool so the user does not have to disclose his real Waves address whenever they buy something or send WAVES to someone else.

Previously, the mixer’s maximum amount was limited to 100 WAVES. Thanks to funding under Waves Grants, it has been increased to 700 WAVES, which also helped to increase the maximum transaction amount.

WavesGo Education Fund

WavesGo Education Fund aims to provide financial support for the most active community members who help to grow the Waves ecosystem by publishing useful educational materials, such as manuals, videos and tutorials. The fund is already active and has supported several providers of educational content.

Most recently, WavesGo produced several new videos:

WavesGo always encourages new community members to submit their work. If you would like to contribute and receive a small amount of compensation in exchange, please send an email to go@wavesgo.com or message @kimbimlim on Telegram.

WavesMania

WavesMania applied for a grant as an existing project built around the Waves ecosystem, requesting funding for support and maintenance of the WavesMania node. WavesMania aggregates information on Waves-based projects, also creating trading games based on Waves DEX prices.

The disbursed grant allowed WavesMania to introduce a number of updates and increase the prize fund in the Trading Game Competition. The WavesMania node is fully operational and up-to-date. Also, a new section, Waves DEX Info, has been added to the website, providing the most current information on almost 100 tokens traded on Waves DEX.

To learn more about Waves Grants program and apply, visit https://waveslabs.com/grants.html

--

--

Vitalii Tsyhulov
Waves Labs

Over 10 years of experience in software development and marketing for fintech companies. Strong technical skills. Worked as a full-stack web developer