Orthonode Infrastructure Labs
TON-SHA is open-source infrastructure. Contributions are welcome — bug reports, documentation improvements, contract enhancements, and SDK additions.
- Fork the repository
- Follow the Setup Guide to get your environment working
- Run
npx blueprint run checkState --testnetto verify you can connect to the testnet contract - Make your changes on a feature branch
# Build the contract
npx blueprint build
# Test against live contract
npx blueprint run agentDemo --testnet
# Test individual components
npx blueprint run checkState --testnet
npx blueprint run fullDemo --testnet- Use TypeScript for all scripts
- Follow existing naming conventions (camelCase for variables, PascalCase for types)
- Add comments for complex logic
- Keep functions focused and small
contracts/ # Tact smart contracts
scripts/ # TypeScript interaction scripts
docs/ # Documentation
build/ # Generated contract bindings (auto-generated)
- Create a descriptive pull request
- Include test results in the description
- Reference any relevant issues
- Ensure all scripts work with the live testnet contract
- Never commit private keys or testnet credentials
- Use testnet for all testing
- Report security vulnerabilities privately
- Review contract changes carefully
- Open an issue for bugs or feature requests
- Check docs/ for technical details
- Review existing issues before creating new ones
Open a GitHub issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your Node.js version and OS
- All contract changes must include updated tests in
tests/ - Run
npx blueprint buildandnpx blueprint testbefore submitting - For security-sensitive changes, open an issue for discussion before a PR
- Scripts in
scripts/should include comments explaining what each step does - Keep scripts self-contained — minimize dependencies between scripts
- Test with the live testnet contract before submitting
- Follow the tone and style of existing docs (technical, direct, no marketing fluff)
- Update the docs index in README.md if you add a new doc
- Open a PR against the
mainbranch - Describe what the PR does and why
- Reference any related issues
- Ensure
npx blueprint buildpasses - A maintainer will review within 7 days
Tact contracts:
- Use descriptive variable names
- Comment each gate in
VerifyReceiptwith its purpose - No unused imports
TypeScript scripts:
- Use
async/awaitthroughout - Log clearly at each step — scripts are as much documentation as they are code
- Export
async function run(provider: NetworkProvider)as the entry point
- Gas optimizations at the expense of readability (this is infrastructure code)
- New features without discussion (open an issue first)
- Changes to the four-gate logic without a strong security justification
By contributing, you agree that your contributions will be licensed under the MIT License.