Introduction
Cowboy is a community-driven protocol. Anyone can propose improvements, from minor documentation fixes to major protocol changes. This guide explains how to contribute effectively.Types of Contributions (At a Glance)
1. Documentation
- Fixes, clarifications, examples
- Process: open a PR
- Typical review: 1–3 days
2. Code
- Bug fixes, features, optimizations
- Process: PR with tests and docs updates
- Checklist: tests pass, style follows, CI green
3. CIPs (Protocol-Level)
- Scope: consensus or normative spec changes
- Process: follow CIP flow below
- Typical review: multi-week (discussion → review → decision)
CIP Process (Essentials)
What Needs a CIP?
- Consensus changes, protocol features, metering changes
- Standard actor interfaces, network protocol changes
- Not needed for docs, SDK-only changes, non-normative tooling/bugfixes
Submitting Your CIP (Short Path)
- Discuss the idea
- Post a “Pre-CIP” on the forum (
forum.cowboy.io, Proposals) - Optional: chat in Discord
#proposals - Aim for 1–2 weeks of feedback
- Draft the spec
- Copy the template in
docs/cips/and write CIP-X - Include: problem, motivation, specification, compatibility, security
- Open the PR
- Branch:
cip/X-your-feature - PR description: summary, motivation, discussion link, checklist
- Review → Decision
- Initial check → community review → core review → last call
- Outcome: Accepted / Needs work / Rejected (with rationale)
- Implementation (if accepted)
- Reference implementation PR + tests → testnet → activation (if needed)
Review Criteria (Condensed)
- Clarity: clear problem, motivation, and scope
- Technical soundness: secure, feasible, measurable impact
- Compatibility: safe migrations/backwards compatibility
- Community signal: discussion, support, and timing
- Testing/audit: appropriate tests; audits where needed
FAQ (Short)
How long does a CIP take?
How long does a CIP take?
Typically several weeks: discussion → reviews → decision → (optionally) implementation/testing.
Can I update my CIP?
Can I update my CIP?
Yes, during Draft/Review. After “Final”, open a new CIP for changes.
What if it’s rejected?
What if it’s rejected?
Address feedback and resubmit later, propose an alternative, or ship as a non-consensus feature.

