Overview
Vestauth gives agents cryptographic identities built on Ed25519 public/private keypairs. Each agent has a unique identifier (UID) and a keypair that proves their identity without shared secrets.Agent UID
Every agent has a unique identifier following the format:Ed25519 Keypairs
Vestauth uses Ed25519 for cryptographic signatures because it provides:- Strong modern cryptographic security
- Fast signing and verification
- Small key sizes
- Wide ecosystem support
Key Structure
Keys are stored in JSON Web Key (JWK) format with the following fields: Public Key:The
kid (key ID) is a thumbprint calculated from the public key and is used to identify which key signed a request.Key Fields
Storage
Agent identities are stored in a.env file in your agent’s directory:
Creating an Identity
Generate a new agent identity:- Generates a new Ed25519 keypair
- Creates a unique agent UID
- Registers the agent with the Vestauth server
- Saves credentials to
.env
Implementation
Here’s how Vestauth generates keypairs:src/lib/helpers/keypair.js
Key Rotation
Rotate your agent’s keys while keeping the same UID:Key rotation is important for security hygiene. Rotate keys regularly or immediately if you suspect compromise.
Identity Verification
Tools verify agent identities by:- Extracting the agent UID from the
Signature-Agentheader - Fetching the public key from the agent’s
.well-knownendpoint - Verifying the signature matches the request
src/lib/helpers/identity.js
Public Key Discovery
Each agent’s public key is discoverable at:Public key discovery enables tools to verify agents without manual key exchange or configuration.
Why Not API Keys?
API keys are shared secrets that create several problems:
Vestauth replaces shared secrets with public/private key cryptography, making authentication more secure and easier to manage.