Contributing

This page summarizes how to work on the open-source Keythings Wallet monorepo. For full details, readCONTRIBUTING.md and CODE_OF_CONDUCT.md in the repository.

Scope

The monorepo contains:

  • The Keythings Wallet browser extension under src/.
  • The @keetanetwork/wallet-core library under packages/wallet-core/.

Getting started

  1. Fork the repository and clone your fork locally.
  2. Install dependencies with bun install at the repo root.
  3. Run the baseline checks to verify your environment:
    • bun run lint
    • bun run build (run once to confirm a clean build)
    • bun audit

Development workflow

  • Create a feature branch from main for each change.
  • Keep pull requests focused and well scoped.
  • Prefer Zod for input, API, and configuration validation.
  • Avoid logging secrets such as mnemonics and private keys.

Before opening a pull request

At minimum, run:

  • bun run lint
  • bun run build (once, unless you are fixing build issues)
  • bun audit

For deeper verification, follow the guidance in the root README to run unit, integration, e2e, and security suites.

Guidelines for changes

  • Keep TypeScript types strict; avoid any unless strictly necessary.
  • Use Zod schemas for validating external data and configuration.
  • Add or update tests alongside code changes whenever practical.

Updating @keetanetwork/wallet-core

  • Keep the public API surface small and composable.
  • Document new APIs with clear names and usage notes.
  • Ensure packages/wallet-core builds successfully, for example by runningbun run build from the packages/wallet-core directory.

Reporting security issues

Do not report security vulnerabilities via public GitHub issues. Instead, follow the process described inSECURITY.md (for example, by emailing the security contact listed there).