Thank you for your interest in contributing. This project is a monorepo containing smart contracts, a blockchain indexer, a frontend application, and a TypeScript SDK. Contributions of all kinds are welcome — bug reports, feature proposals, documentation improvements, and code changes.
Please read and follow the Code of Conduct in all interactions within this project.
- Bug reports — Open a GitHub Issue with a clear description, reproduction steps, and expected vs. actual behavior.
- Feature requests — Open a GitHub Issue describing the use case and proposed behavior before writing code.
- Documentation — Fix typos, improve clarity, or add missing content in
docs/or package-level READMEs. - Security vulnerabilities — Do NOT open a public issue. Follow the process described in SECURITY.md.
# Fork the repo on GitHub, then clone your fork
git clone https://github.com/<your-username>/CCA-Token-Launcher-Protocol.git
cd CCA-Token-Launcher-Protocol
# Add upstream remote
git remote add upstream https://github.com/dennisonbertram/CCA-Token-Launcher-Protocol.gitpnpm installFor contract dependencies:
cd packages/contracts
forge installWork from a feature or fix branch off main. Do not commit directly to main.
| Branch pattern | Purpose |
|---|---|
main |
Production — always deployable |
feat/<description> |
New features |
fix/<description> |
Bug fixes |
docs/<description> |
Documentation-only changes |
chore/<description> |
Dependency bumps, tooling, CI changes |
git checkout main
git pull upstream main
git checkout -b feat/my-featureThis project follows Conventional Commits.
| Type | Use for | Example |
|---|---|---|
feat |
New feature or behavior | feat(contracts): add fee recipient validation |
fix |
Bug fix | fix(indexer): handle null totalSupply checkpoint |
docs |
Documentation only | docs: add token launch flow diagram |
test |
Adding or updating tests | test(contracts): cover zero-address revert in CCAFactory |
chore |
Tooling, deps, CI | chore: bump ponder to 0.8.0 |
refactor |
Code change with no behavior change | refactor(frontend): extract useAuctionTiming hook |
Keep the subject line under 72 characters. Add a body paragraph when the change needs context or describes a non-obvious decision.
- Ensure all tests pass locally before opening a PR (see Testing below).
- Write a clear PR description: what changed, why, and how to test it.
- Link any related GitHub Issues using
Closes #<number>orRelates to #<number>. - Keep PRs focused — one logical change per PR makes review faster.
- Allow maintainer edits so minor fixes can be applied without round-trips.
- Expect an initial review response within a few business days. Address feedback promptly; PRs idle for more than 30 days may be closed.
All tests must pass before a PR will be merged.
cd packages/contracts
forge testyarn workspace @cca-launcher/indexer testyarn workspace @cca-launcher/frontend testyarn workspace @cca-launcher/sdk testyarn test- Open a GitHub Discussion for questions about how the protocol works or for design feedback before writing code.
- Open a GitHub Issue for bugs and feature requests.