Contributor Quickstart
A focused checklist for engineers contributing features or fixes to the Keythings Wallet monorepo.
1. Read the essentials
README.md— project overview, scripts, and CI expectations.CONTRIBUTING.md— contribution guidelines and review expectations.SECURITY.md— security policy, reporting process, and runbook.- ADR index: Architecture Decisions.
2. Set up your environment
- Clone the monorepo and run
bun installat the root. - Start the dev server with
bun run devand load the unpacked extension fromdist/when needed. - Verify you can run
bun run lintwithout errors before making changes.
3. Implementing a change
- Create a feature branch from
main. - Make focused commits; keep UI, background logic, and wallet-core changes logically separated.
- Prefer Zod for all new validation logic (inputs, RPC payloads, configuration, and external data). Avoid using
try/catchas a validation mechanism.
4. Required checks before opening a PR
At minimum, run the following from the monorepo root:
bun run lintbun run build(run once per change set; re-run only if you fixed a build issue)bun audit
For extensions to wallet-core or security-sensitive paths, also run:
bun run test:unitbun run test:integrationbun run test:e2e(when you change flows that impact popup UX or approvals)bun run securitywhen modifying crypto, session, or capability logic.
5. Documenting decisions
- When you change storage, network mapping, or permission behaviour, add or update an ADR under
docs/adr/and reference it in your PR description. - For smaller changes, update the relevant docs page in
keythings-docs(for example, API reference or architecture map) to keep external docs aligned with behaviour.
6. Opening a pull request
- Include a short summary of the change and the problem it solves.
- List the commands you ran (lint, build, tests, security) and their results.
- Link to any new or updated ADRs and docs pages.