What I Learned Submitting a Chrome Extension to the Web Store A developer built Argus, an AI transaction firewall as a Chrome extension, and documented the challenges of submitting it to the Chrome Web Store. Key lessons include adapting to Manifest V3's stateless service workers, justifying every permission with specific features, and preparing a clear privacy policy. The submission process, though straightforward, requires upfront planning to avoid delays. I built Argus, an AI transaction firewall as a Chrome extension, and submitting it to the Web Store was its own small adventure separate from writing the code. The review process, the permissions justifications, the manifest gotchas: none of it is hard, but all of it is undocumented in the way that matters. Here is what I wish I had known before I hit submit. Argus inspects Web3 transactions before you sign them and warns you if something looks dangerous: an unlimited approval, a drainer pattern, an address that does not match what the dApp claims. It is built with WXT a modern extension framework and TypeScript, with an LLM-backed analysis step behind a freemium proxy. The technical part was the part I knew how to do. The store submission was the part that surprised me. If you are starting an extension in 2026, it is Manifest V3, period. The biggest practical consequence: no persistent background page. You get a service worker that the browser can kill at any time and restart on the next event. State does not survive. This bit me. I had assumed a long-lived background context where I could cache analysis results in memory. In MV3 that cache evaporates whenever the worker sleeps. The fix was to treat the service worker as stateless and put anything that needs to persist into chrome.storage : js // Wrong assumption: this Map is gone when the worker sleeps const cache = new Map