Thank you for your interest in contributing. Bot Protocol is an open specification, and its quality depends on community review and contribution.
Before writing a pull request for a substantive change, open an issue first to discuss it. This applies to:
- Changes to cryptographic primitives or token formats
- New features or removals
- Threat model additions or revisions
- Major editorial restructuring
For minor edits (typos, clarifications, examples), a pull request without a prior issue is welcome.
When opening an issue, use one of the templates in .github/ISSUE_TEMPLATE/:
- spec-question — questions about the specification
- threat-model-finding — security or threat-model concerns
- implementation-bug — issues with reference implementation
- feature-request — proposals for new specification features
Fork the repository, create a feature branch, make your changes, and open a pull request. The pull request template will guide you through the required information.
For specification changes, every PR should explain:
- What the change is
- Why it is needed
- What it breaks (compatibility implications)
- Threat model impact if any
Do not open public issues for security vulnerabilities. See SECURITY.md for the responsible disclosure process.
The specification uses RFC 2119 keywords:
- MUST — absolute requirement
- MUST NOT — absolute prohibition
- SHOULD — strong recommendation, exceptions must be justified
- SHOULD NOT — strong recommendation against
- MAY — optional
When proposing changes, use these terms precisely.
- Use Markdown formatting compatible with GitHub Flavored Markdown
- Headers in sentence case (not Title Case)
- Code blocks must specify language:
```json,```python,```javascript - Tables for comparative information
- One sentence per line in source markdown (makes diffs cleaner)
When reference implementations are added (Q3 2026 per ROADMAP):
- Python: PEP 8, type hints required,
blackformatter - TypeScript:
prettier, strict mode - All cryptographic operations through standard libraries (no rolling your own crypto)
Changes to the specification require:
- Author opens PR
- At least one technical reviewer approves (security or identity background preferred)
- Two-week comment period for substantive changes
- Maintainer merge after consensus
For early v0.x releases the maintainer is Ivan Stepin. As the project matures, additional maintainers will be added.
See CODE_OF_CONDUCT.md. Discussions are technical and respectful.
By submitting a pull request, you agree that your contribution is licensed under Apache License 2.0. No CLA is required at this stage.
Contributors are listed in the project repository. Significant contributions to the specification are acknowledged in the next published version.
For general questions, open a spec-question issue. For private discussion, email hello@botprotocol.io.