The Penumbra monorepo for all things web.
This is a monolithic repository of Penumbra web code, a monorepo. Multiple apps, internal packages, and published packages are developed in this repository, to simplify work and make broad cross-package changes more feasible.
To participate in the test network, use the browser extension Prax from the Chrome Web Store.
You can talk to us on Discord.
Minifront: Dapp to swap, stake, and send on the Penumbra testnet.
Prax: Extension for Chrome that provides key custody, manages chain activity, and hosts services used by dapps.
Status: Public info dashboard for Penumbra nodes.
All have a @penumbra-zone/
namespace prefix on npm.
π bech32m π client π constants π crypto π getters π keys π perspective π protobuf π services π services-context π storage π transport-chrome π transport-dom π types π wasm π
General documentation is available in docs/README.md. Package-specific documentation is available in each respective package.
- Install Rust and Cargo (probably with rustup)
- Install Wasm-pack
- Install cargo-watch:
cargo install cargo-watch
- Install Node.js however you like (at least version 20)
- Install pnpm (probably via corepack)
- Install Google Chrome
Once you have all these tools, you can
git clone https://github.com/penumbra-zone/web
cd web
pnpm i
pnpm dev
You now have a local copy of Minifront available at
https://localhost:5173
and an unbundled Prax is
available at apps/extension/dist
, ready to be loaded
into your browser.
Minifront will hot-reload.
If you're working on Prax, Chrome will show extension page changes after a manual refresh, but cannot reload the extension worker scripts or content scripts. For worker script changes, you must manually reload the extension. For content script changes, you must also manually reload pages hosting the injected scripts.
After building Prax, you can load it into Chrome.
It's recommended to use a dedicated browser profile for development, not your personal profile.
- Go to the Extensions page
chrome://extensions
- Enable Developer Mode by clicking the toggle switch at the top right
- Click the button Load unpacked extension at the top and locate your cloned
repository. Select the extension's build output directory
apps/extension/dist
. - Activate the extension to enter onboarding.
- You may set a blank password.
- You can pin the Prax extension button to your toolbar for quick access.
If you believe you've found a security-related issue with Penumbra, please disclose responsibly by contacting the Penumbra Labs team at security@penumbralabs.xyz.