Category: Security | Priority: High | Dependencies: #10 (load test informs keeper tuning), audit is a separate issue | Out of scope: third-party audit (own issue), Grafana dashboards (own issue)
Description & Context: Contract, keeper, and indexer are Testnet-proven. Mainnet is the wave-submission differentiator; this tracks the deployment itself.
Acceptance Criteria / DoD:
How to verify: Public Mainnet contract id + tx hashes for deploy and one keeper bump; GET /status on the production keeper shows ok:true.
Category: Security | Priority: High | Dependencies: #10 (load test informs keeper tuning), audit is a separate issue | Out of scope: third-party audit (own issue), Grafana dashboards (own issue)
Description & Context: Contract, keeper, and indexer are Testnet-proven. Mainnet is the wave-submission differentiator; this tracks the deployment itself.
Acceptance Criteria / DoD:
stream_core.wasmbuilt frommainand deployed with a funded admin; contract id recordedversion()returns 4 on Mainnet; native SAC + one custom token stream created as a smoke testKEEPER_SECRETfrom a dedicated funded account, never the admin key); instance + stream TTLs observed re-arming on real ledgers over ≥1 keeper passREADME.mdNetworks section updated with the live Mainnet contract id andRPC_URL/VITE_*valuesHow to verify: Public Mainnet contract id + tx hashes for deploy and one keeper bump;
GET /statuson the production keeper showsok:true.