If you discover a security vulnerability, please report it responsibly:
- Email: security@8bitlabs.xyz
- Do NOT open a public GitHub issue for security vulnerabilities
We'll acknowledge your report within 48 hours and provide a timeline for a fix.
SolanaOS is designed so that zero secrets are required in the source code.
- All secrets come from environment variables (via
.envfile or system env) .envis gitignored — it will never be committed to git.env.examplecontains the template with empty values — safe to commit- Config defaults in
pkg/config/config.gocontain no secrets (all empty strings) - SolanaOS degrades gracefully — missing API keys disable features, not crash
Before pushing any code, always verify:
# Check that .env is not tracked by git
git ls-files --error-unmatch .env 2>&1 | grep -q "error" && echo "✅ .env is safely gitignored" || echo "❌ WARNING: .env is tracked!"
# Search for potential hardcoded secrets in your changes
git diff --cached | grep -iE "(sk-|api[_-]?key\s*[:=]\s*['\"][A-Za-z0-9]|private[_-]?key\s*[:=]\s*['\"][A-Za-z0-9])" && echo "⚠️ Potential secret found!" || echo "✅ No secrets detected"| Secret | Source | Never Hardcode |
|---|---|---|
HELIUS_API_KEY |
.env / env var |
✅ |
BIRDEYE_API_KEY |
.env / env var |
✅ |
JUPITER_API_KEY |
.env / env var |
✅ |
ASTER_API_KEY / ASTER_API_SECRET |
.env / env var |
✅ |
SOLANA_PRIVATE_KEY |
.env / env var |
✅ |
OPENROUTER_API_KEY |
.env / env var |
✅ |
OPENROUTER_MODEL |
.env / env var |
✅ |
ANTHROPIC_API_KEY |
.env / env var |
✅ |
SUPABASE_SERVICE_KEY |
.env / env var |
✅ |
TELEGRAM_BOT_TOKEN |
.env / env var |
✅ |
X402_FACILITATOR_AUTHORIZATION |
.env / env var |
✅ |
- Agent wallets are stored under
~/.solanaos/with owner-only permissions where supported - Private keys are never logged — only the public key (address) appears in logs
- Use
SOLANA_PRIVATE_KEYenv var for existing wallets, or let SolanaOS auto-generate
| Version | Supported |
|---|---|
| Latest (main) | ✅ |
| Pre-release |
- Never commit
.envfiles to any repository - Rotate API keys regularly, especially if you suspect exposure
- Use separate API keys for development and production
- Run in simulated mode (
--sim) before funding your agent wallet - Start with small balances when going live
The public repository should never contain:
.envfiles- local build caches like
.gocache,.gomodcache,.gopath,.netlify - local editor or agent tool state like
.claude/,.codebuddy/,.commandcode/ - compiled binaries or APKs in the repo root
The repository now treats the following as protected surfaces:
.github/web/docs/docs-site/mawdbot-bitaxe/web/nanohub/schema.sqland any*.sqlfile
Protection is implemented in two layers:
CODEOWNERSassigns these paths to@x402agent- The
Protect Sensitive PathsGitHub Actions workflow fails pull requests from untrusted public actors when they modify those paths
This is the strongest protection that can live in the repository itself. To fully enforce it on GitHub, enable:
- branch protection on the default branch
- required status checks for
Protect Sensitive Paths - required review from Code Owners