logo
back
back
Back

Waves Software Development Kits (SDKs)

Choose smart way for developing

  • < All functions of blockchain />
  • < Native programming language />
  • < Examples />
Ready-MadeReady-MadeReady-Made

Examples

We always create and support actual ready-made examples. Just insert them into your code and use it working with Waves.

  • Issue your own asset
  • Create NFT
  • Create new address
  • Reissue transaction
  • Burn token

Add library initialization to your app

Java
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.wavesplatform.examples;
import com.wavesplatform.transactions.account.PrivateKey;
import com.wavesplatform.transactions.IssueTransaction;
import com.wavesplatform.wavesj.Node;
import com.wavesplatform.wavesj.Profile;
import com.wavesplatform.wavesj.exceptions.NodeException;
import com.wavesplatform.wavesj.info.IssueTransactionInfo;
import java.io.IOException;

public class WavesExample {
    public static void main(String[] args) throws NodeException, IOException {
        // create a node instance
        Node node = new Node(Profile.TESTNET);
        // create private key from seed
        PrivateKey privateKey = PrivateKey.fromSeed("seed phrase");
        // create IssueTransaction
        IssueTransaction tx = new IssueTransaction(
            privateKey.publicKey(),
            "asset",
            "description",
            1000,
            2,
            false,
            null)
            .addProof(privateKey);
        // publish the transaction and wait for it to be included in the blockchain
        node.waitForTransaction(node.broadcast(tx).id());
        // get transaction info from node
        IssueTransactionInfo txInfo = node.getTransactionInfo(tx.id(), IssueTransactionInfo.class);
        // print all information
        System.out.println("type:" + txInfo.tx().type());
        System.out.println("id:" + txInfo.tx().id());
        System.out.println("fee:" + txInfo.tx().fee().value());
        System.out.println("feeAssetId:" + txInfo.tx().fee().assetId().encoded());
        System.out.println("timestamp:" + txInfo.tx().timestamp());
        System.out.println("version:" + txInfo.tx().version());
        System.out.println("chainId:" + txInfo.tx().chainId());
        System.out.println("sender:" + txInfo.tx().sender().address().encoded());
        System.out.println("senderPublicKey:" + txInfo.tx().sender().encoded());
        System.out.println("proofs:" + txInfo.tx().proofs());
        System.out.println("assetId:" + txInfo.tx().assetId().encoded());
        System.out.println("name:" + txInfo.tx().name());
        System.out.println("quantity:" + txInfo.tx().quantity());
        System.out.println("reissuable:" + txInfo.tx().reissuable());
        System.out.println("decimals:" + txInfo.tx().decimals());
        System.out.println("description:" + txInfo.tx().description());
        System.out.println("script:" + txInfo.tx().script().encoded());
        System.out.println("height:" + txInfo.height());
        System.out.println("applicationStatus:" + txInfo.applicationStatus());
    }
}
  • Issue your own asset

    Add library initialization to your app

    Java
    Copy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package com.wavesplatform.examples;
    import com.wavesplatform.transactions.account.PrivateKey;
    import com.wavesplatform.transactions.IssueTransaction;
    import com.wavesplatform.wavesj.Node;
    import com.wavesplatform.wavesj.Profile;
    import com.wavesplatform.wavesj.exceptions.NodeException;
    import com.wavesplatform.wavesj.info.IssueTransactionInfo;
    import java.io.IOException;
    
    public class WavesExample {
        public static void main(String[] args) throws NodeException, IOException {
            // create a node instance
            Node node = new Node(Profile.TESTNET);
            // create private key from seed
            PrivateKey privateKey = PrivateKey.fromSeed("seed phrase");
            // create IssueTransaction
            IssueTransaction tx = new IssueTransaction(
                privateKey.publicKey(),
                "asset",
                "description",
                1000,
                2,
                false,
                null)
                .addProof(privateKey);
            // publish the transaction and wait for it to be included in the blockchain
            node.waitForTransaction(node.broadcast(tx).id());
            // get transaction info from node
            IssueTransactionInfo txInfo = node.getTransactionInfo(tx.id(), IssueTransactionInfo.class);
            // print all information
            System.out.println("type:" + txInfo.tx().type());
            System.out.println("id:" + txInfo.tx().id());
            System.out.println("fee:" + txInfo.tx().fee().value());
            System.out.println("feeAssetId:" + txInfo.tx().fee().assetId().encoded());
            System.out.println("timestamp:" + txInfo.tx().timestamp());
            System.out.println("version:" + txInfo.tx().version());
            System.out.println("chainId:" + txInfo.tx().chainId());
            System.out.println("sender:" + txInfo.tx().sender().address().encoded());
            System.out.println("senderPublicKey:" + txInfo.tx().sender().encoded());
            System.out.println("proofs:" + txInfo.tx().proofs());
            System.out.println("assetId:" + txInfo.tx().assetId().encoded());
            System.out.println("name:" + txInfo.tx().name());
            System.out.println("quantity:" + txInfo.tx().quantity());
            System.out.println("reissuable:" + txInfo.tx().reissuable());
            System.out.println("decimals:" + txInfo.tx().decimals());
            System.out.println("description:" + txInfo.tx().description());
            System.out.println("script:" + txInfo.tx().script().encoded());
            System.out.println("height:" + txInfo.height());
            System.out.println("applicationStatus:" + txInfo.applicationStatus());
        }
    }
  • Create NFT

    Add library initialization to your app

    Java
    Copy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package com.wavesplatform.examples;
    import com.wavesplatform.transactions.account.PrivateKey;
    import com.wavesplatform.transactions.IssueTransaction;
    import com.wavesplatform.wavesj.Node;
    import com.wavesplatform.wavesj.Profile;
    import com.wavesplatform.wavesj.exceptions.NodeException;
    import com.wavesplatform.wavesj.info.IssueTransactionInfo;
    import java.io.IOException;
    
    public class WavesExample {
        public static void main(String[] args) throws NodeException, IOException {
            // create a node instance
            Node node = new Node(Profile.TESTNET);
            // create private key from seed
            PrivateKey privateKey = PrivateKey.fromSeed("seed phrase");
            // create IssueTransaction
            IssueTransaction tx = new IssueTransaction(
                privateKey.publicKey(),
                "asset",
                "description",
                1000,
                2,
                false,
                null)
                .addProof(privateKey);
            // publish the transaction and wait for it to be included in the blockchain
            node.waitForTransaction(node.broadcast(tx).id());
            // get transaction info from node
            IssueTransactionInfo txInfo = node.getTransactionInfo(tx.id(), IssueTransactionInfo.class);
            // print all information
            System.out.println("type:" + txInfo.tx().type());
            System.out.println("id:" + txInfo.tx().id());
            System.out.println("fee:" + txInfo.tx().fee().value());
            System.out.println("feeAssetId:" + txInfo.tx().fee().assetId().encoded());
            System.out.println("timestamp:" + txInfo.tx().timestamp());
            System.out.println("version:" + txInfo.tx().version());
            System.out.println("chainId:" + txInfo.tx().chainId());
            System.out.println("sender:" + txInfo.tx().sender().address().encoded());
            System.out.println("senderPublicKey:" + txInfo.tx().sender().encoded());
            System.out.println("proofs:" + txInfo.tx().proofs());
            System.out.println("assetId:" + txInfo.tx().assetId().encoded());
            System.out.println("name:" + txInfo.tx().name());
            System.out.println("quantity:" + txInfo.tx().quantity());
            System.out.println("reissuable:" + txInfo.tx().reissuable());
            System.out.println("decimals:" + txInfo.tx().decimals());
            System.out.println("description:" + txInfo.tx().description());
            System.out.println("script:" + txInfo.tx().script().encoded());
            System.out.println("height:" + txInfo.height());
            System.out.println("applicationStatus:" + txInfo.applicationStatus());
        }
    }
  • Create new address

    Add library initialization to your app

    Java
    Copy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package com.wavesplatform.examples;
    import com.wavesplatform.transactions.account.PrivateKey;
    import com.wavesplatform.transactions.IssueTransaction;
    import com.wavesplatform.wavesj.Node;
    import com.wavesplatform.wavesj.Profile;
    import com.wavesplatform.wavesj.exceptions.NodeException;
    import com.wavesplatform.wavesj.info.IssueTransactionInfo;
    import java.io.IOException;
    
    public class WavesExample {
        public static void main(String[] args) throws NodeException, IOException {
            // create a node instance
            Node node = new Node(Profile.TESTNET);
            // create private key from seed
            PrivateKey privateKey = PrivateKey.fromSeed("seed phrase");
            // create IssueTransaction
            IssueTransaction tx = new IssueTransaction(
                privateKey.publicKey(),
                "asset",
                "description",
                1000,
                2,
                false,
                null)
                .addProof(privateKey);
            // publish the transaction and wait for it to be included in the blockchain
            node.waitForTransaction(node.broadcast(tx).id());
            // get transaction info from node
            IssueTransactionInfo txInfo = node.getTransactionInfo(tx.id(), IssueTransactionInfo.class);
            // print all information
            System.out.println("type:" + txInfo.tx().type());
            System.out.println("id:" + txInfo.tx().id());
            System.out.println("fee:" + txInfo.tx().fee().value());
            System.out.println("feeAssetId:" + txInfo.tx().fee().assetId().encoded());
            System.out.println("timestamp:" + txInfo.tx().timestamp());
            System.out.println("version:" + txInfo.tx().version());
            System.out.println("chainId:" + txInfo.tx().chainId());
            System.out.println("sender:" + txInfo.tx().sender().address().encoded());
            System.out.println("senderPublicKey:" + txInfo.tx().sender().encoded());
            System.out.println("proofs:" + txInfo.tx().proofs());
            System.out.println("assetId:" + txInfo.tx().assetId().encoded());
            System.out.println("name:" + txInfo.tx().name());
            System.out.println("quantity:" + txInfo.tx().quantity());
            System.out.println("reissuable:" + txInfo.tx().reissuable());
            System.out.println("decimals:" + txInfo.tx().decimals());
            System.out.println("description:" + txInfo.tx().description());
            System.out.println("script:" + txInfo.tx().script().encoded());
            System.out.println("height:" + txInfo.height());
            System.out.println("applicationStatus:" + txInfo.applicationStatus());
        }
    }
  • Reissue transaction

    Add library initialization to your app

    Java
    Copy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package com.wavesplatform.examples;
    import com.wavesplatform.transactions.account.PrivateKey;
    import com.wavesplatform.transactions.IssueTransaction;
    import com.wavesplatform.wavesj.Node;
    import com.wavesplatform.wavesj.Profile;
    import com.wavesplatform.wavesj.exceptions.NodeException;
    import com.wavesplatform.wavesj.info.IssueTransactionInfo;
    import java.io.IOException;
    
    public class WavesExample {
        public static void main(String[] args) throws NodeException, IOException {
            // create a node instance
            Node node = new Node(Profile.TESTNET);
            // create private key from seed
            PrivateKey privateKey = PrivateKey.fromSeed("seed phrase");
            // create IssueTransaction
            IssueTransaction tx = new IssueTransaction(
                privateKey.publicKey(),
                "asset",
                "description",
                1000,
                2,
                false,
                null)
                .addProof(privateKey);
            // publish the transaction and wait for it to be included in the blockchain
            node.waitForTransaction(node.broadcast(tx).id());
            // get transaction info from node
            IssueTransactionInfo txInfo = node.getTransactionInfo(tx.id(), IssueTransactionInfo.class);
            // print all information
            System.out.println("type:" + txInfo.tx().type());
            System.out.println("id:" + txInfo.tx().id());
            System.out.println("fee:" + txInfo.tx().fee().value());
            System.out.println("feeAssetId:" + txInfo.tx().fee().assetId().encoded());
            System.out.println("timestamp:" + txInfo.tx().timestamp());
            System.out.println("version:" + txInfo.tx().version());
            System.out.println("chainId:" + txInfo.tx().chainId());
            System.out.println("sender:" + txInfo.tx().sender().address().encoded());
            System.out.println("senderPublicKey:" + txInfo.tx().sender().encoded());
            System.out.println("proofs:" + txInfo.tx().proofs());
            System.out.println("assetId:" + txInfo.tx().assetId().encoded());
            System.out.println("name:" + txInfo.tx().name());
            System.out.println("quantity:" + txInfo.tx().quantity());
            System.out.println("reissuable:" + txInfo.tx().reissuable());
            System.out.println("decimals:" + txInfo.tx().decimals());
            System.out.println("description:" + txInfo.tx().description());
            System.out.println("script:" + txInfo.tx().script().encoded());
            System.out.println("height:" + txInfo.height());
            System.out.println("applicationStatus:" + txInfo.applicationStatus());
        }
    }
  • Burn token

    Add library initialization to your app

    Java
    Copy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package com.wavesplatform.examples;
    import com.wavesplatform.transactions.account.PrivateKey;
    import com.wavesplatform.transactions.IssueTransaction;
    import com.wavesplatform.wavesj.Node;
    import com.wavesplatform.wavesj.Profile;
    import com.wavesplatform.wavesj.exceptions.NodeException;
    import com.wavesplatform.wavesj.info.IssueTransactionInfo;
    import java.io.IOException;
    
    public class WavesExample {
        public static void main(String[] args) throws NodeException, IOException {
            // create a node instance
            Node node = new Node(Profile.TESTNET);
            // create private key from seed
            PrivateKey privateKey = PrivateKey.fromSeed("seed phrase");
            // create IssueTransaction
            IssueTransaction tx = new IssueTransaction(
                privateKey.publicKey(),
                "asset",
                "description",
                1000,
                2,
                false,
                null)
                .addProof(privateKey);
            // publish the transaction and wait for it to be included in the blockchain
            node.waitForTransaction(node.broadcast(tx).id());
            // get transaction info from node
            IssueTransactionInfo txInfo = node.getTransactionInfo(tx.id(), IssueTransactionInfo.class);
            // print all information
            System.out.println("type:" + txInfo.tx().type());
            System.out.println("id:" + txInfo.tx().id());
            System.out.println("fee:" + txInfo.tx().fee().value());
            System.out.println("feeAssetId:" + txInfo.tx().fee().assetId().encoded());
            System.out.println("timestamp:" + txInfo.tx().timestamp());
            System.out.println("version:" + txInfo.tx().version());
            System.out.println("chainId:" + txInfo.tx().chainId());
            System.out.println("sender:" + txInfo.tx().sender().address().encoded());
            System.out.println("senderPublicKey:" + txInfo.tx().sender().encoded());
            System.out.println("proofs:" + txInfo.tx().proofs());
            System.out.println("assetId:" + txInfo.tx().assetId().encoded());
            System.out.println("name:" + txInfo.tx().name());
            System.out.println("quantity:" + txInfo.tx().quantity());
            System.out.println("reissuable:" + txInfo.tx().reissuable());
            System.out.println("decimals:" + txInfo.tx().decimals());
            System.out.println("description:" + txInfo.tx().description());
            System.out.println("script:" + txInfo.tx().script().encoded());
            System.out.println("height:" + txInfo.height());
            System.out.println("applicationStatus:" + txInfo.applicationStatus());
        }
    }
How to startHow to startHow to start

Getting started with Waves blockchain is easy. Click on how to use and go to Waves Lessons where you can learn how to work with blockchain with examples in your programming language

  • < Choose your language /> You've chosen Java
  • Java
  • GoLang
  • Php
  • Python
  • Rust
  • Java Script
DocumentationDocumentationDocumentation

Sections of documentation will allow you to dive quickly into developing

    Use PluginsUse PluginsUse Plugins

    To Work

    Build your first program / smart contract / or Decentralized App with your native Integrated Development Environment

    Go to plugins

    Use

    Waves SignerWaves SignerWaves Signer

    To sign your transactions in your projects

    You can use different providers in waves blockchain to keep seed of users safety and secure and sign transactions.

    Get started
    Products
    Keeper Wallet
    Products
    Ledger
    Products
    Waves Exchange
    Products
    Metamask