WAVES Open-blockchain financial platform. Blockchain for the people.

  • Waves Keeper Now Available In Chrome Web Store

    The Waves browser extension allows users to manage their private keys and interact securely and seamlessly with Waves-enabled web services and dApps.

    As part of our effort to make Waves more user-friendly and increase its appeal and accessibility to ordinary businesses and users, we have created Waves Keeper: a browser extension designed to manage your keys and enable you to confirm transactions online without exposing any sensitive information to the web.

    Waves Keeper can be used with existing Waves accounts or can create new addresses. Multiple different accounts can be added and the user can switch between them effortlessly. The major benefit is that private keys are stored securely within the extension, allowing the user to confirm transactions and engage with Waves-enabled web services and dApps without entering their private keys or passwords. This mitigates the threat from malicious websites, while making using Waves online frictionless.

    You can download Waves Keeper from the Chrome Store here: https://chrome.google.com/webstore/detail/waves-keeper/lpilbniiabackdjcionkobglmddfbcjo. Check it out, create a new account or import an existing one, and start using Waves online with the confidence that your funds are safe.

    In due course we will be releasing versions of Waves Keeper for Firefox and other popular browsers. Let us know what you think of the Chrome extension and any ideas you have to improve it!

    How to use Waves Keeper: https://docs.wavesplatform.com/en/waves-client/account-management/waves-keeper.html

    Waves Keeper documentation: https://docs.wavesplatform.com/en/development-and-api/waves-keeper-api/waves-keeper-api.html

  • Enforcing mass adoption


    sasha ivanov

    While building the Waves ecosystem, it was always important to show the directions of future growth of blockchain applications. We started working on stable coins and a decentralized exchange as an integral part of Waves wallet, integrating them into the core of the Waves ecosystem. At the initial stages of development, it made sense to provide pilot solutions, but there always comes the next step, when pilot projects mature and have to move to the next level.

    Currently, blockchain technology is struggling to become an integral part of more widespread IT systems. There are several hurdles along the way — lack of understanding of the new paradigm that blockchain technology brings, regulatory issues stemming from this, and probably the shortcomings of the current state of blockchain tech itself. To tackle these issues we have to move in several directions, which are quite diverse — we should work on regulation issues, but we should also work on creating new technology that can gain better traction through providing greater value and being adopted more easily.

    It is very important to create compliant platforms that bring finance to the blockchain, providing a new medium for traditional financial instruments. For Waves it’s time to separate all its infrastructure projects into a new platform, making sure it provides new value through creating new innovative products, which at the same time can be made fully compliant and integrated into the current business environment.

    The Tokenomica project is launched with the approval of Maltese regulators, and functions according to new Virtual Financial Assets (VFA) regulation. It provides a legal framework for operating a decentralized financial infrastructure, including trading of virtual financial assets.

    The next stage will be the regulation of issuance and circulation of more traditional financial instruments, such as securities. This will be covered by corresponding regulations regarding security token offerings. Tokenomica will offer regulated procedures for STOs; security token offerings are the inevitable development of traditional financial markets, and their significance is only a matter of time and regulation.

    Fiat tokens and stable coins existing on Waves platform will operate within Tokenomica’s framework. Stable coins and fiat gateways are becoming an important entry point from the world of traditional instruments into the world of the next-generation decentralized instruments.

    As a whole, Tokenomica will provide fully a compliant financial instruments platform based on the Waves blockchain. From providing the framework utility tokens on DEX to security tokens offerings, from fiat tokens to decentralized KYC — Tokenomica will be a holistic platform combining the best of the two worlds of traditional finance and blockchain. DEX, compliant STO platform, decentralized KYC and more — Tokenomica is coming.

  • Waves Release iOS Wallet v2.0

    Source Code 


  • Waves Monthly Review: November

    An awesome new mobile app, new functionality on the way and some fantastic meetups — find out what’s been going on with Waves this November!

    Waves has had a great November, with the release of our new mobile app and several other important developments. We’re continuing to build some outstanding tech to bring blockchain to the mainstream and our community is growing. Here’s what we’ve been up to in the past month! If you just want the quick version, take a look at our video:


    Node Team

    The main development on the cards for our network right now is Smart Assets. These will enable users to attach the same kind of conditions to tokens as they currently can to Waves accounts — allowing a whole new list of powerful use cases. Imagine tokens that can be transferred or traded only with permission or after a certain amount of time; tokens that can only be exchanged against certain currencies, and a whole load more tools that will facilitate entirely new business models.

    Smart Assets are currently being put through their paces on TestNet. Look out for them on MainNet — we’ll be releasing them into the wild as soon as possible.

    Client Team

    Mobile app update The big news here is the all-new mobile app.

    This comprehensive update of the previous app is a thing of beauty and makes Waves easier than ever before to use. It includes the most popular features of the Waves platform — including DEX, crypto and fiat gateways, leasing and token management — as well as key security features such as Face ID and fingerprint scanning. Keys are encrypted and are never exposed to the web.

    Beta test results The beta test was an extremely useful process that helped us iron out glitches and refine the app, so we want to say a big ‘Thank you’ to all of our community members who helped with that process. We’ve paid out a total of 3,300 WAVES in rewards to our testers.

    Multi-sig for the desktop Client The desktop Client now boasts multi-sig support, meaning that ordinary users can create accounts with two or more signatories without needing any programming experience. This will also build confidence and help adoption, since funds can be held even more safely than before. Check out this YouTube tutorial for more details.

    Waves Keeper Finally, Waves Keeper is available in the Chrome Web Store. We’re working on versions for other browsers, and soon you’ll see it everywhere. It’s a great addition to the Waves ecosystem that allows you to sign transactions from your browser, a lot like MetaMask does for Ethereum. Once again, it’s an important step to make Waves more user friendly and accessible.



    We’ve had a series of great meetups, all around the world. On 14 November Waves held a meetup in Perth, Australia, where we were supported by the local government of Perth city. Representatives of the city hall came to listen to how blockchain can help improve industrial processes

    On 28 November in Toronto, Canada, we enjoyed an interesting meeting in which Waves Ambassador Denis Serebryakov talked about loyalty programs on the blockchain. While conventional loyalty is certainly a big use case for crypto, and numerous initiatives are exploring this, the potential that crypto has to incentivise and reward different activities goes far beyond commercial loyalty.

    Our meeting in Barcelona on 28 November was dedicated to gaming, and a number of developers attended. Remarkably, Tradisys — blockchain development, trading and smart contracts consultants — joined the meeting remotely and discussed how to use smart contracts in games, including some of the specifics of the process.

    On 29 November Waves held a workshop in Lisbon, Portugal, at Nova University. The event was hosted by our Ambassador, Nelson Lopes, who is technical director of ASSOFT — portuguese association of software companies with over 1k members. The CMVM (the Portuguese equivalent of the SEC) were in the audience, and were very interested about various aspects of blockchain technology. The CMVM have previously participated in similar events, and their objectives are twofold. Firstly, they want to explore the possibility of conducting projects with institutions like NOVA IMS, particularly in the area of financial education. Secondly, they want to monitor financial innovation in order to be able to identify regulatory issues, whether in terms of investor protection, or for digital asset issuers and project financing. Lastly, two developers from the Ministry of Health attended. They wanted to know more about how they could use blockchain to register and certify healthcare data.

    Dev Relations

    Waves Dev Relations department exists to make it easier for developers to build applications on Waves, harnessing the benefits of blockchain technology without having to worry about engaging directly with the underlying protocol. In short, whatever they want to build, we make tools to help them do it.

    Development Toolkit We have now created a repository that will enable developers to launch their own blockchains quickly and easily. This package includes an Explorer, Data Service, Client and Private Blockchain. We’re calling this our Developers Toolkit, and expect it to be an important resource for testing. Everything can be launched with one command from the console, massively simplifying the whole testing and development process. As an example, it will be possible to launch a new chain with custom parameters like block generation time. You can find out more here.

    Libraries The previous and widely-used JavaScript library has now been deprecated. We have created two new, more powerful and more convenient libraries, which include support for smart assets. You can find our updated GitHub here.

    Gaming Project update

    The Waves gaming project is going well. We’ve had over 30 applications to date to participate in the initiative, including from some very interesting companies. We’re still receiving applications, so if you’re a game developer who wants to integrate blockchain with your product, please get in touch!

    Waves in the Media

    In November we saw an unbelievable 967 mentions of Waves Platform in media worldwide. Here are some of the most interesting pieces:

    Crypto 101: Beginner’s Guide to Cross-Chain Atomic Swaps https://www.ccn.com/crypto-101-a-beginners-guide-to-cross-chain-atomic-swaps/

    Decentralization on the Blockchain Is a Pipe Dream https://hackernoon.com/decentralization-on-the-blockchain-is-a-pipe-dream-47ded5b75c31

    Waves Blockchain Platform Releases Smart Crypto Assets on TestNet https://bitcoinexchangeguide.com/waves-blockchain-platform-releases-smart-crypto-assets-on-testnet/

    Waves Blockchain Platform Launches Waves Keeper Extension https://blockspoint.com/news/dlt/waves-extension-for-google-chrome

    The Daily: Bitpay Adds Another Stablecoin, Waves to Launch Exchange in Malta https://news.bitcoin.com/the-daily-bitpay-adds-another-stablecoin-waves-to-launch-exchange-in-malta/


    It’s been a good month for Waves. The platform was founded on the ideal of making blockchain easy to use for both individuals and businesses, which is exactly what we’ve been doing. We’re looking forward to delivering on more of our commitments over the coming weeks and months. We’re always pleased to hear your feedback, so please let us know if there are any features you’d like to see or any other comments you have!

  • Smart Assets and Smart Account Trading Features Released on MainNet

    Miners need to vote to activate two proposals before this functionality goes live.

    After a month of intensive testing, Waves team is very glad to announce we are releasing two new and related features on MainNet: Smart Assets and Smart Account Trading. We’re pleased to say the testing process went well and are thrilled we can offer these features to the community so quickly!

    What’s in this update?

    Two major features are included in this release, as we continue to build out our smart contract capabilities:

    • Smart Assets are implemented as Feature #9
    • Smart Account Trading is implemented as Feature #10

    Miners: please vote to activate these features! 80% miner approval is required in each case. You can track the progress of feature voting here: http://dev.pywaves.org/activation/.

    In addition, we are including several minor features in this update — mainly bug fixes and security improvements. These include:

    • Duplicate variable names are now allowed in scripts (previously we had disabled this due to an error)
    • We have provided a method for getting balance distribution at a given block height (up to 2,000 blocks down): GET /assets/{assetId}/distribution/{height}
    • We have expanded the list of weak (small order X25519 point) public keys
    • Decreased block ban time in configuration — we recommend using 5 minutes instead of 1 day
    • Optimisation in microblock verification procedure
    • Various other bug fixes

    What are Smart Assets?

    Smart Assets use the same approach to tokens that Waves Smart Accounts do for addresses. A Smart Asset is an asset with an attached script that places conditions on every transaction made for the token in question. Here are some further details:

    The Smart Asset script is specified using IssueTransaction. The fee for this is 1 WAVES. A Smart Asset’s script cannot be set to null.

    The script validates each transaction involving this asset. Each validation of a transaction by a Smart Asset’s script increases the transaction fee by 0.004 WAVES. For example, if a regular tx is made for a Smart Asset, the cost is 0.001 + 0.004 = 0.005 WAVES. If an exchange transaction is made, the cost is 0.003 + 0.004 = 0.007 WAVES.

    Assets that have already been issued without a script cannot become scripted. However, it is possible to create a token that behaves as non-scripted asset but that can be upgraded later, by issuing an asset with a script: ‘true’.

    A Smart Asset’s script can be changed using SetAssetScriptTransaction (the fee to change the script is 1 WAVES). Only the Issuer can change an asset’s script. Sponsorship of Smart Assets is prohibited.

    For more detailed information and examples of Smart Asset scripts, see documentation at https://docs.wavesplatform.com/en/technical-details/smart-assets.html. Differences between Smart Accounts and Smart Assets are described here: https://forum.wavesplatform.com/t/smart-assets-distinctions/6091

    Smart Account Trading

    When the Smart Account feature was first released, the use of exchange transactions containing orders from Smart Accounts was prohibited. With the Smart Account Trading feature we enable the use of exchange transactions from these addresses. The Matcher has also been updated to receive and validate orders from Smart Accounts. You can find a more detailed explanation in this forum post: https://forum.wavesplatform.com/t/trading-with-smart-accounts/3021.

    Yet another big thank you goes out to our community from the Waves team for your help in testing these ground-breaking new features, and (we hope) for voting for their approval!

  • Waves Launches Explorer 2.0

    The new version is optimised for mobile devices and fits perfectly within Waves’ unified design concept.

    With the Christmas holidays in full swing for much of the world, the Waves team is still working hard and is pleased to announce another important launch before the end of the year. The new release of the Waves Explorer 2.0 is a major update, bringing the UI into line with the design of othxer Waves products. We have included several stability patches and — most importantly — improved the experience for mobile devices.

    New UI

    Our frontend team has created a much clearer and more user-friendly interface, and the overall experience for the application is now similar to other apps in the Waves ecosystem.

    The design has been adapted for mobile devices, so it’s now easy to check transactions and network status from your smartphone or tablet.

    Network Settings

    The new Explorer allows easy switching between MainNet and TestNet. In addition, there is a convenient tool that enables users to configure the Explorer for their custom network, meaning you can track any network or node you want.

    Stability & Performance

    We have enhanced the quality of the code by removing unnecessary API calls and using new libraries. The result of these optimisations is a notable improvement in the loading times for pages and components. Since Waves is one of the fastest open blockchains in the world, it’s our goal to build the fastest Explorer in the world too, with the same unrivalled user experience of our other apps. We’re not there yet, but we’re making steady progress!

    Next Steps

    Tools like this are a very important product of any blockchain ecosystem, and we will continue to improve our Explorer. We are currently working on new APIs that will allow us to display the distribution of tokens by addresses and to watch the history of the balance change. We also plan to add a map of the distribution of network nodes around the world, with basic information to start with and much more. Stay tuned!

    Try out new Waves Explorer: https://wavesexplorer.com.

  • Web3 Apps and Products: Trustless, Synergistic and Monetizable.


    sasha ivanov

    We live in the era of tectonic shifts in society and technology. The shape of the future world is still quite vague, and changing all the time. Futuristic concepts that have been proposed not so long ago stop making sense or need to be adjusted. One thing is obvious — development of the Internet will be crucial for the development of the world we live in, and what happens to the Internet will essentially happen to the world.

    The concept of Web3.0 that emerged almost twenty years ago acquires a more tangible shape only now. Because of the emergence of the blockchain technology we are starting seeing some products that can be called Web3 prototypes. It’s still too early to lay out the standards for the future Web, we might need some more products to actually understand what those standards should be. On the other hand, we could define Web3 products essentials, since now we have all the major ingredients for building applications that are essentially different from the applications we are accustomed to now.

    Web1, the original Internet, was just a collection of interlinked documents with very little interactivity. Web2, the Web we use now, is interactive but centralized, it essentially mimics the structure of human society with ineffective vertical structures, controlling but at the same time vulnerable. Current Internet infrastructure quite often brings out the worst in society: due to the increased number of social connections we get fragmentation and segmentation on steroids — despite its global nature the Internet paradoxically leads to less, not more, connectivity in many cases.

    Web3 was proposed as Semantic Web, a Web of Meaning. It might sound different from the Web3 we have in mind now, but if we look more closely we’ll see that it’s not really the case. “Semantic” in this setting means understandable by computers and running according to protocols, decentralization is essential in the true semantic approach. Protocol becomes the king of Web3, there’s no need for trust any more, once established Protocol runs indefinitely and cannot be manipulated.

    Web3 needs decentralization in its core; decentralization is not the whole of it but it is the foundation for other technologies. This is the glue that connects disparate technologies in a synergistic consortium. Web3 is holistic, it does not pit one technology against another, it brings them together on a layer which minimizes the need for trust.

    Web3 is going to be deeply intertwined with the society structure, in Web2 you have some stale concepts brought over to the Internet, now the process becomes reversed — Web3 leads the way, showing more effective approach to human interaction.

    So what are the essential features of Web3 Products and applications?

    Web3 products minimize the need for trusted third parties and let you control your data.

    All the data created by the user is controlled by the user; she explicitly allows access to her data including all the data she produces. Private keys are stored on the user side, there is no need for centralized user authentication. Data storage is as decentralized as possible; only encrypted data can be stored in a centralized way. Access to sensitive user data is fully controlled by the user.

    Web3 products are synergistic. Combination of different technologies is essential, combined they produce new added value.

    Combinations of IoT, Big Data, AI and distributed ledgers are very natural, they create trustless data processing environment that cannot be manipulated.

    Monetization of Web3 products is transparent. There’s no hidden monetization through collected user data. You get what you paid for, and you know how the money is made.

    New technology begets new economy. Through tokenization we achieve transparency in Web3 business models. Decentralized does not mean non-monetizable, it means monetizable in a new and transparent way.

    So what Web3 products are we going to see soon? Browsers with an integrated blockchain layer and private keys stored on the user side; uncensored or community-censored social networks where access to the network cannot be denied and user data deleted uncontrollably; messengers that run on blockchain private/public key pairs and, even if not completely decentralized, allow for multiple public servers; enterprise systems running on a decentralized layer and processing huge amounts of data in real time.

    Web3 concept is inclusive, it it not a concrete product, it is rather a philosophy that can be implemented for any application type. In 2019 first true Web3 products will be launched.

  • Waves Christmas Game Proves a Success!

    Our Christmas game turned out to be a huge success. It entertained many over the holidays and the funds collected will benefit children from a hospice in Moscow.

    From 24 December to 8 January, hundreds of people had fun playing Waves’ Christmas game, developed in collaboration with Tradisys.

    In playing the game, users were not only able to try out Waves’ smart contracts, but also benefit a good cause, bringing joy to children at local hospice.

    Waves Smart Contracts pass the test

    The Christmas game — Waves’ first MainNet gaming project — formed a major test for the application of Waves smart contracts and Waves Keeper within the gaming industry.

    Each game session launched by a player generated a smart contract, decentralising backend operations and ensuring that funds went exactly where they were intended.

    Now that the game is over, we can say that Waves’ smart contracts successfully passed the test with flying colours, proving their reliability and efficiency!

    Children to benefit

    Over the course of the game, players found more than 500 WAVES under the Xmas Tree. In total, over 1,100 games were played.

    Gamers donated 890 WAVES, to which we added 1,110 WAVES, making a total of 2,000 WAVES. These funds will be donated to the Children’s hospice.

    We at Waves are strongly convinced that blockchain can truly contribute to making this world a better place. And the success of the Christmas game comes as another testimony to the technology’s significant real-world adoption potential.

    To give developers a detailed understanding of how Waves smart contracts’ were used in the Christmas game, we will soon publish a more in-depth technical review.

  • Waves to Take Part in Blockchain Gamer Connects

    Next week, Waves will participate in Blockchain Gamer Connects, the first event dedicated exclusively to blockchain games and held simultaneously with Pocketgamer Connects and PC Connects on January 21–22.

    Waves’ Inal Kardanov will make a presentation called “Fueling the Revolution,” focused on disruption of existing relations between developer and player, which blockchain is bringing to the games sector.

    Currently, players own nothing in the game. They could spend money on buying an item or time on growing a character, but, in the end, they can’t sell or swap those.

    However, tokenization has the potential to revolutionize in-game economies, facilitating ownership of items by players. Legitimate trade of items for an in-game currency could also help to crack down on digital games’ black economy.

    Overall, Blockchain Gamer Connects will be centered on exploring blockchain technology’s potential to introduce inevitable changes into the games industry.

    Thanks to blockchain, a whole new category of dApps, enabling secondary markets for in-game digital assets and new models for rewarding players has arrived, but there are numerous other applications of the technology in the gaming sector, limited only by developers’ imagination.

    Inal’s presentation is to be held on January 21, at 12:20pm. In addition, Waves will host a VIP reception.

  • Solving Challenges with Smart Assets


    In late 2018, Waves Platform released Smart Assets on MainNet and launched Tokenomica, a fully compliant exchange for digital assets. This article, centered on use cases for Smart Assets, comes as the first in a series focused on how Waves solutions facilitate building the financial system of the future.

    Cryptocurrency Trading

    Over the last couple of years, regulated crypto exchanges have faced challenges related to compliance with requirements imposed by regulators. Specifically, those requirements include user identification and quality assurance of assets admitted to trading.

    Tokenomica offers a solution to these challenges based on technologies already proven successful on Waves DEX, and centered on Smart Accounts and Smart Assets.

    Smart Account is an account with an attached transaction script, which allows to validate every transaction before confirming it. Smart Account allows restricting any outgoing transaction based on multi-signatures and other supplied data.

    In Tokenomica, Smart Accounts will be used to allow outgoing transactions only to users that were previously identified and approved, or so called “whitelisted” users, in order to comply with relevant regulatory requirements.

    In addition, for compliance or security reasons, transactions could require two signatures: one from the user, and another one from Tokenomica.

    Smart Accounts will allow Tokenomica to make sure that any transaction made on the platform is only possible between whitelisted users.

    But what about the quality of traded assets? Here is where Smart Assets come into play.

    Smart Assets are unique tokens (meaning that they contain a unique set of rules provided in the script) that can be purchased, sold or exchanged as defined by the script, which validates every transaction within that asset.

    In Tokenomica, Smart Assets will be used to restrict trading to pre-approved pairs of assets. Pairs will be formed by assets compliant with relevant regulations, based on applicable rules and guidelines provided by the regulators.


    Another promising area for implementation of Smart Assets is Security Token Offerings (STOs). We define security tokens as financial instruments subject to securities markets regulation that are issued and traded with the use of blockchain.

    Smart Assets allow issuers to design their security tokens in a customized way, creating a fully compliant asset with attractive features for the investors.

    These are benefits that security tokens can bring to financial markets:

    • Reduction of listing fees for issuers who will be able to access liquidity of secondary markets through security tokens trading platforms instead of going through burdensome and costly process of listing on traditional exchanges;
    • Automated corporate actions, redemptions and periodical payments processed on the blockchain;
    • Immediate execution of deals at any time — something that is not available on financial markets, bound by working hours of exchanges, custodians, clearing houses and other financial intermediaries;
    • Access to new types of investors familiar with the industry, who will be willing to invest in security tokens to support technology based projects.

    What elements of a security token can be designed with the use of Smart Assets?

    Transferability of instruments and record keeping

    1. Pre-emption rights: there are cases when a company’s shareholders are restricted from selling their shares to anyone except other shareholders. This restriction can be implemented in Smart Assets’ script, allowing the transfer of security tokens only between their holders.
    2. Qualification of investors: in some cases securities can be offered only to qualified or accredited investors. Breaching this requirement can lead to negative implications and fines for the issuers. Smart Assets’ script can incorporate a restriction allowing their transfer only to investors classified by the issuer as qualified or accredited.
    3. Record keeping: the issuer may be required to keep record of all its shareholders. Issuing a share in form of a Smart Asset creates an electronic database of shareholders on the blockchain, which is updated in real time taking into account every transaction with tokens between the investors.

    Convertible instruments

    Issuers can establish certain conditions for converting financial instruments into another type of security. For example, if a predetermined date is reached, an equity warrant can be converted into a share in the company. Such conditions can be implemented into Smart Assets and become automatically enforceable by the script, significantly reducing the burden for the administration of the conversion process.

    Payments and redemption

    A process for periodical payments could be made substantially simpler and cheaper thanks to cutting intermediaries. If securities are issued on the blockchain, payments are made to token holders’ addresses, known to the issuers, which reduces the costs for payment administration.

    Also, with Smart Assets, a new payment option can be introduced allowing to calculate periodical payments based on a certain set of requirements. For example, the amount of dividends paid to a specific investor could increase depending on the amount of time for which the token is held by such an investor (so called “loyalty dividends”).

    In addition to periodical payments, securities have a redemption price, which can be fixed or calculated upon certain conditions. Those conditions can be implemented in Smart Assets’ script, making the redemption process fully automated for the issuers.

    Workable Solution for Financial Markets

    Smart Assets represent a perfect solution for business models that require implementation of restrictions, required for compliance or other reasons.

    Just about any product to be offered in the financial services industry without breaching applicable laws and regulations, specifically when regulated cryptocurrency exchange or security token offerings are involved, is set to face restrictions.

    However, the good news is that Tokenomica offers a workable solution for regulatory challenges in the financial markets.

  • Waves Labs Relaunches with Grant Program Announcement

    Waves Labs, previously focused on supporting ICO projects, is relaunching as an initiative for supporting talented developers and promising startups building on decentralised technologies.

    Waves Labs was originally launched to help highly promising projects prepare for token sale. For a number of carefully-selected projects, Waves Labs ran a tailored ICO incubation program.

    That strategy was completely in line with the way the crypto space was developing at the time, with ICOs at the peak of their popularity. We ran a number of major crowd sales and Waves ended up in solid second place as a token issuance platform, behind only Ethereum in the number of ICOs and tokens launched.

    Thanks to those activities, we were able to attract a large number of projects and users to the platform, earned substantial media coverage and significantly raised the Waves platform’s popularity.

    Now, Waves Labs is shifting its focus to special initiatives aimed at helping as many Waves-based projects as possible. Our goal is to support talented developers and promising startups focused on building the decentralised technologies that will form the backbone for Web 3.0.

    Waves Grants will debut as a relaunch of Waves Labs’ initial vision. The grant program is aimed at startups and individual developers interested in building new products based on Waves technologies. By facilitating development of solutions built on Waves, we also aim to promote mass adoption of blockchain on a global scale.

    Decisions concerning grant recipients will be made by a committee within Waves, which will feature representatives of the company’s various divisions. 1 million WAVES will be earmarked for the program, which is carried out in collaboration with Waves’ Developer Relations Department.

    Waves Labs will be aiming to make the grant issue process as transparent as possible. We will publish regular updates about grant recipients and the selection process.

    Individual developers and teams are welcome to apply for grants to work on one of the use cases suggested by Waves Labs, or suggest their own ideas related to Waves technologies and products.

    Waves Labs’ suggested use cases include solutions for crypto and token payments, regulated tokens, escrow payment solutions and research into the application of Waves products for conventional loyalty programs.

    This list will be constantly updated, including suggestions from the community. To learn more about Waves Grants program and apply, visit https://waveslabs.com/grants.html

  • Waves Statement on Bitcoin Cash Network Split

    We will shortly be opening gateways for the fork coins BCH and BSV.

    As you likely know, some time ago the Bitcoin Cash network hardforked and the ecosystem has now divided into two separate blockchains, Bitcoin Cash (BCH), and Bitcoin Cash Satoshi Vision (BSV).

    The two networks are now distinct, and BSV has subsequently established an independent trading history and community, while BCH (also known as Bitcoin Cash ABC or BCHABC) inherits and continues the trading history of the original coin. Since it is clear that both coins will have a future and value, we will be reflecting this in our treatment of Bitcoin Cash in the Waves Client.

    Balances snapshot

    We will pause trading of BCH to take a snapshot of balances, after which BCH holders will receive an equal amount of BSV. Trading with then will be relaunched with the new asset. Two gateways, BCH and BSV, will be enabled, so that users can deposit and withdraw coins, and trade them on Waves DEX.

    At the time of writing, we are planning to hold the snapshot for BCH balances on Friday 22 February at 00:00 Pacific Time.

    Gateways will be enabled on Thursday 28 February at 23:00 Pacific Time.

  • Waves Smart Asset Applications: Whitelists, Blacklists and Interval Trading

    In the two previous articles we discussed using smart accounts and smart assets for running auctions and creating customer loyalty programs , as well as facilitating transparency for financial instruments.

    Today, we will look at some specific use cases for smart assets, including asset freezing and restricting transactions for certain addresses.

    Smart assets allow Waves users to apply scripts to tokens in much the same way as they can apply scripts to smart accounts. Whenever a transaction for a smart asset is created, it is validated by the script before being confirmed by the blockchain.

    Smart assets differ from smart accounts in the following ways:

    1. In a smart asset’s code, proofs cannot be checked (as discussed in the first article)
    2. In a smart account’s code, an ExchangeTransaction can only be checked if your account is a matcher account. Otherwise, only an order can be checked. In a smart asset’s code, you cannot check an order, but you can check an ExchangeTransaction and, if necessary, extract an order from it.
    3. Unlike a smart account, a smart asset doesn’t have a state, but we still have access to account states from the script.

    Smart assets help to substantially simplify the process of writing contracts, making implementation of many use cases more concise and elegant.

    Asset Freezing

    To freeze assets until a certain block height, targetHeight, is reached, simply define this value in the following smart asset’s script:

    let targetHeight = 1500000
    height >= targetHeight
    height is a language function that returns the current height

    Using a certain matcher

    To define a certain matcher, you can assign the matcher address as the sender value in the following smart asset’s script:

    match tx {
    case t : ExchangeTransaction =>
    t.sender == addressFromString("3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3")
    case _ => true

    Recipient whitelist

    To allow transfer of tokens only to specific accounts — to create a “whitelist” — you can use a smart asset with the following script, which checks for the presence of an address on the list:

    match tx {
    case t : TransferTransaction =>
    let trustedRecipient1 = addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4")
    let trustedRecipient2 = addressFromString("3PLZcCJyYQnfWfzhKXRA4rteCQC9J1ewf5K")
    let trustedRecipient3 = addressFromString("3PHrS6VNPRtUD8MHkfkmELavL8JnGtSq5sx")
    t.recipient == trustedRecipient1 || t.recipient == trustedRecipient2 || t.recipient == trustedRecipient3
    case _ => false

    For purposes of security and provable completion of language, the list doesn’t complete implementation of the iterator. Therefore, it is defined as a set of specific elements.

    Recipient blacklist

    Similarly, to prohibit transfer of tokens to specific accounts, you can create a blacklist. Exactly the same smart asset script will be used, but it will check an address for absence from the blacklist:

    match tx {
    case t : TransferTransaction =>
    let bannedRecipient1 = addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4")
    let bannedRecipient2 = addressFromString("3PLZcCJyYQnfWfzhKXRA4rteCQC9J1ewf5K")
    let bannedRecipient3 = addressFromString("3PHrS6VNPRtUD8MHkfkmELavL8JnGtSq5sx")
    t.recipient != bannedRecipient1 && t.recipient != bannedRecipient2 && t.recipient != bannedRecipient3
    case _ => false

    Transferring by issuer permission

    Using a smart asset, you can also add the option of transferring the smart asset only with its issuer’s permission (commitment/debt label). The issuer expresses their consent by placing the transaction’s ID in their account’s state:

    match tx {
    case t : TransferTransaction =>
    let issuer = extract(addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4"))
    #checking that the issuer's state contains the current transaction's ID
    isDefined(getInteger(issuer, toBase58String(t.id)))
    case _ => false

    Asset tradable only against a certain currency

    A smart asset can allow trading solely against specific coins. For instance, to ensure the smart asset trades only with bitcoin, the following code can be used:

    let BTCId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
    match tx {
    case t : ExchangeTransaction =>
    t.sellOrder.assetPair.priceAsset == BTCId || t.sellOrder.assetPair.amountAsset == BTCId
    case _ => true

    Trading with prices from an oracle

    In a smart asset’s script, you can set permission for trading only at a price fixed in the trusted oracle’s state:

    let oracle = Address(base58'3PLNmokt22NrSiNvCLvwMUP84LCMJqbXwAD')
    let assetId = toBase58String(base58'oWgJN6YGZFtZrV8BWQ1PGktZikgg7jzGmtm16Ktyvjd')
    match tx {
    #prohibiting the transfer of the asset
    case t: TransferTransaction | MassTransferTransaction => false
    case e: ExchangeTransaction =>
    #checking that trading is at the price fixed in the oracle's state for this asset
    let correctPrice = e.price == extract(getInteger(oracle, assetId))
    #checking that the trading is in exchange for WAVES
    let correctPriceAsset = !isDefined(e.sellOrder.assetPair.priceAsset)
    correctPrice && correctPriceAsset
    case _ => true

    Here, we face a special situation while checking the ID of the asset against which our smart asset trades. If the asset’s ID is not defined, it is WAVES by default. In the script, we check that trading is to be against WAVES.

    Fixed price raise

    You can set a fixed price for a smart asset, which can be raised in steps by a specific proportion. This is an example of a script for a smart asset traded with a fixed price that is raised by 5% every 1,000 blocks:

    let startPrice = 10
    let startHeight = 1000
    let interval = 1000
    #by what percentage the price is increased in one step
    let raise = 5
    match tx {
    case t: TransferTransaction | MassTransferTransaction => false
    case e: ExchangeTransaction =>
    e.price == startPrice + ((height - startHeight) / interval) * (100 + raise) / 100
    && !isDefined(e.sellOrder.assetPair.priceAsset)
    case _ => true

    Interval trading

    A script can also be applied to allow trading of a smart asset that is limited to a predetermined time frame. This is an example of such a script:

    let startHeight = 10000
    let interval = 44000
    let limit = 1500
    match tx {
    case t: TransferTransaction | MassTransferTransaction | ExchangeTransaction =>
    (height - startHeight) % interval < limit
    case _ => true

    In the script, we check that no more than “limit” of intervals has elapsed since the start of trading (startHeight). The interval length equals the number of blocks defined in the interval field.

Looks like your connection to Cryptocentral was lost, please wait while we try to reconnect.