Penumbra Guide
Penumbra is a fully private, cross-chain proof-of-stake network and decentralized exchange for the Cosmos and beyond. Penumbra brings privacy to IBC, allowing anyone to shield any IBC asset just by transferring it into Penumbra’s multi-asset shielded pool. Within Penumbra, users can transact, stake, swap, or marketmake without broadcasting their personal information to the world.
Unlike a transparent chain, where all information is public, Penumbra is end-to-end encrypted.
Using Penumbra on the web
The easiest way to get started using Penumbra is with the Penumbra web extension. The web extension runs entirely locally, and contains an embedded ultralight node that syncs and decrypts only the data visible to your wallet. Websites can request to connect to your wallet and query your data.
The Using Penumbra on the web chapter describes how to use Penumbra on the web.
Using Penumbra from the command line
Penumbra also has a command-line client, pcli
. Some protocol features, such
as threshold custody for shielded multisigs, do not yet have support in web
frontends and are only accessible via the command line.
The Using Penumbra from the command line chapter describes how to
use pcli
.
Running a node
Running a node is not necessary to use the protocol. Both the web extension and
pcli
are designed to operate with any RPC endpoint. However, we’ve tried to
make it as easy as possible to run nodes so that users can host their own RPC.
There are two kinds of Penumbra nodes:
- Penumbra fullnodes run
pd
andcometbft
to synchronize and verify the entire chain state, as described in Running a node:pd
. - Penumbra ultralight nodes run
pclientd
to scan, decrypt, and synchronize a specific wallet’s data, as well as build and sign transactions, as described in Running a node:pclientd
.
The web extension and pcli
embed the view and custody functionality provided
by pclientd
, so it is not necessary to run pclientd
to use them. Instead,
pclientd
is intended to act as a local RPC for programmatic tooling (e.g.,
trading bots) not written in Rust that cannot easily embed the code for working
with Penumbra’s shielded cryptography.
Participating in development
Penumbra is a decentralized, open-source protocol, built in public.
The Participating in development chapter has developer documentation for working on the protocol itself.
Resources
The Resources chapter has links to other resources about the Penumbra protocol.