Catch bad addresses and spamtraps before you hit send.
Nine verification stages, a 20-signal spamtrap engine and six blocklists run on your own PC, up to 1,000,000 rows per run. Nothing is uploaded, and no message is ever sent.
Illustrative run with invented addresses. Real runs stream up to 1,000,000 rows on your PC.
1,000,000rows per run
20spamtrap signals
6blocklists
0messages sent
runs on your PC
The pipeline
Nine stages, in the order they run
The first three stop an address as soon as they match. The rest collect evidence, and the verdict ladder weighs it at the end. Pick a stage to see what it checks.
Select a stage to see what it checks and the reason codes it writes.
Stage 1 of 9 Stops the address on a match
Syntax & parsing
Is this a well-formed address at all?
Full address grammar and length limits; Name <addr> forms and quoted local parts
International domains converted to punycode; non-ASCII local parts marked unknown, never invalid
Plus-addressing detected (alice+news@)
Reserved and special-use names rejected: .test.local.invalid.onion.internal.corpexample.com
Mailing one spamtrap can get your sending domain blocklisted. Each signal that fires adds its points: 4 is medium and 8 is high, and both are quarantined out of your send list automatically. Hover a dot, or select a few to build a score.
The radar view needs JavaScript. Every signal and its points are listed alongside.
Sample score0Select signals to add them up
1 to 3 points · lowWarning only; the address stays in your send list.
4 to 7 · mediumQuarantined as honeypot.
8+ · highQuarantined. Any single signal worth 8 to 10 points gets here alone.
Intelligence lists
Known traps and operators
Known trap address10 pts
known_honeypot_address
The exact address is on the bundled list of 989 known traps (or your own list). These are traps that look like ordinary people.
Trap or blocklist domain10 pts
user_honeypot_domain
The domain is on the trap-domain list: 327 bundled trap networks, blocklist zones, sinks and reserved names, plus any you add.
Trap-operator domain10 pts
known_honeypot_domain
The domain belongs to an organisation that publicly runs spamtraps or honeytokens.
Anti-abuse organisation0 pts
reputation_service_domain
One of 432 blocklist operators, CERTs and mail-security vendors. Recorded as evidence only, because these domains also have ordinary staff mailboxes.
Naming
What operators call their traps
Trap local part8 pts
honeypot_local_pattern
The part before the @ is a trap name (spamtrap, honeypot, sinkhole, seed list…) from 250 names and 16 naming patterns, tuned so real surnames like Trapp or Honeycutt pass.
Trap word in the domain6 pts
honeypot_domain_pattern
The domain contains a trap word as a whole label or hyphenated part, e.g. spamtrap.example.net or mail-sinkhole.org.
Trap subdomain label5 pts
honeypot_subdomain_label
The leftmost label of a subdomain is a collector name (trap, sinkhole, canary). Only the first label counts, because that is where operators put it.
Role & recycled-trap target2 pts
role_trap_hybrid
A role mailbox that is also a classic recycled-trap target (abuse@, postmaster@). Deliberately weak: these exist on legitimate domains too.
Machine-made
Random tokens and bot patterns
UUID local part4 pts
uuid_local
The part before the @ is a bare UUID, a common per-trap identifier.
Hash local part3 pts
hex_hash_local
A long hexadecimal string: an MD5, SHA-1 or similar digest used as a per-recipient token.
Disposable + another signal3 pts
disposable_trap_combo
A disposable-mailbox domain that has already scored on another signal. A disposable domain alone never triggers this.
High-entropy local part2 pts
high_entropy_local
A long local part with high randomness and no vowel pair: the shape of a machine-generated address.
Keyboard walk or bot shape2 pts
bot_keyboard_local
Contains qwerty, asdfgh, 123456 or an implausible run of consonants, typical of bot-generated sign-ups.
DNS routing needs DNS
Where the domain’s mail actually goes
Trap or sinkhole mail server6 pts
honeypot_mx_pattern
An MX host names a trap operator or points at a sinkhole such as localhost, 127.0.0.1 or a bare dot (60 known hostname markers).
Contradictory null MX2 pts
malformed_null_mx
A null MX (“this domain accepts no mail”) published next to real mail servers: usually a collector, not a mail system.
No MX record1 pt
implicit_mx_anomaly
Mail falls back to the domain’s own address because no MX exists. Common on small real domains, so it is worth a single point.
Zone fingerprint needs DNS
How the whole domain is set up
Trap marker in TXT or SPF8 pts
txt_honeypot_marker
A DNS text record literally says spam trap, honeypot, sinkhole or do-not-send (55 phrases, matched as whole words).
Trap-operator nameservers6 pts
ns_sinkhole
The domain’s nameservers belong to a trap or blocklist operator, so the whole zone is under their control.
Mail-only domain3 pts
mail_only_domain
The domain receives mail but has no website at all. Fires only when both lookups gave a definite answer.
Receive-only SPF2 pts
spf_all_fail_with_mx
The domain accepts mail, yet its SPF record is exactly v=spf1 -all: it says it never sends anything, a posture typical of a collector.
Try it
Put an address through the pipeline
Type any address and watch it move stage by stage to a verdict, with the reason codes the app would write.
Runs in your browser with a sample of the rules; the app also checks DNS, blocklists and SMTP.
1Syntaxwaiting
2Duplicateswaiting
3Your ruleswaiting
4Heuristicswaiting
5DNS routingwaiting
6Authenticationwaiting
7Blocklistswaiting
8Spamtrapswaiting
9SMTP probewaiting
Enter an address or pick a sample to watch it move through the stages.
Seven verdicts
Exactly one status for every address
Every address lands in exactly one of passedriskyinvalidunknownfilteredduplicatehoneypot. Each comes with a score from 0 to 100, a reason code and a plain-English explanation.
When checks disagree, the stronger verdict wins
Invalid
cannot receive mail
wins
Honeypot
spamtrap, quarantined
wins
Unknown
a check could not finish
wins
Risky
deliverable, but flagged
wins
Passed
safe to send
wins
Duplicate and Filtered are settled first, before any network check runs.
Evidence lab
Switch findings on for one address and watch which verdict the ladder settles on.
An inconclusive check never becomes a verdict: a timeout, blocked port or greylist is always unknown, never invalid and never passed.
Local vs pay-per-credit
A flat subscription instead of per‑address credits
Cloud verifiers charge for every address you check: roughly $37 to $80 for 10,000 and $550 to $3,000 for a million, and your list has to be uploaded to their servers. Dpunk runs the checks on your own computer for one flat monthly price, with as many runs as you like: up to 100,000 addresses per run on Essential and up to 1,000,000 on Pro and Enterprise.
No per-address fees or credit packs for the checks that run on your PC
Your list never leaves your computer
Mailbox checks (SMTP, Pro and Enterprise) need a network that allows outbound port 25, or a mail server on your PC (Enterprise). Many home and office connections block that port. Then those checks show unknown and every other check still runs.
10k25k50k100k250k500k1M
Pay-per-credit cloud (typical)$150 to $650$0.0015 to $0.0065 per email (1 credit each)for that many checks, depending on the provider
Dpunk Email Verifier$19per month on Essential, any number of runs of up to 100,000. Pro and Enterprise take 1,000,000 in one run.
Cost by monthly volume
Addresses per month
Cloud (typical)
Cloud per email
Dpunk
10,000
$37 to $80
$0.0037 to $0.008
$19 a month
100,000
$150 to $650
$0.0015 to $0.0065
$19 a month
1,000,000
$550 to $3,000
$0.00055 to $0.003
$19 a month
Rounded from public list prices of popular cloud verifiers in 2026 for one-off credit packs. One credit checks one email. Prices vary by provider, plan and volume.
Everything else
Built for real lists, from import to export
Load messy files and export clean send lists. The evidence for every decision is one click away.
Import anything
Paste text or drop a .txt, .csv or .tsv file: 100,000 rows per run on Essential, 1,000,000 on Pro and Enterprise
Addresses are picked out of messy text, logs and Name <addr> lists
Delimiter, header row and email column detected automatically
Live run control
Results stream in live as each address settles
Pause, resume or stop and keep what has been checked so far
Adjustable DNS timeout and parallel checks (up to 24, or 128 on Enterprise)
Evidence for every row
Clickable status tiles filter the table
Filter by TLD, text, tag and minimum score
Click any row: MX records, SPF/DMARC, every trap signal with its points, blocklist hits, the SMTP conversation
Exports with scopes
CSV (Excel-ready, protected against formula injection) and TXT on every plan
JSON, plus ZIP organised by status, TLD, tag and original order with honeypots/ and clean/ folders, on Pro and Enterprise
Scopes: everything, clean send list, passed only, spamtraps only, or any single status
Editable lists
Edit trap domains, trap addresses, disposable, free and role lists on Pro and Enterprise
Your own blocked list and domain-zone policy on every plan
Restore the bundled lists with one click
Diagnostics
Live resolver health and speed, DNS cache state
Whether outbound port 25 is open from this PC
Which of the 6 blocklists answer from your network
Snapshots
Save a whole run and reload it later without re‑checking
Saving comes with Pro and Enterprise; snapshots stay on your computer
Command line
--check addresses and print JSON
--file list.csv for headless batch runs
--no-window, --port, --verbose
Included with Enterprise
Offline licensing
Keys are verified offline and bound to your Machine ID
Expiry with a 3-day grace period
Only starting a run needs a license: results, snapshots and exports stay available
Pricing
One flat subscription price
All nine verification stages in every plan. Pro adds SMTP probing and million-row runs; Enterprise adds automation and more speed. No per-address fees.
Essential
For one person cleaning their own lists on one PC.
Pay with crypto via Cryptomus: USDT, BTC, ETH, LTC, TRX and more. Your license key is issued automatically the moment the payment confirms.
Every plan runs all nine verification stages, the spamtrap engine and the six blocklists. Higher plans add SMTP probing, bigger runs, more export formats and automation. Prices in USD.
Every address runs through nine stages on your own PC: syntax & parsing, duplicates, your own rules, heuristics (disposable, role, free-provider, typo and placeholder detection), DNS mail routing, domain authentication (SPF, DMARC, MTA-STS, BIMI), six mail-server blocklists, a 20-signal spamtrap engine and, if you switch it on, SMTP mailbox probing.
Each address ends in exactly one of seven verdicts (passed, risky, invalid, unknown, filtered, duplicate or honeypot) with a score from 0 to 100, a reason code and a plain-English explanation. See every method.
Is my list uploaded anywhere?
No. The app verifies everything on your own computer. The only traffic it creates is the DNS lookups the checks need (and, if you enable probing, the SMTP conversations with mail servers). Your list, your results and your exports stay on your PC.
Does it send any email?
Never. The SMTP prober asks the mail server about a recipient and hangs up before a message could start; it has no code path for sending mail at all.
Why do some addresses come back “Unknown”?
Because a check could not finish: a DNS timeout, greylisting, a blocked port 25 or a temporary failure. The rule is simple: an inconclusive check never becomes a verdict. A false “invalid” would make you delete a real customer, so these addresses are marked unknown. Re-check them later; do not delete them.
What’s the difference between the plans?
Verification is the same in every plan: all nine stages, the 20-signal spamtrap engine, the 989 known trap addresses and the six blocklists. The plans differ in what you can do around it:
Essential: up to 100,000 rows per run; CSV and TXT exports; up to 24 parallel checks; 1 PC (Machine IDs); email support.
Pro: everything in Essential, plus up to 1,000,000 rows per run; SMTP mailbox probing (direct + your own relay); JSON and ZIP exports; save snapshots; editable intel lists; 3 PCs (Machine IDs); priority email support.
Enterprise: everything in Pro, plus command line automation (--check, --file); this computer's mail server (localhost mode); up to 128 parallel checks; 10 PCs (Machine IDs); priority support + onboarding call.
The plan is written into your license key, so the app turns on the right features offline. Compare the plans side by side.
How do I pay?
Pay with crypto via Cryptomus: USDT, BTC, ETH, LTC, TRX and more. Your license key is issued automatically the moment the payment confirms. No waiting for a person to read an email.
How does the free trial work?
3 days with the Pro features on one PC, no payment needed: SMTP probing, up to 1,000,000 rows per run, JSON and ZIP exports, snapshots and editable lists. Create an account, verify your email, then open the app and choose Start 3-day free trial on its License screen. It signs in and activates by itself. One trial per email address and one per PC.
Clean your next list before you send it.
Download the app, paste your Machine ID and start verifying in minutes. Nothing to install, nothing uploaded.