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.
@penumbra-zone/client
nextjs example@penumbra-zone/wasm
nextjs exampleAll 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.
cargo install cargo-watch
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.
chrome://extensions
apps/extension/dist
.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.