Get started
Build waved with the wallet API
WalletService and WalletInspectionService are compiled into waved only when the daemon is built with the wavewalletrpc build tag. That tag requires swapruntime transitively: building with wavewalletrpc but without swapruntime is a deliberate compile error, and a default make build includes neither, so the wallet API is off unless you opt in.
Build both waved and wavecli with the tag using the provided make target:
make build-wavewalletrpcThis produces bin/waved and bin/wavecli with the wallet RPC surface registered. make install-wavewalletrpc does the same via go install, landing the binaries in $GOPATH/bin.
Endpoints
waved starts two listeners by default:
| Protocol | Default address | Notes |
|---|---|---|
| gRPC | localhost:10029 |
The daemon’s own RPC server. |
| REST | localhost:10031 |
An HTTP/JSON gateway in front of the same RPCs, enabled by default. |
Every WalletService and WalletInspectionService method is reachable on both listeners with the same request and response shape, modulo JSON encoding. See REST conventions for the route and body shape used by the gateway.
Your first call
With waved running a wavewalletrpc build, call Status to confirm the daemon and wallet API are up. StatusRequest is empty, so an empty JSON object is a complete request body.
Over REST (a local daemon started with --no-macaroons; otherwise add a -H "macaroon: <hex>" header):
curl -X POST http://localhost:10031/v1/wallet/status -d '{}'Over the CLI, the equivalent is:
wavecli getinfo --no-tls --no-macaroonsgetinfo talks to the daemon’s own DaemonService rather than WalletService.Status directly, but it is the fastest way to confirm wavecli can reach waved at all before you start scripting WalletService calls. --no-tls --no-macaroons matches a daemon run with authentication disabled; it is the right pairing for local and regtest use.
Where to go next
- Walk the method reference starting with Create and Unlock to bring up a wallet, then PrepareSend and Send to move funds.
- Read REST conventions for the full request, error, and streaming shape shared by every route.
- Explore the same surface from a terminal in the CLI slice:
wavecliwraps everyWalletServicemethod as a subcommand.