Per-client keys, HMAC-SHA256 over body and timestamp — replay-protected by construction
Every API call carries an HMAC-SHA256 signature over its body and a timestamp, so a replayed or tampered request is rejected before it reaches business logic. Creating or changing a key is itself an approval-gated action, and the key that authenticates a call never signs a transaction — a signature needs an MPC share.
Share the Trust, Guard the Keys
A static credential that grants whatever its holder asks turns one leaked environment variable into an unbounded incident, and a log entry attributed to the API names nobody. Vaultody authenticates every call cryptographically, keeps key creation on the approval path, and leaves signing authority where a stolen credential cannot reach it.
Keys are per client and carry a role, and the policy engine applies to whatever they raise: below your threshold flows proceed, above it the request waits for people exactly as a dashboard request would. IP whitelisting is offered alongside as a platform access control.
Plus the plan line it sits behind.
Get answers to commonly asked questions.
No. It is bounded by its role and by the policy engine; above your threshold the request waits for people, whichever surface raised it.
Not sign. A signature needs an MPC share held by a co-signer, and the policy engine still applies to anything the key raises.
Key creation and changes are approval-gated, so they take the approval path rather than one person's click, and each one is recorded.

Credentials that prove themselves, on a path that records itself.