The Prax Wallet monorepo for all things Prax.
This is a monolithic repository of Prax code, a monorepo. Multiple apps and packages are developed in this repository, to simplify work and make broad cross-package changes more feasible.
Install the Prax extension Prax from the Chrome Web Store.
You can talk to us on Discord.
Prax Extension: Extension for Chrome that provides key custody, manages chain activity, and hosts services used by dapps.
Prax Marketing Site: Marketing site for the Prax wallet
General documentation is available in docs/README.md. Package-specific documentation is available in each respective package.
- Install Node.js version 22 or greater
- Install pnpm (probably via corepack)
- Install Google Chrome (Chromium works but we have encountered behavioral differences)
Once you have all these tools, you can
git clone https://github.com/prax-wallet/web
cd web
pnpm i
CHROMIUM_PROFILE=chromium-profile pnpm dev
The env var CHROMIUM_PROFILE
is optional. You may simply execute pnpm dev
,
or set the var to any path. Presence of a path will create and launch a
dedicated browser profile with the extension. The directory 'chromium-profile'
is gitignored.
CHROMIUM_PROFILE
names 'Chromium' but will launch Google Chrome if installed.
If you want to use a specific binary, you may need to specify a path with the
var CHROME_PATH
.
You now have a local copy of the marketing site available at
https://localhost:5175
and an unbundled Prax is
available at apps/extension/dist
.
If you're working on Prax, Chrome will show extension page changes after a manual page refresh, but it cannot simply reload the extension worker scripts or content scripts. For worker script changes, you may need to manually reload the extension. For content script changes, you must also manually reload pages hosting the injected scripts.
If you don't want to use the profile tool, you must manually load the extension.
- 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're working on packages in another repository that you'd like to include
in your development cycle, tooling exists here to support use of local *.tgz
packages with pnpm dev
for a fast watch-edit-rebuild cycle
pnpm add:tgz ../path/to/somewhere/specific.tgz ../path/to/some/repo/packages/*/some-filename-*.tgz`
Your other workspace is responsible for rebuilding and repacking the tarballs.
This script also handles peer dependency conflict issues that can arise from use of local tarball packages.
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.