tarpitd answers SMTP connections and holds them open for as long as the peer can be persuaded to wait. It is meant to sit behind a packet filter rule that redirects known spam sources to it, in the manner of spamd(8) on OpenBSD, and it never accepts or delivers anything. Every reply is a syntactically valid SMTP response, so the sender has no reason to give up, but it is written out one byte at a time and commands are read back at the same rate. Every terminal answer is a temporary failure, so the message stays in the sender's queue and it comes back later to be tarpitted again. The intent is to occupy a slot in the sending botnet's delivery queue for hours rather than to reject mail quickly. Among its tactics are a delayed and optionally endless multiline greeting, detection of clients that transmit before the greeting has finished, padding of the EHLO response, a STARTTLS handshake that never completes, an AUTH honeypot that decodes and logs the credentials bots offer, and clamped socket buffers so the peer's window stays tiny. tarpitd carries no blocklist and applies no heuristics of its own. The addresses come from an external source, such as fail2ban or blacklistd(8), and the only thing that decides whose traffic arrives here is the firewall rule that redirects it.