Practical overview
When it fits
Use Gowaves when you need Go-based node software, local blockchain infrastructure, or libraries for building Waves transaction and smart-contract integrations.
Who it is for
- Go developers building applications or transaction workflows for Waves.
- Blockchain operators running a self-hosted Waves node.
- Teams working with Waves smart-contract and node tooling.
Documented uses
- Run a Waves MainNet or TestNet node.
- Import blockchain data into a Go node's state directory.
- Create wallets and configure private-key loading for block generation.
- Construct, sign and broadcast Waves InvokeScript transactions from Go.
- Develop software using Waves libraries and supported blockchain APIs.
Requirements & limits
The repository is public and MIT-licensed. Prebuilt binaries are referenced for Linux, macOS and Windows through the GitHub Releases page. Building from source requires Go 1.26 or later.
- Choose it when a Go implementation of the Waves node or client libraries is important.
- Account for the reduced and limited REST API before selecting it for REST-dependent work.
- Use the documented gRPC or MetaMask support where those interfaces fit the integration.
- Plan around the incompatibility between Go-node and Scala-node state storage.
- Use the documented TestNet client endpoint for the example transaction-broadcast workflow.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up a self-hosted Waves node from a binary
Download a Gowaves node binary and start a MainNet or TestNet node.
Before you start
- A Linux, macOS or Windows system.
- A suitable node binary from the Gowaves Releases page.
- A path for the node state directory.
Steps
Download the appropriate node binary from the Releases page.
Run the node with
./node -state-path [path to node state directory].For TestNet, add
-blockchain-type testnet; peer addresses may also be supplied as a comma-separated list.
Expected outcome
The Gowaves node process is started with the selected state directory and, where specified, the TestNet configuration.
Guide limitations
- The default configuration runs MainNet.
- The Go node's state storage is incompatible with the Scala node.
- The repository identifies REST API support as partial and limited.
Create and use a Gowaves wallet for block generation
Create an encrypted wallet file and provide it to a node for loading private keys.
Before you start
- A suitable wallet utility binary from the Gowaves Releases page.
- A password for the wallet file.
- A node state directory and, for block generation, the required wallet path and password.
Steps
Run
./wallet -newand provide a password when prompted.Start the node with
-wallet-path [path to wallet file]and-wallet-password [password string].Use
-blockchain-type testnetwhen configuring a TestNet node, if required.
Expected outcome
The wallet utility creates a wallet file, and the node is configured to attempt loading its private keys for block generation.
Guide limitations
- The wallet file is encrypted with the password entered during creation.
- The documentation describes key loading and block-generation configuration but does not establish that block generation will occur in a particular environment.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 2 October 2026
- Original website title
- wavesplatform/gowaves · Official homepage title · retained in its source language

