MetaMask Snap that reminds users of soon-to-expire ENS names in their wallet.
This project will notify users when ENS names they own are about to expire, directly in MetaMask (and even natively with Chrome notifications when MetaMask is locked). These notifications are sent every week, at the start of the week, starting 45 days prior to the ENS name expiring. The ENS data is fetched from The Graph.
This project was kickstarted from the MetaMask Snap template repo (https://github.com/MetaMask/template-snap-monorepo). That includes Flask, the Snaps CLI, and a Gatsby frontend. I heavily modified the frontend using ENS' Thorin component library (https://thorin.ens.domains/) and used all new permissions in the Snap.
Initially, I was retrieving ENS expiration data from a standard API one by one, then realized I could use The Graph to make batch requests which allowed me to keep the code nice and clean (for a hackathon at least 😅). ENS has a subgraph deployed to Goerli which I'm using in the repo, but it's mapped perfectly with mainnet so switching it out once Snaps are in production will be trivial.