Protect your deadname by auditing breaches (Have I Been Pwned), removing yourself from data brokers, deleting old accounts, requesting name changes on social platforms, and monitoring for new leaks. Use privacy-focused email providers, delete archived content, update professional profiles (LinkedIn, GitHub), and separate old identity data from new online presence to prevent accidental re-association.
Understanding Your Threat Landscape
Before implementing any protective measures, you need to map your exposure. Your deadname likely exists across multiple data points:
- Email accounts: Primary and secondary addresses tied to your legal name
- Social media: Old accounts, tagged photos, posts mentioning your deadname
- Data brokers: People-search sites aggregating your information
- Breach databases: Have I Been Pwned often links accounts to email addresses
- Professional platforms: LinkedIn, GitHub, Stack Overflow accounts
A threat model for protecting your deadname should address adversaries ranging from malicious actors harvesting personal data to employers conducting background checks. The goal is minimizing the discoverability of information linking your old identity to your new one.
Digital Footprint Audit
Start by discovering where your deadname appears. Create a script to search known information across breach databases:
#!/usr/bin/env python3
import requests
import json
def check_breaches(email):
"""Check if email appears in Have I Been Pwned database"""
url = f"https://haveibeenpwned.com/api/v3/breachedaccount/{email}"
headers = {"User-Agent": "Privacy-Tools-Guide"}
response = requests.get(url, headers=headers)
if response.status_code == 200:
breaches = response.json()
print(f"Found {len(breaches)} breaches for {email}")
return breaches
elif response.status_code == 404:
print(f"No breaches found for {email}")
return []
else:
print(f"Error checking {email}: {response.status_code}")
return []
# Usage
emails = ["deadname@example.com", "newname@example.com"]
for email in emails:
check_breaches(email)
This script helps you identify which accounts require attention first. Prioritize accounts linked to breaches, as these are most likely to be searched by adversaries.
Account Segregation Strategy
Separating your identities requires a systematic approach. Use dedicated email addresses for different identity contexts:
# Example: Setting up email aliases in your password manager
# Store separate entries for each identity
#
# Identity: Old/Deadname
# - email: deadname.surname@provider.com
# - notes: "Use for legacy accounts only"
#
# Identity: New Name
# - email: new.name@provider.com
# - notes: "Use for professional and new accounts"
Your password manager should contain distinct vault sections or tags for “deadname-era” accounts versus new identity accounts. This separation prevents accidental cross-contamination when you’re rotating credentials.
Email Management for Name Transitions
Email is the foundation of digital identity. When transitioning:
- Create new email addresses using your chosen name
- Forward strategically - Set up forwarding from old addresses to your new primary, but review each message to identify which services need updating
- Use email aliases - Services like Proton Mail or SimpleLogin create aliases that hide your primary address while maintaining deliverability
Configure your email client to display both inbox views simultaneously:
# IMAP configuration for dual-account monitoring
# Example for monitoring multiple identities
ACCOUNTS = {
"new_identity": {
"imap_server": "imap.protonmail.com",
"email": "yourname@protonmail.com"
},
"deadname_archive": {
"imap_server": "imap.oldprovider.com",
"email": "old.name@oldprovider.com",
"auto_forward": "yourname@protonmail.com"
}
}
def check_accounts():
for name, config in ACCOUNTS.items():
# Check for critical messages needing response
# Mark accounts requiring migration
pass
Data Broker Removal
People-search sites represent a significant threat vector. These aggregators compile your information and make it publicly searchable. Use automation to request removals:
#!/bin/bash
# Basic data broker removal request template
BROKERS=("beenverified.com" "peoplefinder.com" "spokeo.com")
for broker in "${BROKERS[@]}"; do
echo "Processing removal request for $broker"
# Each broker has different opt-out procedures
# Some require email verification, others require form submission
curl -X POST "https://$broker/opt-out" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "email=yournewemail@provider.com" \
-d "full_name=Your New Name"
done
For removal, consider services like DeleteMe or Incogni, which automate broker removals on your behalf.
Social Media and Platform Privacy
Review each platform’s privacy settings systematically:
- Facebook/Instagram: Review tagged photos, limit past posts visibility
- Twitter/X: Enable “Let others find you by your email” off, review muted words
- LinkedIn: Update name, adjust profile visibility settings
- GitHub: Update profile name, review repository commit history
Use platform export tools to download your data before making changes—this creates a backup if you need to reference old information.
Practical Automation: Name Change Checklist
Create a personal script to track your migration progress:
#!/usr/bin/env python3
import json
from datetime import datetime
class IdentityMigration:
def __init__(self):
self.accounts = []
def add_account(self, service, old_email, new_email, status):
self.accounts.append({
"service": service,
"old_email": old_email,
"new_email": new_email,
"status": status, # pending, updated, deprecated
"updated": datetime.now().isoformat()
})
def generate_report(self):
pending = [a for a in self.accounts if a["status"] == "pending"]
updated = [a for a in self.accounts if a["status"] == "updated"]
print(f"Migration Status:")
print(f"- Completed: {len(updated)}")
print(f"- Pending: {len(pending)}")
return pending
# Track your migration
migration = IdentityMigration()
migration.add_account("GitHub", "deadname@email.com", "newname@email.com", "updated")
migration.add_account("Twitter", "deadname@email.com", "newname@email.com", "pending")
migration.add_account("Bank", "deadname@email.com", "newname@email.com", "pending")
pending = migration.generate_report()
Device and Browser Considerations
Your browsing habits can expose your deadname:
- Browser profiles: Consider separate browser profiles for each identity context
- Search history: Clear or exclude your old name from search predictions
- Autofill: Review and update autofill profiles in your browser
- Bookmarks: Audit bookmarks for sites using your deadname credentials
Implement browser isolation for high-risk browsing:
# Firefox profile management
# Create separate profile for new identity
firefox --no-remote -P "NewIdentity"
# Create separate profile for legacy accounts
firefox --no-remote -P "LegacyAccounts"
Related Articles
- Threat Model For Corporate Whistleblower Protecting Evidence
- Threat Model For Protest Medic Protecting Patient Encounter
- Threat Model For Sex Worker Protecting Real Identity And.
- Threat Model for Undocumented Immigrant Protecting.
- Threat Model Assessment For High Risk Journalist In Hostile
Built by theluckystrike — More at zovo.one