<p align="center"><a href="https://wavesprotocol.org/"><img src="logo.svg" width="50%"/></a></p>

# Awesome Waves [![Awesome](https://awesome.re/badge-flat.svg)](https://awesome.re)

Waves is an open source blockchain platform and development toolset for Web 3.0 applications and decentralized solutions.
    
This list is a collection of useful resources to create decentralized applications on Waves blockchain.

## Contents

- [Official](#official)
- [Learn](#learn)
- [Articles](#articles)
- [Products](#products)
  - [Wallet](#wallet)
  - [Explorer](#explorer)
  - [Other](#other)
- [Playground](#playground)
  - [Testnet](#testnet)
  - [Stagenet](#stagenet)
  - [Docker images](#docker-images)
- [Frameworks and tools](#frameworks-and-tools)
  - [The Ride programming language](#the-ride-programming-language)
  - [Client libraries](#client-libraries)
  - [Blockchain utils](#blockchain-utils)
  - [Other tools](#other-tools)
- [Built on Waves](#built-on-waves)
  - [Catalogs](#catalogs)
  - [Games](#games)
  - [Projects](#projects)
- [Community](#community)
  - [International](#international)
  - [Africa](#africa)
  - [Dutch](#dutch)
  - [French](#french)
  - [Greek](#greek)
  - [Hindi](#hindi)
  - [Japanese](#japanese)
  - [Philippine](#philippine)
  - [Portuguese](#portuguese)
  - [Russian](#russian)
  - [Spanish](#spanish)
  - [Turkish](#turkish)

## Official

- [Official website](https://wavesprotocol.org/)
- [Blog on Medium](https://medium.com/wavesprotocol)
- [Waves on GitHub](https://github.com/wavesplatform/)
- [Documentation](https://docs.wavesprotocol.org/)

## Learn

- [Ride introduction](https://github.com/wavesplatform/ride-introduction) - Shortest and simplest explanation of Ride.\
Available in other languages: [French](https://medium.com/@crashartifacts/introduction-%C3%A0-ride-ad6c413f98ee).
- [Mastering Web3 with Waves](https://stepik.org/course/54415) - The dApps programming online course on Stepik.\
Available in other languages: [Deutsch](https://stepik.org/course/56101), [Dutch](stepik.org/course/56120), [French](stepik.org/course/55963), [Greek](https://stepik.org/course/56168), [Hindi](https://stepik.org/course/56024), [Japanese](stepik.org/course/56157), [Portuguese](https://stepik.org/course/56162), [Russian](https://stepik.org/course/56401), [Spanish](https://stepik.org/course/56010), [Turkish](https://stepik.org/course/56131).
- [Mastering Web3 with Waves (on Medium)](https://medium.com/mastering-web3-with-waves) - All materials of the Stepik course as articles on Medium.\
Available in other languages: [Deutcsh](https://medium.com/web3withwavesde), [Dutch](https://medium.com/leer-web3-0-met-waves), [French](https://medium.com/ma%C3%AEtriser-le-web-3-0-avec-waves), [Hindi](https://link.medium.com/D6jo2gBtw5), [Portuguese](https://medium.com/dominando-web-3-0-com-waves), [Spanish](https://medium.com/dominando-web3-0-con-waves).
- [Ride Cheat Sheet PNG](https://www.signature-chain.com/web3-pdf/cheat-sheet.png) - Quick overview of important Ride key points.\
Available in other format: [PDF](https://www.signature-chain.com/web3-pdf/cheat-sheet.pdf) - [PSD](https://www.signature-chain.com/web3-pdf/cheat-sheet.psd) ([Font](https://fonts.google.com/specimen/Open+Sans)).\
Available in other languages: [PNG French](https://www.signature-chain.com/web3-pdf/cheat-sheet_FR.png) - [PDF French](https://www.signature-chain.com/web3-pdf/cheat-sheet_FR.pdf).

## Articles

- [How to Build, Deploy and Test a Waves Ride dApp](https://medium.com/wavesprotocol/how-to-build-deploy-and-test-a-waves-ride-dapp-785311f58c2) - How to write simple decentralized appication(dApp) and run it on Waves node. ([ru](https://habr.com/ru/company/waves/blog/459773/))
- [How to: Waves dApps — DAO. Example using Ride-language for smart contracts](https://medium.com/@alexpupyshev/how-to-waves-dapps-dao-example-using-ride-language-for-smart-contracts-3b0ca55e48a8) - How to create the simple DAO dApp for voting and collective investing in projects. ([ru](https://habr.com/ru/post/447808/))
- [How to: Waves dApps — Prediction Markets example with Ride-language. Part 1](https://medium.com/@alexpupyshev/how-to-waves-dapps-prediction-markets-example-with-ride-language-part-1-27b642f2fd0d) - How to create the simple Prediction Market dApp (like Augur or Gnosis) to create new markets, trade shares and win if the prediction will come true.
- [Simple voting on the Waves blockchain](https://docs.wavesprotocol.org/en/smart-contracts/simple-voting-on-the-waves-blockchain.html) - The head of the HOA (homeowners association) asks the tenants of the building: "Dear residents, do you agree with the construction of the kids' playground in the yard of your building?". Objective: implement such voting among tenants on the Waves blockchain.
- [How to use Waves Signer](https://medium.com/@izhur27/getting-started-with-waves-signer-893017c9b7ae) - How to authorize and sign transactions on your website.
- [Understanding Waves Signer — Nuxt.js integration step-by-step](https://medium.com/auctionlance/understanding-waves-signer-nuxt-js-integration-step-by-step-fe33e19c2eb8) - How to create demo app for authenticating with Waves Signer and Nuxt.js for SSR (server-side rendering).
- [Certificado, Part 1. How to build your first blockchain-based app in 15 minutes](https://medium.com/wavesprotocol/how-to-build-your-first-blockchain-based-app-in-15-minutes-83de36826143) - Tutorial on how to create blockchain-based certificate storage ([ru](https://vk.com/@wavesplatform-kak-sozdat-pervoe-prilozhenie-na-blokcheine-za-15-minut)).
- [Certificado, Part 2. What are Smart Contracts and how to use them in your app](https://medium.com/wavesprotocol/what-are-smart-contracts-and-how-to-use-them-in-your-app-a1c0d62d1a5) - Tutorial on how to create blockchain-based certificate storage ([ru](https://vk.com/@wavesplatform-chto-takoe-smart-kontrakty-i-kak-ih-ispolzovat-v-prilozhenii)).
- [How to: offer a free trial for your dApp](https://medium.com/wavesprotocol/make-your-dapp-free-for-a-user-d560b38ec598) - Detailed guide to lowering the barrier for users of a dApp ([ru](https://vk.com/@wavesplatform-how-to-besplatnye-dlya-polzovatelya-decentralizovannye-prilo)).
- [Blockchain Trigger: a tool for automatic smart contract invocation](https://medium.com/wavesprotocol/blockchain-trigger-a-tool-for-automatic-smart-contract-invocation-1cb2748c53be) - Calling a smart contract, users experience some issues, which hampers mass adoption of blockchain. An instrument called Blockchain Trigger could help resolve these issues ([ru](https://vk.com/@wavesprotocol-instrument-dlya-dlya-avtomaticheskogo-vyzova-smart-kontrakto)).
- [How to avoid common mistakes in dApp development](https://medium.com/wavesprotocol/how-to-avoid-common-mistakes-in-dapp-development-61015e700459) - How can we avoid the most common mistakes when developing dApps for Web 3.0 ([ru](https://vk.com/@wavesprotocol-kak-izbezhat-oshibok-pri-razrabotke-dapp)).
- [How to write decentralized oracles in Ride](https://medium.com/wavesprotocol/how-to-write-decentralized-oracles-in-ride-f2c096812b18) - How can we resolve the issue of supplying real-world data to the blockchain? Introducing Oraculus - a smart contract for creating decentralized oracles ([ru](https://vk.com/@wavesprotocol-kak-napisat-decentralizovannyi-orakul-na-ride)).
- [Billy — motivation bot for Slack and Microsoft Teams](https://medium.com/@ikardanov/billy-motivation-and-recognition-bot-for-slack-and-microsoft-teams-d05167e4a7f9) - A tool built on the Waves blockchain to reward team members in a non-financial way ([ru](https://vc.ru/tribuna/128472-billy-bot-dlya-motivacii-personala)).
- [How to build a dApp for team motivation](https://medium.com/wavesprotocol/how-to-build-a-dapp-for-team-motivation-8943504e3feb) - Billy is DApp in the form of a bot that allows for an incentive and reward system aiming to motivate employees through Slack, a business communication platform ([ru](https://vk.com/@wavesprotocol-kak-sozdat-dapp-dlya-motivacii-sotrudnikov)).
- [How to add crypto payments to your online store?](https://medium.com/wavesprotocol/how-to-add-crypto-payments-to-your-online-store-b528b739cdfb) - How to add crypto payment options to your online store with the help of Pay Crypto Widget developed in the Waves ecosystem.

## Products

### Wallet

- [Waves.Exchange Wallet](https://waves.exchange/) - Web & desktop client by Waves.Exchange enables you to join the ecosystem and enjoy the full range of digital asset management features.
- [Waves Keeper](https://wavesprotocol.org/protocol/keeper) - Official browser extension allows to manage private keys and interact securely and seamlessly with Waves-enabled web services and dApps.
- [iOS wallet](https://itunes.apple.com/us/app/waves-wallet/id1233158971) - Wallet for iPhone by Waves.Exchange.
- [Android wallet](https://play.google.com/store/apps/details?id=com.wavesplatform.wallet) - Wallet for Android devices by Waves.Exchange.
- [WavesFX](https://github.com/wavesfx/wavesfx) - A community-driven native desktop wallet for Windows, macOS and Linux, which offers users multi-network and multi-address functionality.

### Explorer

- [Waves Explorer](https://wavesexplorer.com) - Official Waves Explorer.
- [Dev PyWaves](http://dev.pywaves.org) - Blockchain explorer by PyWaves.
- [w8io](https://w8io.ru/) - Blockchain explorer by [deemru](https://github.com/deemru).

### Other

- [WavesLabs](https://waveslabs.com/) - An initiative to support talented developers and promising startups focused on building the decentralised technologies that will form the backbone to Web 3.0.
- [Node](https://github.com/wavesplatform/Waves) - Waves Node repository on GitHub.
- [GRPC Server](https://grpc.wavesnodes.com:6870) - Public GRPC interface for Mainnet.
- [Go Node](https://github.com/wavesplatform/gowaves) - Go libraries and tools for Waves blockchain, alternative implementation of Node (work in progress).
- [Waves Data Service](https://api.wavesplatform.com/v0/docs/#/) - Official data service. Simple and convenient way to get data from Waves blockchain.
- [Waves Oracles](https://oracles.wavesexplorer.com/) - Catalog of Oracles.
- [Token Rating](https://tokenrating.wavesexplorer.com) - Provides a means to rate and aggregate the opinions of the entire Waves community about tokens (projects) issued on the Waves platform.
- [WavesCap](https://wavescap.com/) - CoinMarketCap for Waves assets.
- [ItemMarket](https://item.market/) - Decentralised platform where everyone can tokenize, sell and buy somebody's in-game items in the form of tokens. ([read more](https://medium.com/wavesprotocol/item-market-is-launched-cabefe915c04))

## Playground

### Testnet

Testnet is stable network and has fully copied configurations and nodes version from mainnet, but allows to earn free Waves tokens to test something what you need.

- [Explorer](https://wavesexplorer.com/testnet) - Official testnet explorer. It has a [faucet](https://wavesexplorer.com/testnet/faucet) for getting a few free Waves tokens.
- [Node API](https://nodes-testnet.wavesnodes.com/) - API of testnet nodes.
- [Data Service](https://api-test.wavesplatform.com/v0/docs/) - Official data service for testnet.

### Stagenet

Stagenet is unstable network to test release candidates of the official Waves products before shipping these to the Mainnet and Testnet. But you can also to earn free Waves tokens to test something what you need. For example, a compatibility of your service or DApp with an upcoming releases.

- [Explorer](https://wavesexplorer.com/stagenet) - Official explorer. It has a [faucet](https://wavesexplorer.com/stagenet/faucet) for getting a few free Waves tokens.
- [Node API](https://nodes-stagenet.wavesnodes.com/) - Swagger REST API of Waves Node.
- [IDE](https://stagenet.waves-ide.com) - Online IDE to create Ride smart contracts on Stagenet.

### Docker images

- [WavesNode](https://hub.docker.com/r/wavesplatform/wavesnode) - Docker Image for Waves Platform node. Supports any official or custom networks.
- [K8s by loxal](https://hub.docker.com/r/loxal/waves-node) - The container was built in order to run as a fire-and-forget `StatefulSet` in a Kubernetes cluster.
- [waves-private-node](https://hub.docker.com/r/wavesplatform/waves-private-node) - Private local Waves Node. The easiest way to run your own isolated node to develop smart contracts and any experiments.
- [explorer](https://hub.docker.com/r/wavesplatform/explorer) - Waves Explorer for your node.

## Frameworks and tools

### The Ride programming language

- [Waves IDE](https://waves-ide.com/) - Online IDE to create smart contracts on Ride.
- [ride-examples](https://github.com/wavesplatform/ride-examples) - Examples of scripts for accounts and assets using Ride.
- [waves-ride](https://marketplace.visualstudio.com/items?itemName=wavesplatform.waves-ride) - Visual Studio Code extension to support Ride.
- [vim-ride](https://github.com/rosmanov/vim-ride) - Vim plugin for Ride syntax highlighting.
- [surfboard](https://github.com/wavesplatform/Surfboard) - CLI to work with the Ride language and testing.
- [Paddle](https://github.com/msmolyakov/paddle) - Java library to write tests for your dApps and other smart contracts.

### Client libraries
#### C/C++
- [waves-c](https://github.com/wavesplatform/waves-c) - C library to work with Waves.
- [wavespp](https://github.com/wavesplatform/wavespp) - C++ wrapper for the [waves-c](https://github.com/wavesplatform/waves-c) library.
- [nanos-app-waves](https://github.com/wavesplatform/nanos-app-waves) - Waves wallet application for Ledger Nano S.
#### C#
- [WavesCS](https://github.com/wavesplatform/WavesCS) - C# library to interact with the Waves blockchain.
#### Java/Kotlin
- [WavesSDK-android](https://github.com/wavesplatform/WavesSDK-android) - Kotlin SDK for Mobile Apps on Android.
- [WavesJ](https://github.com/wavesplatform/WavesJ) - Java library to interact with the Waves blockchain and DEX.
- [waves-crypto-java](https://github.com/msmolyakov/waves-crypto-java) - Library to work with cryptographic primitives used in the Waves blockchain.
#### JavaScript/TypeScript
- [Waves Signer](https://github.com/wavesplatform/signer) - library to interact with the Waves blockchain from your web app ([example provider](https://github.com/waves-exchange/provider-web)).
- [vue-waves-signer](https://github.com/opensolutionsweb3/vue-waves-signer) - Waves Signer implementation for Vue.js.
- [pay-crypto-widget](https://github.com/vlzhr/pay-crypto-widget) - JS widget for accepting crypto payments on your website.
- [crypto-donate](https://github.com/vlzhr/crypto-donate) - HTML widget allowing to donate Waves tokens to content authors.
- [waves-transactions](https://github.com/wavesplatform/waves-transactions) - JS library to build and sign transactions.
- [ts-lib-crypto](https://github.com/wavesplatform/ts-lib-crypto) - Typescript implementations like signature verification and protocol entries used in Waves protocol.
#### Go
- [go-lib-crypto](https://github.com/wavesplatform/go-lib-crypto) - GoLang implementation of the unified crypto primitives for Waves.
#### PHP
- [WavesKit](https://github.com/deemru/WavesKit) - All-in-one Waves Platform development kit for the PHP language.
#### Python
- [PyWaves](https://github.com/PyWaves/PyWaves) - Object-oriented library for the Waves blockchain platform.
- [ERC20 Gateway Framework](https://github.com/PyWaves/Waves-ERC20-Gateway) - Allows to easily establish a gateway between any ERC-20 token and the Waves blockchain ([example](https://github.com/iammortimer/TN-WAVES-Gateway)).
- [Waves-Gateway-Framework](https://github.com/jansenmarc/WavesGatewayFramework) - A framework to connect other cryptocurrencies to the Waves blockchain ([LTC example](https://github.com/jansenmarc/WavesGatewayLTCExample)).
#### Rust
- [WavesRS](https://github.com/petermz/WavesRs) - A Rust interface for the Waves blockchain.
- [waves-lib-rust](https://github.com/waves-rust/waves-lib-rust) - Library to work with Waves blockchain.
#### Swift
- [WavesSDK-iOS](https://github.com/wavesplatform/WavesSDK-iOS) - SDK for Mobile Apps on iOS.

### Blockchain utils
- [chaincmp](https://github.com/wavesplatform/gowaves/blob/master/cmd/chaincmp) - Utility to compare blockchains on a different nodes.
- [Node Tools extension](https://github.com/msmolyakov/waves-node-tools-extension) - Waves Node extension to allow miner to automate payouts for its lessors and to receive notifications about mining progress.
- [Nodes on map](http://waves-nodes-map.ikardanov.com/) - All nodes of the Waves Mainnet on the world map.

### Other tools
- [sh-Ride-brush](https://github.com/msmolyakov/sh-Ride-brush) - SyntaxHighlighter brush for the Ride language.
- [Ride for Pygments](https://github.com/pygments/pygments/blob/master/pygments/lexers/ride.py) - The [Pygments](https://github.com/pygments/pygments) highlighter oficially supports the Ride out of the box.

## Built on Waves

### Catalogs

- [Waves on DappRadar](https://dappradar.com/rankings/protocol/waves) - Waves dApps published on the DappRadar.
- [dAppOcean](https://www.dappocean.io/) - Ecosystem of decentralized applications based on the Waves blockchain.

### Games
- [NyanCat: The Crypto Race](https://nyancat.io/) - Build your own Nyan Cat collection, race against other players and get your reward in weekly Leaderboards with the prize fund up to $2000!
- [Shadow Era](http://www.shadowera.com/) - Shadow Era is a free to play online collectible trading card game for iOS, Android, PC and Mac.
- [Coin Flip](https://www.coin-flip.io/) - Choose the coin side, make a bet and see if you are lucky.
- [Dice Roller](https://www.dice-roller.io/) - Choose the dice sides, make a bet and see if you are lucky.
- [Ride On Waves](https://www.waves-rider.io/) - You can choose how many WAVES you want to bet. This is the game with a floating bet from 0.5 and up to 6 WAVES.

### Projects

- [Neutrino](https://github.com/ventuary-lab/neutrino-contract) - An algorithmic price-stable cryptocurrency protocol collateralized by WAVES token.
- [Billy](https://iambilly.app) - A motivation tool for teams. Billy offers a product to create an atmosphere of cooperation, focus the company on the core values, and incentivize sharing by creating an in-team economy.
- [Ventuary-DAO](https://alpha.ventuary.space/) - Sandbox dedicated to filtering dApp ideas and stimulating the Waves community to take part in Web 3.0 adoption.
- [Tokenomica](https://tokenomica.com/) - Security Tokens Issuance Platform. Create and trade digital assets with ease and confidence.
- [LIGA](https://ligatokens.io/) - A platform with tokenized sport events, enabling you to deal with real-time rates and to trade your personal predictions with others.
- [WaveFlow](https://waveflow.xyz/) - Allows you to create new or use existing exchangers that provide a constant supply and demand for certain traded pairs. Algorithmic pricing is used to ensure consistency of supply and demand - the more popular the token is, the higher its price is set. Each exchanger is a dApp written in Ride ([example of trading bot](https://github.com/vlzhr/waveflow-trading-bot)).
- [Lombardini](https://lombardini.io/) - Borrow WBTC for WAVES instantly.
- [Blockchain Cars](http://blockchaincars.io/) - Transport as a Service.
- [WavesAffi](https://github.com/bettexproject/WavesAffi) - Decentralized affiliate program on Waves blockchain.
- [One Million Pixel Waves](https://www.onemillionpixelwaves.com/) - Smart Contract powered website entirely running on the Waves blockchain where anyone can own a piece of the blockchain and immortalize it with an image and a link.
- [Signature Chain](https://www.signature-chain.com/) - Signature Chain's primary goal is to develop a platform allowing the certification of files and documents.
- [Auctionlance Platform](https://beta.auctionlance.com) - Freelancer marketplace where clients hire and pay freelancers with Waves, Waves tokens and other cryptocurrencies.


## Community

### International

- [Waves Dev Jedi. Ride for dApps](https://t.me/waves_ride_dapps_dev) - Telegram chat for dApps developers.
- [Discord](https://discordapp.com/invite/cnFmDyA) - Official Discord.
- [Waves Community Portal](https://wavescommunity.com/) - Official portal features some of the tools and projects that make up Waves ecosystem.
- [Waves Community Forum](https://forum.wavesplatform.com/) - Official forum.
- [Stack Overflow](https://stackoverflow.com/questions/tagged/wavesplatform) - The best place to ask your tech questions. Use tags `wavesplatform` and `ride`.

### Africa

- [Telegram](https://t.me/wavesafrica) - Waves community of passionate developers and web 3.0 enthusiasts across Africa.

### Dutch

- [Telegram](https://t.me/wavesdappsnl) - Telegram-chat voor ontwikkelaars dApps.

### French

- [Telegram](https://t.me/wavesdappsFR) - Chat Telegram pour les développeurs dApps.
- [Dev France on Youtube](https://www.youtube.com/channel/UC2DS9ktTKWGW3NHHV2Ja3_A) - Une chaîne dédiée à l'apprentissage du développement d'applications décentralisées (dApp) sur la Blockchain Waves.
- [Dev France on Facebook](https://www.facebook.com/wavesfr)
- [Dev France on Twitter](https://twitter.com/WavesDevFr)

### Greek

- [Telegram](https://t.me/wavesdappsgr) - Telegram κοινότητα για προγραμματιστές dApps.

### Hindi

- [Telegram](https://t.me/wavesdappsid) - सॉफ्टवेयर डेवलपर्स के लिए टेलीग्राम चैट.

### Japanese

- [Telegram](https://t.me/wavesjapandevs) - DApps開発者のためのTelegramチャット.

### Philippine

- [Telegram](https://t.me/wavesDevPh) - Telegram Waves Developers Philippines.

### Portuguese

- [Telegram - WavesBrasil](https://t.me/WavesBrasil) - Chat de Telegram para a Comunidade da Waves.
- [Telegram - Waves Dev Jedi 🇧🇷 🇵🇹](https://t.me/joinchat/DtIEA0mI2HvmVbyBBodOew) - Chat de Telegram para desenvolvedores dApps.
- [Telegram - Waves Portugal](https://t.me/WavesPortugal) - Chat da Comunidade Portuguesa da Waves.

### Russian

- [Telegram](https://t.me/tradisys_russia) - Telegram чат для разработчиков dApps.

### Spanish

- [Telegram](https://t.me/wavesdappsES) - Telegram chat para desarrolladores de dApps.

### Turkish

- [Telegram](https://t.me/wavesdappstu) - Yazılım geliştiriciler için Telegram sohbet.

## Contribute

Contributions welcome!

If you have found some great things or want to fix something, feel free to send a Pull Request. Read the [contribution guidelines](CONTRIBUTING.md) first.

I'll be glad your suggestions!
