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-corelibrary underpackages/wallet-core/.
Getting started
- Fork the repository and clone your fork locally.
- Install dependencies with
bun installat the repo root. - Run the baseline checks to verify your environment:
bun run lintbun run build(run once to confirm a clean build)bun audit
Development workflow
- Create a feature branch from
mainfor 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 lintbun 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
anyunless 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-corebuilds successfully, for example by runningbun run buildfrom thepackages/wallet-coredirectory.
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).
27 of 27