Hey HN, I built KeyID because I kept hitting the same wall: every AI agent that needs to sign up for a website needs a real email address, and there's no good free way to get one programmatically.
The problem: Agents need email for signups, verification codes, 2FA, and communication. You can use Gmail (manual setup, doesn't scale), disposable email APIs (get blocked), or paid services like AgentMail ($per mailbox).
What KeyID does: One API call → real email address. The agent generates an Ed25519 keypair, calls provision(), and gets an address on a shared domain pool. No API keys, no human in the loop.
From there agents can:
Send/receive email
Auto-extract verification codes from incoming messages
Follow verification links server-side
Track multi-step signup flows with browser state persistence
Get phone numbers for SMS verification
Generate TOTP 2FA codes
How it stays free: Shared rotating domain pool. We manage DKIM/SPF/DMARC, warm-up, and reputation. When a domain degrades, it rotates out. No per-mailbox cost.
MCP server (47 tools) — works with Claude, Cursor, Windsurf out of the box:
{"mcpServers":{"keyid":{"url":"https://keyid.ai/mcp"}}}
Also has JS (@keyid/sdk) and Python (keyid) SDKs for direct integration.
I’m willing to give you the benefit of the doubt on this. Because this sounds like a legitimately difficult problem to solve.
But what is the use case here? How often do agents need to get an email address? What’s the argument for letting agents create accounts? I can see letting an agent use my account, but why do they need their own?
And all of this has great legitimate uses, why would a domain degrade?
5 comments
[ 8.2 ms ] story [ 58.3 ms ] threadThe problem: Agents need email for signups, verification codes, 2FA, and communication. You can use Gmail (manual setup, doesn't scale), disposable email APIs (get blocked), or paid services like AgentMail ($per mailbox).
What KeyID does: One API call → real email address. The agent generates an Ed25519 keypair, calls provision(), and gets an address on a shared domain pool. No API keys, no human in the loop.
From there agents can:
Send/receive email Auto-extract verification codes from incoming messages Follow verification links server-side Track multi-step signup flows with browser state persistence Get phone numbers for SMS verification Generate TOTP 2FA codes How it stays free: Shared rotating domain pool. We manage DKIM/SPF/DMARC, warm-up, and reputation. When a domain degrades, it rotates out. No per-mailbox cost.
MCP server (47 tools) — works with Claude, Cursor, Windsurf out of the box:
{"mcpServers":{"keyid":{"url":"https://keyid.ai/mcp"}}} Also has JS (@keyid/sdk) and Python (keyid) SDKs for direct integration.
Free for 1,000 accounts. Open source: https://github.com/KeyID-AI/KeyID
Happy to answer questions about the architecture, the domain rotation model, or anything else.
But what is the use case here? How often do agents need to get an email address? What’s the argument for letting agents create accounts? I can see letting an agent use my account, but why do they need their own?
And all of this has great legitimate uses, why would a domain degrade?