RPC access

Working with gRPC for Penumbra

The Penumbra pd application exposes a gRPC (opens in a new tab) service for integration with other tools, such as pcli or the web extension. A solid understanding of how the gRPC methods work is helpful when building software that interoperates with Penumbra.

Using gRPC UI

You can use the gRPC UI (opens in a new tab) interface to perform queries against a node's gRPC endpoint. It's also possible to run gRPC UI locally on your machine, to connect to a local devnet.

Using Buf Studio

The Buf Studio (opens in a new tab) webapp provides a polished GUI and comprehensive documentation (opens in a new tab). However, a significant limitation for use with Penumbra is that it lacks support for streaming requests, such as penumbra.core.component.compact_block.v1.CompactBlockRangeRequest (opens in a new tab).

Set the request type to gRPC-web at the bottom of the screen. You can then select a Method and explore the associated services. Click Send to submit the request and view response data in the right-hand pane.

Interacting with local devnets

Regardless of which interface you choose, you can connect to an instance of pd running on your machine, which can be useful while adding new features. First, make sure you've joined a network by setting up a node on your local machine. Once it's running, you can connect directly to the pd port via http://localhost:8080.

Alternatively, you can use pclientd. First, make sure you've configured pclientd locally with your full viewing key. Once it's running, you can connect directly to the pclient port via http://localhost:8081.