Transferring a domain out of Namecheap is straightforward until you hit an ICANN 60-day hold, lose your DNS zone because BasicDNS drops dead mid-transfer, or get burned by an auto-renew race condition.
I recently migrated several production domains from Namecheap to an internal registrar. Here is my exact checklist to unlock the domain, pull the EPP auth code, dump the live DNS records, and verify the registry state from your terminal before you pay for the transfer.

The ICANN 60-Day Rule: Check Eligibility First
Before you touch any switches in the Namecheap dashboard, check if the domain is actually eligible to leave. ICANN enforces strict lockouts, and registrars have to reject transfers if any lock applies.
Per the ICANN Transfer Policy, you can’t transfer a domain if:
- It was registered within the last 60 days.
- It was transferred into Namecheap within the last 60 days.
- You updated the registrant name, org, or email in the last 60 days and opted into (or forgot to opt out of) the change-of-registrant lock.
When you edit contact details on Namecheap, there’s usually a small opt-out checkbox for that 60-day lock. If you missed it, you’re stuck waiting out the timer. You can check your registration date in the dashboard or run a quick WHOIS check in your terminal:
# Check domain creation date and registrar status
whois yourdomain.com | grep -E -i "(creation date|updated date|status)"If the domain is over 60 days old and you don’t see any weird registry locks beyond standard client prohibitions, you’re good to go.
Step 1: Export Your DNS Zone Records Before Unlocking
Here’s the biggest trap: if your domain uses Namecheap BasicDNS or PremiumDNS, those nameservers stop resolving your records the moment the registry processes the transfer. If you don’t back up your records beforehand, your web traffic and inbound mail will break instantly.
If you’re routing email, make sure you double-check your TXT and MX setups. You can cross-check your records with our guide on configuring SPF, DKIM, and DMARC in Namecheap.
I dump all live zone records using dig before initiating anything in the UI:
# Query and dump common records for your zone
for record in A AAAA CNAME MX TXT NS; do echo "=== Record Type: $record ===" dig +noall +answer yourdomain.com $record
doneIf you have subdomains for APIs or staging apps, query them individually or grab them straight from the Advanced DNS tab.
For apex setups, review configuring root domains in Namecheap DNS so you can replicate the exact A/ALIAS records at your new registrar or DNS host (like Cloudflare) ahead of time.
Step 2: Lower DNS TTLs to Prevent Prolonged Propagation
Namecheap defaults DNS record TTLs (Time to Live) to 30 minutes or “Automatic”. If you plan on moving to new nameservers during or right after the transfer, drop these TTLs down to 5 minutes (300 seconds) at least 24 hours in advance.
This forces resolvers to flush stale cached entries fast once the new nameservers take over, keeping downtime to a minimum.
- In Namecheap, jump into your Domain List.
- Click Manage next to the domain.
- Head over to the Advanced DNS tab.
- Set the TTL on your core A, CNAME, and MX records to 5 min (or 1 min).
- Hit Save All Changes.
Let that sit for at least 30 to 60 minutes so older caches expire out across public recursive resolvers.
Step 3: Turn Off Registrar Lock (Domain Lock)
Namecheap slaps a clientTransferProhibited status code on domains by default to block rogue transfers. You need to unlock it manually.
- Go to Domain List in your dashboard.
- Click Manage next to your target domain.
- Click the Sharing & Transfer tab.
- Scroll to the Transfer Out section.
- Find Domain Lock. If it says LOCKED, click Unlock.
The status flips to UNLOCKED immediately. Under the hood, this strips the clientTransferProhibited flag from the registry.
Step 4: Check Domain Privacy and Admin Contact Email
Historically, you had to turn off WhoisGuard / Namecheap Privacy so the receiving registrar could scrape the admin email and send an approval link. Most modern transfers don’t require this anymore thanks to GDPR proxy masking, but a few destination registrars still choke if the admin email is completely hidden.
Verify your contact email:
- Go to the Domain tab in your domain settings.
- Under Domain Contacts, confirm you have access to the registrant and administrative email address.
- If your destination registrar explicitly requires Whois privacy to be disabled, toggle Namecheap Privacy to OFF.
If you have active web apps running—like when you point a Namecheap domain to Vercel—keeping your nameservers stable during this stage ensures your live traffic won’t care about privacy toggle changes.
Step 5: Generate and Export the Auth / EPP Code
The Auth Code (EPP code or transfer secret) is the one-time token that proves you own the domain and authorizes the transfer request.
- Head back to the Sharing & Transfer tab.
- Under Transfer Out, find the Auth Code option.
- Click the Auth Code button.
- Namecheap will make you fill out a short survey asking why you’re leaving. Pick a reason, enter your account password, and click Send Code.
Namecheap generates the code and emails it to your primary registrant address within a minute or two. Some UI flows will also display it directly on screen.
The code will look something like this:
# Example EPP Authorization Code format
EPP-AuthCode: 8k#mP9$xL2!vR9qTToss this directly into a password manager. You’ll need to paste it into your destination registrar’s transfer form.
Step 6: Verify Transfer Status via Terminal
Before you submit and pay for the transfer at your new registrar, verify that the registry actually reflects the unlocked status. If the public registry still reports the domain as locked, your new registrar’s initial API call will fail.
Check the domain status in your terminal:
# Verify the domain status code
whois yourdomain.com | grep -i "Domain Status"Look for this output:
Domain Status: ok https://icann.org/epp#okIf it still shows clientTransferProhibited, wait a couple of minutes and test again. Don’t trigger the transfer on the receiving end until the status shows ok.
What Broke in Production: Auto-Renew and Pending Transfers
Here’s a real issue I hit: a production domain was scheduled to auto-renew within 4 days of starting a transfer. Because registrar transfers can take anywhere from a few minutes to 5 days, Namecheap’s billing cron fired and charged an automated renewal right in the middle of the pending transfer state.
This triggered a billing race condition that locked the domain for fraud review. To save yourself the headache:
- Go to the Domain tab in Namecheap.
- Switch Auto-Renew to OFF before unlocking.
- Start your transfer at least 14 days before the domain expires.
According to the Namecheap Knowledge Base documentation, once the new registrar submits the request with the EPP code, Namecheap sends an email with the subject “Domain Transfer Request for [yourdomain.com]”. If you ignore it, Namecheap waits out the full 5-day cooling period before releasing the domain.
To skip the wait, open that email immediately, click the confirmation link, and hit Approve. Namecheap will release the domain registry handle within 15 to 30 minutes instead of 5 days.
Frequently Asked Questions
How long does the Namecheap domain transfer take?
If you click the approval link in Namecheap’s confirmation email, it usually wraps up in 15 to 60 minutes. If you do nothing, Namecheap automatically releases the domain 5 calendar days after receiving the valid request.
Will my website go down while transferring out of Namecheap?
Not if you use third-party nameservers like Cloudflare or Route 53. But if you rely on Namecheap BasicDNS, those servers stop answering for your domain the moment the transfer completes. Replicate your records at your new provider beforehand to avoid any downtime.
Why didn’t I receive my Namecheap Auth Code email?
Check the administrative email in your domain contacts—it might be different from your main Namecheap account login email. Also check your spam folder for messages from support@namecheap.com. If nothing shows up after 15 minutes, re-lock the domain, unlock it again, and request a fresh code.
Can I cancel a transfer after submitting the Auth Code?
Yes. If you need to stop it before it finishes, head to Sharing & Transfer in your Namecheap dashboard and click Cancel Transfer, or click the reject link inside the confirmation email.
Next Steps
Once the domain lands at your new registrar, verify your DNS records and SSL certificates immediately. If you’re hooking this domain up to a new VPS stack, check out our walkthrough on deploying web stacks with customized DNS and CDN setups for production routing tips.

