/pallad

Progressive Mina Protocol Wallet

Primary LanguageTypeScriptApache License 2.0Apache-2.0


Module type: ESM Discord example workflow

⚠️ Work in progress ⚠️ 🚨 Now in Beta 🚨

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 📌

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.

  • 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.

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
Tomek Marciniak

💻
Teddy Pender
Teddy Pender

💻
Rafał Goławski
Rafał Goławski

💻
Mariusz
Mariusz

💻

Contributing 🤝

We specified contributing guidelines. Please refer to them before starting contributing to this repository.

Contributing Guidelines

Links 🌍

pallad.co - The official website of Pallad

Ladle

Discord