Secret Vault
The Secret Vault stores encrypted API credentials and injects them into outbound requests through the Proxy Gateway. Agents never see real API keys.How It Works
Instead of giving agents plaintext API keys:Encryption
Secrets use the same AES-256-GCM encryption as the Wallet Vault, with a key hierarchy that supports per-tenant isolation:- Rotating a tenant key re-wraps it — no re-encryption of all secrets needed
- Master key rotation is O(tenants), not O(secrets)
- Future: BYOK (Bring Your Own Key) for enterprise customers
Secret Lifecycle
- Create
- Rotate
- Delete
Credential Injection
When the proxy forwards a request, it:- Decrypts the credential (held in memory for microseconds)
- Injects it according to the route config (header, query param, or body)
- Forwards the request to the real API
- Zeroes the credential from memory
| Method | Use Case | Example |
|---|---|---|
header | Most APIs (Bearer token, API key header) | Authorization: Bearer sk-proj-... |
query | APIs that use query param auth | ?apiKey=sk-proj-... |
body | APIs that require credentials in the request body | { "api_key": "sk-proj-..." } |
Security Properties
- Secrets never leave the vault in API responses — list/get endpoints return metadata only
- Decrypted credentials exist in memory for microseconds — zeroed immediately after injection
- All access is logged — every decryption event creates an audit trail entry
- Tenant isolation — secrets are scoped to tenants; agents can only trigger decryption of their tenant’s secrets
Related
- Proxy Gateway — How the proxy routes and injects credentials
- Secrets API Reference — Full CRUD API
- Routes API Reference — Route configuration API
- Managing Secrets Guide — Step-by-step guide