Develop

Enjoy Waves SDK — a diverse collection of tools, products and components. Create your blockchain-empowered applications and smart contracts from scratch, using structured and comprehensive client libraries and toolkits.

Blockchain

Transactions

Transactions and, specifically, token transfer transactions, are an essential part of every blockchain. This applies to Waves, as well, but, unlike many other blockchains, the Waves protocol has different types of transactions, making every operation as simple as possible and keeping the protocol fast and secure. Such operations as storing data, issuing and burning tokens, leasing and creating aliases are executed by sending a simple transaction with no need to write a smart contract. Different applications can utilize blockchain in different ways: as an immutable data storage by sending data transactions, as a payment layer by sending transfer transactions or for implementing business logic by using smart contracts.

Explorer

Waves Explorer is an online service that displays Waves’ Mainnet, Testnet and Stagenet blockchain data in a human-readable form. Configurable for users’ custom network, Waves Explorer provides tracking of any network or blockchain node and delivers APIs that enable the display of token distribution by addresses and history of balance changes.

Keeper

Waves Keeper is a browser extension that allows users to sign transactions and securely interact with Waves-enabled web services. Waves Keeper is designed for convenience, enabling users to sign transactions with just a couple of clicks. Users can create multiple wallets and switch between them easily. And if a user ever forgets the password to the account, the access can be recovered from the seed phrase.

Download

Signer

Waves Signer is a TypeScript/JavaScript library that enables signing and broadcasting transactions on behalf of users without asking them for their seed phrases or private keys and even without a need to install browser extensions.

Smart contracts

API

Waves Node API allows applications to interact with the blockchain node to send transactions or fetch data by making HTTP requests. Waves Nodes have an out-of-the-box REST API, while gRPC protocol is available as an optional extension.

Ride

Enjoy the advantages of Ride programming language. Ride is an easy-to-learn and user-friendly programming language specifically designed for developing decentralised applications. Ride facilitates building decentralized applications without gas, allowing developers to benefit from a cheaper and more convenient coding process than ever before and making blockchain development totally easy.

Smart accounts

Basically, a smart account is an account with an attached script, so that the account can validate every transaction before confirming it. An account can restrict any outgoing transaction based on: signatures and other supplied data, proofs, current blockchain height and arbitrary blockchain data, like data from oracles sent as data transactions.

Smart assets

Smart assets are unique virtual currency tokens that may represent a tangible real-world asset, or a non-tangible ownership that can be purchased, sold, or exchanged as defined by the rules of a script on the Waves blockchain network. In simple words, smart assets are assets with an attached script which validates every transaction with the asset.

Decentralized applications

A decentralized application (dApp) is an application that is stored and executed on the blockchain network. There are many fields in which dApps can be implemented, including decentralized finances, decision-making, certification, tokenization, team management and gambling.

Developer Tools

Online IDE

Write, test and deploy scripts for your decentralized application’s customized logic directly in the browser. Online IDE has an integrated testing framework based on JavaScript framework Chai, intelliSense and syntax highlighting to make the development process easier. You can also find a library of Ride smart contract examples and try them.

dApps UI

Waves-dApp.com provides an auto-generated UI from dApp meta information and works via Waves Keeper and/or other Web 3.0 providers inside the Waves ecosystem. It works with Mainnet, Testnet, Stagenet and Customnet (localhost: 6869). Just paste a dApp address or URL in the search field and the app will figure out the network from the bytes of the address and operate with the correct node. Waves-dApp.com allows developers to run early testing and try out functionality as the contract is being implemented. Testers have full access to all callable functions, and dApp administrators don’t need to build a separate interface as the Waves-dApp UI is simple and powerful.

VSCode plugin

This extension for Visual Studio Code provides Ride language support and interaction with the Waves blockchain. Its key features are сode completion (snippets), syntax and error highlighting and a JavaScript console with built-in functions for interaction with the Waves blockchain.

Surfboard

Surfboard is a command line interface for working with Ride smart contracts and the Waves blockchain. Surfboard provides built-in JavaScript functions for interaction with the Waves blockchain: signing and sending transactions, reading blockchain data, working with account keys and others.

APIs

Node API

The Node API or the Waves Node API is a REST API of the blockchain node. This API facilitates fetching data, sending transactions and checking node status. Waves Association provides free public access to API endpoints for Mainnet, Testnet and Stagenet.

Waves Data Service API

This is an API for analytical services aimed at retrieving data quickly and conveniently with additional filters and ordering options. Data Service API stores blockchain data in a centralized database which is more flexible and scalable than a blockchain node.

Matcher API

The matcher exposes its own REST API for accessing the order book and submitting orders. This allows users to implement any kind of trading UI or trading bots.

Client libraries

Waves transactions

Using this library you can easily create and sign transactions for the Waves blockchain in your JavaScript/Typescript application. It can be used both on the client side and server side. It also contains useful functions for cryptography and node REST API interaction.

PyWaves

PyWaves is an object-oriented Python interface to the Waves blockchain platform. The library is developed by the community and is open-source. Latest documentation and examples can be found in the Github repository.

WavesJ

It’s a Java library for interacting with the Waves blockchain. It supports node interaction, offline transaction signing, matcher orders and creation of addresses and keys.

Other

You can find other libraries including С, C#, Go, Kotlin, Swift and Rust in the documentation