Waves Protocol Rosetta Implementation

Waves node with Rosetta API compatible middleware

We implemented the very first version of Rosetta API middleware for Waves Protocol. The API supports all endpoints – API reference is available on Postman Docs


This middleware implements Rosetta API specifications for Waves blockchain.

The docker image inherits settings from Waves Node Docker Image.


Build docker image

The simplest way to build an image is to run the following command:

docker build . -t waves-rosetta-api

Additional properties are described here.

Running docker image

docker run -v /waves-data:/var/lib/waves -v waves-config:/etc/waves -p 6869:6869 -p 6862:6862 -p 8080:8080 -e JAVA_OPTS="-Dwaves.rest-api.enable=yes -Dwaves.rest-api.bind-address= -Dwaves.rest-api.port=6869 -Dwaves.wallet.password=myWalletSuperPassword" -e WAVES_NETWORK=stagenet -ti waves-rosetta-api

Calling API

API call examples are shown here.


Waves node image configuration process is described here

Middleware configuration is stored in .env file

Known issues

  • Transaction fees are counted as one Operation because of lack of data about sponsored asseets
  • /construction/payloads requires an additional field public_key to generate a transaction
  • Does not support assets issued on the Waves blockchain
  • Supports only one signature in Construction API

@ikardanov this Is so awesome. Thanks for submitting this, and we are excited to dig in!

Just one request. If you have not already, could you please test your implementation using the Rosetta Cli? https://github.com/coinbase/rosetta-cli