How it works
A service wants to verify that an agent controls a domain. It generates a random code and asks the agent to host it. The agent makes the code available at https://agent.domain/m/{code}. The service hits that URL — if it responds, the agent is verified.
Similar to DNS TXT verification, but instant and over HTTP.
Flow
sequenceDiagram
participant Service
participant Agent
Service->>Agent: Here's a verification code: abc123...
Agent->>Agent: atomic magic-link host abc123... --expires 10m
Service->>Agent: GET /m/abc123...
Agent-->>Service: {"status": "verified"}
Service->>Service: Agent controls this domain ✓
CLI
# Host a code for 10 minutes
atomic magic-link host abc123def456... --expires 10m
# List active codes
atomic magic-link listSecurity
- Codes are SHA-256 hashed before storage
- Per-IP rate limiting (10 requests/minute) on the verification endpoint
- Codes shorter than 20 characters are rejected before touching the database
- Expired codes are cleaned up automatically