Honeypot decoys

Opt-in traps for form-filling bots and DOM-driven AI agents. Off by default.

Enable

Turn on Honeypot decoys in site settings, or PATCH /api/sites/:key with {"honeypot":true}. The challenge response carries honeypot: true; the client discovers this during Nolgard.ready. For immediate installation add data-honeypot="true" to the client script.

Decoy inputs

One off-screen text input is appended to each form containing an email or password input, including dynamically added forms. It has a random non-semantic name, no label, aria-hidden="true", tabindex="-1" and autocomplete="off". It is not display:none.

Scoring and autofill

honeypot is scored at weight 70, category automation. It fires only for a filled decoy with untrusted/no input provenance, or trusted input without a prior trusted focus on a real field. Trusted autofill following that focus path is neutral. Normal email/password autofill never fills a semantic decoy field.

The score can be suspicious or bot depending on site thresholds (the default bot threshold is 70). In this release a honeypot-only automatic decision never blocks: bot classification is retained, but enforcement is at most challenge. Other independent signals and explicit customer rules can still block. Start in observe mode.

Signals and privacy

behavior.honeypot = { filled, focused, input, trusted, priorFocus } // booleans

No decoy value, raw email, password, IP or user agent is added to storage. Missing or malformed optional honeypot evidence stays neutral. This is not proof against agents that avoid off-screen inputs.