Docs Reference
Security
LiveUpdated
The record is built to survive scrutiny, so the system that produces it has to be plain about what it holds.
What is stored
- Policies, mandates, decisions, approvals, consents, attestations and records, encrypted at rest, with the chain kept per organization.
- Rail and PSP credentials your administrator scoped, and an x402 signer’s bearer secret, encrypted in a separate secrets store, never in the record.
- The identity evidence an agent submits (a public key and its proof, the kept claims of a workload identity token, an enclave attestation) with its hash; for a legal entity, the verification result, never a document.
- Token references and identifiers for cards and transactions; the IP of the agent’s request and of the approver’s session, for the dispute packet.
What is never stored
- Card numbers, expiry dates or security codes. Every interface rejects a 13-to-19-digit string that passes the Luhn check; the storage layer has no field for them. This keeps merchants and customers on the lightest PCI questionnaire (SAQ A).
- The funds. Enruta has no balance, no ledger of money, no payout capability.
- The agent’s full transcript. Only the digest the agent chose to include in
trace, and the intent text it chose to send. - Identity documents. A legal-entity anchor reads a verification that a rail or an organization already has.
- Private keys and collateral. An x402 authorization is signed by the customer’s own signer; collateral is read on chain.
People and keys
- Five roles, one per person on each account: Owner, Admin, Developer, Operator and Viewer. The Owner and Admins approve payments with passkeys (a policy may also name any member) and sign the weekly report the same way; an owner can delegate approval within a scope. An organization with a verified domain can sign in through its own OIDC provider, at no charge.
- API keys carry one role: agent, developer, auditor, seller, platform or catalog. A platform key acts for a connected account only when a request names it, and never across accounts; a catalog key reaches the Catalog API only.
- Organization signing keys are rotated on a schedule; every rotation is a snapshot in the key store so old records still verify. Enruta’s own seal, checkpoint and mandate keys are encrypted at rest under a master key.
- Daily-root checkpoints are signed, published and anchored with OpenTimestamps; anyone can keep a copy.
- A model judgement runs only when a policy enables it. The model sees the policy’s instruction, the slots, the payee and the line items, never credentials, keys or the user’s e-mail, and the record keeps the hashes of what it saw and said.
- Webhooks are signed with HMAC-SHA256; OAuth tokens are stored as hashes, and a replayed authorization code revokes the whole grant. An owner can pause any agent from the console; the pause is a sealed record and every later request is denied.
Retention and export
Every record is kept at least 540 days, the longest card-network dispute window, and is exportable at any time, with the verifier. Records export on expiry. Leaving Enruta does not weaken a single record you already hold.
Reporting a vulnerability
Write to security@enruta.ai. Coordinated disclosure; acknowledgement within two business days.