Thank you for your interest in contributing to GuildPass Core! This is the backend and smart-contract foundation for the GuildPass protocol.
- Code of Conduct
- Ways to Contribute
- Finding Issues
- Development Setup
- Branching & Commits
- Submitting a Pull Request
- Smart Contract Contributions
- Review Process
- Communication
By participating you agree to our Code of Conduct.
- Fix bugs in the Fastify API or Prisma data layer
- Add or improve unit/integration tests
- Extend or improve the policy engine
- Write or improve Solidity contracts and their Foundry tests
- Improve OpenAPI documentation
- Add new API endpoints with tests
- Improve TypeScript types in shared packages
- Browse issues directly on GitHub:
- Comment
I'd like to work on thison the GitHub issue you'd like to work on. - Wait for a maintainer to assign it before starting — this avoids duplicate effort.
- Node.js 18+
- npm 9+
- Docker (for PostgreSQL and Redis)
- Foundry (for Solidity work)
# 1. Fork and clone
git clone https://github.com/<your-username>/guildpass-core.git
cd guildpass-core
# 2. Start required services
docker compose up -d
# 3. Install all workspace dependencies
npm install
# 4. Set up environment variables
cp .env.example .env
# Edit .env with your database and Redis URLs
# 5. Run Prisma migrations
npm run -w access-api prisma:migrate
# 6. Seed with sample data
npm run seed
# 7. Start the API
npm run dev
# API: http://localhost:3000
# OpenAPI docs: http://localhost:3000/docs| Path | Purpose |
|---|---|
apps/access-api |
Fastify REST API (main server) |
packages/contracts |
On-chain contract ABIs and addresses |
packages/shared-types |
Shared TypeScript types |
packages/policy-engine |
Access policy logic |
packages/sdk-lite |
Minimal HTTP client |
contracts/ |
Solidity (Foundry) |
- Branch off
main:git checkout -b feat/short-descriptionorfix/short-description - Use conventional commits:
feat: add /v1/communities/:id/roles endpointfix: correct policy engine CONTRIBUTORS_OR_ADMINS resolutiontest: add policy-engine unit tests for edge caseschore: update Prisma to 5.xcontracts: add MembershipNFT renewal event
- Keep commits focused and atomic.
- Push your branch to your fork.
- Open a PR against
Adamantine-Guild/guildpass-coreon themainbranch. - Fill in the PR template completely.
- Ensure these pass before submitting:
npm run typecheck # Must pass
npm run lint # Fix reported issues
npm run test # All tests must pass- All new API endpoints must have at least one integration test.
- Business logic must live in services, not route handlers.
- Prisma schema changes must include a migration file.
- TypeScript
anyis not acceptable without a clear comment explaining why.
When modifying Solidity contracts:
# Build
npm run contracts:build
# Test — all forge tests must pass
npm run contracts:test
# Format Solidity
forge fmt- All new contract functions must have NatSpec documentation.
- All state-changing functions must emit events.
- New contracts must have corresponding Foundry unit tests.
- Do not deploy to any real network without explicit maintainer approval.
- A maintainer will review your PR within 5 business days.
- Address requested changes promptly.
- Once approved and CI passes, a maintainer merges.
- Smart contract changes require additional review and will take longer.
- GitHub Issues: preferred for all task discussion
- Contact: cerealboxx123@gmail.com