penumbra-zone / web

Apache License 2.0
10 stars 7 forks source link

Penumbra Web

The Penumbra monorepo for all things web.

ci status

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.

You might be looking for examples

@penumbra-zone/client nextjs example

@penumbra-zone/wasm nextjs example

What's in here

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.

Published Packages

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 🌒

Documentation

General documentation is available in docs/README.md. Package-specific documentation is available in each respective package.

Getting Started

Prerequisites

Building

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.

Loading your unbundled build of Prax into Chrome

After building Prax, you can load it into Chrome.

It's recommended to use a dedicated browser profile for development, not your personal profile.

  1. Go to the Extensions page chrome://extensions
  2. Enable Developer Mode by clicking the toggle switch at the top right
  3. Click the button Load unpacked extension at the top and locate your cloned repository. Select the extension's build output directory apps/extension/dist.
  4. 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.

Security

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.