Auditor: Claude Code (claude-sonnet-4-6) Trigger: Routine security rotation of protocol wallet key
| Check | Result |
|---|---|
.env ever committed to git |
✅ NEVER — confirmed via git log --all --diff-filter=A -- .env |
.env currently tracked by git |
✅ NO — git ls-files --error-unmatch .env returns error (not tracked) |
.env in .gitignore |
✅ YES |
| Private key in any committed file | ✅ NOT FOUND |
| Old wallet address in committed files | ℹ️ Only in .env.example as placeholder format (not real key) |
- All 21 commits in git history
- All file paths matching
.env,**/.env,**/.env.* git grep --cachedfor any staged.envcontent- Full
git log -pfor any file ever named.env
Result: Git history is clean. No secrets were ever committed.
Proactive security rotation. The original private key was generated 2026-03-18 and stored only in .env (gitignored). Rotation triggered as a precaution to establish clean key hygiene.
- Address:
0xB44c6f4b16aE4EAeAe76d7E9c3D269B3824ffa86 - Status: DEPRECATED — do not fund or use
- Key exposure: None confirmed (never committed, never transmitted)
- Address:
0x51BdFbd66c49734E2399768D7a8cD95483102a00 - Network: Base mainnet (chain ID 8453)
- Generated: 2026-03-20 using
eth_account+secrets.token_hex(32)(cryptographically secure RNG) - Key stored:
.env(gitignored) — never displayed in output
.env—PROTOCOL_WALLET+PROTOCOL_PRIVATE_KEYupdatedWALLET_BACKUP.txt— rotation history recorded.gitignore— expanded to cover*.pid,*.db,WALLET_BACKUP.txt
Status: PENDING MANUAL CONFIRMATION SSH to production VPS requires explicit authorization before execution. To rotate once confirmed:
scp .env root@64.23.235.34:/opt/oixa-protocol/.env
ssh root@64.23.235.34 systemctl restart oixaCurrent .gitignore protects:
.env— all environment files.env.local— local overrides*.pid— all PID files (oixa.pid, etc.)*.db— all SQLite databases (includingserver/oixa.db)*.log— all log filesWALLET_BACKUP.txt— wallet backup with key location info__pycache__/,*.pyc,*.pyo— Python bytecode
Files removed from git tracking (2026-03-20):
WALLET_BACKUP.txt— was tracked, now untracked viagit rm --cachedoixa.pid— was tracked, now untracked viagit rm --cachedserver/oixa.db— was tracked, now untracked viagit rm --cached
- VPS rotation: After confirming, run
scp .env root@64.23.235.34:/opt/oixa-protocol/.env && ssh root@64.23.235.34 systemctl restart oixa - Hardware wallet: For Phase 2 (real USDC), migrate to Ledger/Trezor
- Safe multisig: Deploy Gnosis Safe for multi-signature control before mainnet launch
- Key backup: Write private key to paper and store offline (see WALLET_BACKUP.txt)
- Escrow contract:
ESCROW_CONTRACT_ADDRESSremains unchanged — no redeployment needed unless old key was the contract owner
OIXA Protocol Security | Ivan Shemi | 2026-03-20