-
-
Notifications
You must be signed in to change notification settings - Fork 273
feat: add device fingerprint binding to reduce rate limits #170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add device fingerprint binding to reduce rate limits #170
Conversation
Implements device fingerprint isolation per account to reduce detection by Google's anti-fraud systems. Each account now has unique device identifiers making them appear as separate devices. ## Changes ### New Module: src/fingerprint/ - generator.js: Core fingerprint generation with randomized values - generateFingerprint(): Creates random device fingerprints - collectCurrentFingerprint(): Captures real system fingerprint - buildFingerprintHeaders(): Converts fingerprint to HTTP headers - index.js: Public API exports ### Account Manager Updates - Auto-generates fingerprints for accounts on first load - Persists fingerprints to accounts.json - Added regenerateFingerprint(email) method - Added getFingerprint(email) method - getStatus() now includes fingerprint summary ### Request Headers Applied Per-Account - User-Agent: Randomized Antigravity version + OS/arch - X-Goog-Api-Client: Randomized SDK client identifier - Client-Metadata: Randomized IDE type and platform - X-Goog-QuotaUser: Unique quota user per account - X-Client-Device-Id: Unique device UUID per account ### WebUI API Endpoints - POST /api/accounts/:email/fingerprint/regenerate - GET /api/accounts/:email/fingerprint - POST /api/accounts/fingerprints/regenerate-all Closes badrisnarayanan#159 Co-Authored-By: Claude <noreply@anthropic.com>
- Add "Regen All FP" button in accounts header to regenerate all fingerprints - Add Fingerprint column showing truncated device ID with click-to-view - Add fingerprint details modal with device ID, user agent, and created date - Add regenerate button in modal to refresh individual account fingerprint - Add JS methods: regenerateFingerprint(), regenerateAllFingerprints(), openFingerprintModal() Co-Authored-By: Claude <noreply@anthropic.com>
|
This would be awesome. |
|
and btw this worked perfectly. |
|
@badrisnarayanan can we have this merged into package. Seems like this is really needed now. |
|
@orev7s thanks man, hope this fixes. can you resolve the conflicts, also Question: Why does one have to regenerate fingerprints in dashboard? Can it be randomised in the code itself? I'm not a fan of having regeneration and all that logic in the frontend stuff. Why does one need to config in dashboard for regenerating? |
because sometimes the new fingerprints might not work so having them in the frontend can help people just regenerate |
|
@orev7s how sucessful / reliable has this been to you? Percentage of improvement/ error reduction rate. Also, could you ask people to test your branch and see the wider consensus? If it's considered a big improvement by multiple people then we can safely merge this. Appreciate taking this up! |
|
Also, I will just wait for a while, the 429s seem to be a google issue, and not the issue with proxies. Google should be fixing it |
it has brought the rate limiting down to 0% on around 4 pro accounts and 30 free ones. and sure ill let people know |
|
i tried yours @orev7s , but 429 is still there. is there something i must do? what i did was "Regenerate all FP" from dashboard, but it seems dont work because the Fingerprint column dont show any value as you said 'hashed string trimmed'. |
Or maybe i try in the wrong time, because it really is a Google side problem. My Antigravity IDE is loading too much, so slow |
|
@orev7s i have tried this branch locally and even after reg fingerprint many times it is the same issue |
Also Error 401 From Google Itself , We have to Fix That Error , 401 error is spamming |



Summary
Implements device fingerprint isolation per account to reduce detection by Google's anti-fraud systems. Each account now has unique device identifiers making them appear as separate devices, which helps minimize rate limiting.
Closes #159
Changes
Backend: Device Fingerprint Module (
src/fingerprint/)generateFingerprint(): Creates random device fingerprintscollectCurrentFingerprint(): Captures real system fingerprintbuildFingerprintHeaders(): Converts fingerprint to HTTP headersAccount Storage Integration
accounts.jsonregenerateFingerprint(email)andgetFingerprint(email)methods to AccountManagerRequest Headers Applied Per-Account
User-AgentX-Goog-Api-ClientClient-MetadataX-Goog-QuotaUserX-Client-Device-IdWebUI API Endpoints
POST /api/accounts/:email/fingerprint/regenerate- Regenerate single accountGET /api/accounts/:email/fingerprint- Get fingerprint detailsPOST /api/accounts/fingerprints/regenerate-all- Regenerate all fingerprintsWebUI Frontend
Screenshots
The Accounts page now shows a Fingerprint column. Clicking it opens a modal with full details and a regenerate option.
Test plan
accounts.jsonto confirm fingerprints are persisted🤖 Generated with Claude Code