pallad
pallad copied to clipboard
Progressive Mina Protocol Wallet
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.
Getting Started 🚀
Prerequisite 📌
- NVM
- pnpm
Installation 💻
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
Structure 🏗️
This is a monorepo for all the Pallad-related code.
appsextension- 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.
Development 🛠️
Set up the dev server of extension:
$ pnpm dev:extension
Testing 🧪
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
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Tomek Marciniak 💻 |
Teddy Pender 💻 |
Rafał Goławski 💻 |
Mariusz 💻 |
Contributing 🤝
We specified contributing guidelines. Please refer to them before starting contributing to this repository.