Media

Money

Dispatch

Company

WAVE Email

Inbound capture, sender-authenticity verification, and drafted replies. Inference writes them. A person sends them. There is no path where those two swap.

inbound-capturesender-authtriagedraft-and-approve
Sign up →Read the docs →
  inbound email
    │
    ▼
  verify (SPF/DKIM/DMARC) → normalize → dedupe → store
    │
    ▼
  classify + extract action items (governed inference)
    │
    ▼
  route by confidence ─▶ worklist + notify
    │
    ▼
  draft a threaded reply ─▶ one-click approve ─▶ send

Two verifiers claim to be the verifier. We quarantine.

Inbound mail is the largest untrusted-input surface WAVE has, and an Authentication-Results header is trivially forgeable: anyone can append a line that says dmarc=pass. The gate trusts exactly one authserv-id and reads exactly one entry. Two entries claiming that id is not a tie to break, it is an attack shape, so the verdict fails closed.

  0 trusted entries ─▶ quarantine   no-trusted-authserv
  2 trusted entries ─▶ quarantine   ambiguous, fail closed
  1 trusted entry   ─▶ read spf · dkim · dmarc, then route

A header that is present but unparseable counts as missing, never as a pass. A spoofed sender does not reach a human worklist, so it never reaches a drafted reply.

healthGET /health → 200 {"ok":true, …}
agents/llms.txt · /docs.md · /.well-known/wave.json
platformapi.wave.online · wave.online · docs.wave.online
Get a WAVE key →

Email is one call shape on WAVE, media infrastructure for the agentic internet. Auth, entitlement and metering settle at api.wave.online on the key you already hold, so an agent reads this page and calls the platform at the same address a person does.