Your program passed audit. Then a program it calls shipped a new deploy.
Your bytecode is identical. Your tests still pass. Your users are getting different results, and nobody told you.
svmscope now watches the programs you depend on. Two ways.
Check an upgrade. Your program, the program it calls, and how many recent transactions to replay. Each one runs twice on identical state: under the dependency's binary from before its last deploy, then under the one live today. Same accounts, same inputs, same slot. The only thing that moves is the upgrade, so everything that moves in the report is the upgrade. Per transaction: passed or failed under old and new, the error if either failed, the compute it cost, and whether the replay still matches what the chain recorded.
Watch a dependency. Register your program with the programs it calls. When one of them deploys, your own recent traffic is replaying against the new binary within minutes, and the report lands on your webhook, signed. Newly failing transactions are named. New errors are named. Compute is counted.
Pump AMM redeployed 17 days ago. Across the Jupiter routes we checked, its new binary added ~265 compute units per swap. Same outcome, more compute. Nobody was told.
Where the pool has moved since a swap landed, its replay fails on both sides and the row says so. You are never handed a comparison that could not have been made.
Free and open source.
Try it:
svmscope.vercel.app/watch
Bring the program you depend on most. See what its last deploy did to yours.