Privacy Hub
Privacy Hub – Your Privacy. Your Wallet.
Created on 30th June 2025
•
Privacy Hub
Privacy Hub – Your Privacy. Your Wallet.
The problem Privacy Hub solves
Privacy Analyzer + Wallet Safety Notifier is built to tackle two big headaches that almost everyone online—especially in crypto—runs into sooner or later:
🔍 Hidden Privacy Risks While Browsing
These days, most websites quietly load trackers, analytics scripts, and sometimes even malicious code behind the scenes.
You rarely get to see who is collecting your data or what exactly they’re tracking.
For non-technical users, understanding these risks or blocking them isn’t easy.
💸 Crypto Wallet Scams and Unsafe Contracts
If you’ve ever connected your wallet to a website, you know the anxiety:
Is this smart contract legit or a scam?
Can I trust this site with my wallet?
Checking contract safety often means manually searching addresses across different platforms like Etherscan, Chainabuse, and Reddit.
It’s time-consuming and overwhelming if you don’t know where to look.
✨ How It Makes Things Easier and Safer
✅ Automatic Website Scanning
The extension scans every site you visit and instantly alerts you if it detects known trackers or suspicious scripts.
No technical knowledge needed—just clear, simple information about what’s going on in the background.
✅ Wallet Connection Safety Checks
As soon as you connect your wallet to a site, the extension jumps into action.
It uses Chainlink Functions to verify smart contracts in real time against trusted safety APIs.
If something looks shady, you get a warning before you approve any transactions.
✅ Trusted Verification Without the Extra Work
Instead of spending time manually researching contract addresses, you get a straightforward safe/unsafe status right in your browser.
One click gives you peace of mind.
✅ Improved Transparency and Confidence
Clear reports, visual indicators, and notifications help you feel in control of your privacy and security.
No more second-guessing if you’re about to get scammed or tracked.
✅ Optional Extra Protection
Want to keep a record? You can download safety reports as PDFs or JSON files.
Phishing detection warns you about known scam domains.
A simple icon badge shows whether a site is safe at a glance.
In short:
This tool makes it easy for anyone—regardless of technical experience—to browse and use crypto safely and confidently.
Challenges we ran into
🐞 1. Handling Asynchronous Contract Verification
One of the trickiest parts was getting asynchronous smart contract verification to work smoothly with Chainlink Functions.
The Issue:
The verification relied on making API calls, which could take anywhere from a couple of seconds to much longer depending on network conditions. This unpredictability meant the popup sometimes looked stuck or empty while it was still waiting for a response.
How I Solved It:
I restructured the logic using Promises and async/await so the extension wouldn’t try to display incomplete data. I also added a loading spinner in the popup to reassure users that the check was still happening in the background.
🛑 2. Content Script and Background Script Communication
Another hurdle was figuring out how to make the content script and the background script talk to each other.
The Issue:
Chrome extensions isolate these scripts for security, so you can’t just share variables between them. At first, my attempts to pass data directly kept failing silently, which was pretty confusing.
How I Solved It:
I set up a message passing system using chrome.runtime.sendMessage() and chrome.runtime.onMessage.addListener(). This way, the content script could send the tracker scan results to the background script, and the background script could forward wallet verification updates to the popup. Once I had this pipeline in place, everything started to click.
🎨 3. Popup UI Updating Dynamically
Keeping the popup display up to date in real time was more challenging than it looked.
The Issue:
Sometimes, when I opened the popup after something had already happened (like a scan finishing), it didn’t show the latest information. It felt like the UI was always one step behind.
How I Solved It:
I decided to store the latest status in chrome.storage.local, which acts like shared memory for all parts of the extension. Then, every time the popup loads, it checks that storage for the current status before showing anything. This made sure users always saw the most accurate information right away.
🧪 4. Testing Chainlink Integration
Testing the Chainlink integration was slower and more complicated than I expected.
The Issue:
Because Chainlink Functions rely on real API calls, every test required waiting for an actual network response—and if something went wrong, debugging could take ages.
How I Solved It:
To speed things up, I built mock functions that simulated both successful and failed verifications. This way, I could quickly test how the extension would behave without waiting for live responses every single time.
Technologies used