Welcome to Pallad an experimental and progressive Mina Protocol wallet!
In the vast and evolving world of Web3, a wallet is not just a tool; it's the gateway to a whole new universe. It's the first consumer application anyone encounters in a blockchain ecosystem, and it's pivotal in shaping the user experience. That's where Pallad steps in!
Pallad is at the frontier, leading the way in innovation and user-centric design. We're not just building a wallet; we're crafting the cornerstone of zero-knowledge application interaction design. With Pallad, you're stepping into the future.
- NVM
- pnpm
Make sure you're on the right Node.js version, and you got pnpm installed.
$ nvm use
$ npm i -g pnpm
Install the dependencies:
$ pnpm i
From apps/extension
copy the .env.example
as .env
and adjust the variables there.
Build all the modules in repo:
$ pnpm build
This is a monorepo for all the Pallad-related code.
apps
extension
- Browser extension app.
packages
_template
- Template to follow for new packages in this repo.common
- Common configuration for packages (tsup and vitest).features
- Wallet features, views, and UI components.key-management
- Blockchain agnostic key management.mina-core
- Core Mina Package SDK.offchain-data
- Client for fetching off-chain data like fiat price.persistence
- Persistence logic for wallet related data.util
- Shared util functions for other packages.vault
- Credentials storage.web-provider
- Web provider to consume wallet interfaces in browser context.
Set up the dev server of extension:
$ pnpm dev:extension
Running linter:
$ pnpm lint
Running unit tests (Vitest):
$ pnpm test:unit
Running E2E tests for browser extension (Playwright):
$ npx playwright install chromium # make sure you have Chromium driver
$ pnpm test:e2e:extension
Thanks goes to these wonderful people (emoji key):
Tomek Marciniak 💻 |
Teddy Pender 💻 |
Rafał Goławski 💻 |
Mariusz 💻 |
We specified contributing guidelines. Please refer to them before starting contributing to this repository.