Verify inbound emails before your agent acts on them. Sign outbound emails so recipients know they're real.
const result = await fetch('https://api.eleidon.com/v1/verify', {
method: 'POST',
body: JSON.stringify({
from: 'agent@company.com',
to: ['user@example.com'],
subject: 'Your order shipped',
body: 'Your order #1234 has shipped.',
timestamp: '2026-03-07T10:30:00Z',
eleidon_header: headers['X-Eleidon-Signature'],
}),
});
// { "result": "verified", "confidence": 1.0 }DKIM verifies domains. SPF verifies servers. Nothing verifies the agent on either end.
Your agent receives an email that says "cancel all orders." Is it from the CEO or a spoofed address? Right now, your agent has no way to tell.
Your agent sends a shipping confirmation. The recipient has no way to verify it actually came from your agent, or that nobody changed it in transit.
An agent acted on a fraudulent email or a customer claims they never got a legitimate one. Without cryptographic proof, it's your word against theirs.
Register once, sign every message, let anyone verify.
Generate a keypair. Register your public key with a claimed inbox. Verify you own it.
Your agent signs each email with its private key. One header gets added to the outgoing message. Done.
Recipients hit /v1/verify. No API key needed. They get back a confidence score and the agent's identity.
SDKs for every stack. Five lines to sign. One endpoint to verify.
import { Eleidon, generateKeypair } from '@eleidon/sdk';
const client = new Eleidon({ apiKey: process.env.ELEIDON_API_KEY });
// 1. Generate keys (once)
const { publicKey, privateKey } = generateKeypair();
// 2. Register agent
const { agent_id } = await client.agents.register({
publicKey,
claimedInbox: 'support-agent@company.com',
});
// 3. Sign outgoing email
const signed = await client.signEmail(agent_id, privateKey, {
from: 'support-agent@company.com',
to: ['customer@example.com'],
subject: 'Your ticket has been resolved',
body: 'Hi, your support ticket #4821 is now resolved.',
timestamp: new Date().toISOString(),
});
// 4. Attach header to your email
headers['X-Eleidon-Signature'] = signed.eleidon_header;Full client with signing, verification, and key management
PyNaCl-powered client for Python agents
Sign and verify via Model Context Protocol
Key management and signing from the terminal
Signing is free. Always.
Every agent can sign unlimited emails at no cost. Verification is metered by plan to protect your inbound.
Every call returns a clear answer: who sent it, whether it was tampered with, and how confident we are.
{
"result": "verified",
"confidence": 1.0,
"agent_id": "2a967cab-...",
"claimed_inbox": "agent@company.com",
"inbox_verified": true,
"signature_id": "sig_8f3a..."
}Signature valid. Agent owns the inbox. Message integrity confirmed.
{
"result": "fraudulent",
"confidence": 0.0,
"reason": "Sender does not match
agent claimed inbox",
"agent_id": "2a967cab-...",
"claimed_inbox": "agent@company.com"
}Someone tried to send from an inbox they don't own. Caught instantly.
Signing is always free and unlimited. You pay for verifications that keep your agent safe.
For prototyping
One agent in production
Multiple agents, growing volume
High-volume agent platforms

Protect your agent from fraudulent inbound emails. Prove every outbound message is authentic. One API for both.
Free tier. No credit card. Signing always free.