Contributing
Guidelines for contributing to the Armchain protocol, documentation, and ecosystem.
Repositories
armchain-client
Node client (armnode binary)
Go
armchain-ethersv6
Ethers.js v6 fork with ML-DSA44
TypeScript
armchain-wallet
Browser extension wallet
TypeScript
armchain-explorer
Block explorer
JavaScript (Vue.js + Node.js)
How to Contribute
Reporting Issues
Search existing issues to avoid duplicates
Open a new issue with:
Summary: What happened
Steps to reproduce: How to trigger the issue
Expected behavior: What should happen
Actual behavior: What actually happens
Environment: OS, node version, SDK version, etc.
Submitting Code
Fork the repository
Create a branch from
main:Make changes following the coding standards below
Write tests, since all new features must include tests
Run the test suite and make sure all tests pass
Commit with clear, descriptive messages:
Push and open a Pull Request
Commit Message Format
We follow Conventional Commits:
Types: feat, fix, docs, style, refactor, test, chore, perf
Coding Standards
Go (armchain-client)
Follow standard Go conventions (
gofmt,go vet)Write table-driven tests
Document exported functions and types
Keep functions focused and small
Handle all errors explicitly
TypeScript (ethersv6, wallet)
Use TypeScript strict mode
Follow the existing code style (ESLint configuration)
write unit tests for new functions
Document public APIs with JSDoc comments
Solidity (contracts)
Use Solidity
^0.8.xFollow the Solidity Style Guide
Write comprehensive Hardhat tests
Document with NatSpec comments
Testing
armchain-client
armchain-ethersv6
Smart Contracts
Documentation Contributions
This documentation lives in the dev-docs/ directory. To contribute:
Fork the repository
Edit or create Markdown files
Follow the existing structure and formatting
Keep language clear and concise
Include code examples where helpful
Submit a PR
Documentation Style
Use second person ("you") when addressing the reader
Use present tense ("The function returns..." not "The function will return...")
Keep sentences short and direct
Use code blocks with language hints (
```javascript,```bash, etc.)Link to related pages within the docs
Include practical examples over theoretical explanations
Code of Conduct
Be respectful and constructive
Welcome newcomers
Focus on technical merit
No harassment, discrimination, or personal attacks
Getting Help
GitHub Issues for bug reports and feature requests
Discord for real-time discussion and support
Documentation: You're reading it!
License
Contributions are subject to the repository's license. By submitting a PR, you agree that your contributions will be licensed under the same terms.
Last updated