{"id":50543531,"url":"https://github.com/namankumar/privacy-score","last_synced_at":"2026-06-03T22:01:12.894Z","repository":{"id":353416650,"uuid":"1219331313","full_name":"namankumar/privacy-score","owner":"namankumar","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-23T19:15:14.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T21:18:43.118Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/namankumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-23T19:11:09.000Z","updated_at":"2026-04-23T19:15:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/namankumar/privacy-score","commit_stats":null,"previous_names":["namankumar/privacy-score"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/namankumar/privacy-score","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namankumar%2Fprivacy-score","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namankumar%2Fprivacy-score/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namankumar%2Fprivacy-score/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namankumar%2Fprivacy-score/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/namankumar","download_url":"https://codeload.github.com/namankumar/privacy-score/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namankumar%2Fprivacy-score/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33881107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-03T22:01:11.786Z","updated_at":"2026-06-03T22:01:12.889Z","avatar_url":"https://github.com/namankumar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# privacy-score\n\nPrivacy Score tells you what your wallet reveals — before someone else figures it out. Paste an Ethereum mainnet address, get a privacy score from 0 to 100, a breakdown by category, and a plain-English explanation of what's exposed and how to fix it.\n\n## Why this exists\n\nEvery blockchain analytics tool is built for the investigator, the entity trying to learn about a wallet. The wallet owner has no equivalent tool. No way to know what an investigator can see, what they'd conclude, or how to reduce exposure. We built for defense instead of surveillance.\n\n## How it works\n\nSix scoring categories, each computed independently and weighted into a composite score:\n\n| Category | What it checks |\n|---|---|\n| Address hygiene | Reuse patterns, round-amount sends, change address behavior |\n| Entity exposure | Interactions with labeled exchanges, custodians, known entities |\n| Identity leaks | ENS names, NFT mints, on-chain governance votes, doxxing events |\n| Timing patterns | Predictable transaction timing, timezone inference |\n| Cross-chain linkability | Bridge usage that links identities across chains |\n| Protocol surface | DeFi interactions, approval patterns, mixer/privacy tool usage |\n\nAfter scoring, Claude generates a 2-3 paragraph plain-English explanation specific to that wallet: an analysis of what that address's actual behavior reveals.\n\n## Stack\n\n- **Next.js 16:** App Router, API routes\n- **viem:** Ethereum data fetching and ENS resolution\n- **Anthropic SDK:** Claude Haiku 4.5 (`claude-haiku-4-5-20251001`) for AI explanation\n- **Vercel OG:** shareable score cards\n- **Tailwind CSS v4**\n\n## Run locally\n\n```bash\nnpm install\n```\n\nCreate `.env.local`:\n\n```bash\nANTHROPIC_API_KEY=your_key\nETHERSCAN_API_KEY=your_key    # free at etherscan.io\n```\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000).\n\n## Deploy\n\nOne-click deploy to Vercel. Set `ANTHROPIC_API_KEY` and `ETHERSCAN_API_KEY` in environment variables.\n\n## Rate limiting\n\n20 scans per IP per 24 hours (in-memory). Swap for Redis in production.\n\n## Tests\n\n```bash\nnpm test\n```\n\n## What's next\n\nRight now scoring is deterministic: fixed data fetches, fixed weights, Claude only writes the explanation. The next version makes Claude the investigator. It gets the address and a set of tools, decides what to look up based on what it finds, and returns a score with reasoning. Adaptive depth instead of a fixed pipeline.\n\n**Chain expansion.** The scoring categories are chain-agnostic; the data layer isn't. EVM chains (Base, Arbitrum, Polygon) are a low-lift extension — swap the Alchemy endpoint and update the known-entity address list. Solana is a larger effort: the data layer (Helius/Solana RPC, SPL token accounts), scoring logic (program ID lookups instead of calldata analysis), and entity database all need Solana-specific implementations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamankumar%2Fprivacy-score","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamankumar%2Fprivacy-score","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamankumar%2Fprivacy-score/lists"}