AgentValet vs Affinidi

Affinidi and AgentValet use almost the same words: a verifiable identity for every agent, policy at the moment of action, per-agent attribution, audit by design. They come from opposite directions, and this page is plain about where each one wins and about the standards both now speak.

Two approaches, in plain words

What Affinidi Agent Gateway is

Affinidi Agent Gateway is a network proxy you put in front of an agent or an MCP server. It gives the agent a DID, evaluates an OPA Rego policy on every request (per tool, for MCP), can hold an OAuth token per caller and inject it downstream, and signs a verifiable presentation so a partner organisation’s gateway can check who called.

Behind it sits Radix, a trust registry that answers Trust Registry Query Protocol (TRQP) questions, and SDKs in eight languages. It’s built for the inbound problem: another organisation’s agent arrives at your door, and you need to know whether to open it.

What AgentValet is

AgentValet is built for the outbound problem: your own agent wants to post to Slack, refund in Stripe or open a pull request, and you need to know it can only do what you granted, that a person can be asked first, and that the key never lives where the agent could leak it.

The broker holds the credential, checks grant, policy and guardrails on the real call, pauses for approval when a rule says so, and records what was executed.

The question that separates them

Is the risk someone else’s agent coming in, or your own agent going out?

Affinidi governs the door into an agent: who may call it, and on whose behalf. AgentValet governs the door out of an agent: what it may do to your systems, and whether a person says yes first.

AgentValet doesn’t admit other organisations’ agents. Affinidi’s gateway isn’t built around a SaaS connector catalogue: each provider it injects tokens for is configured by hand.

Affinidi governs the door into an agent
  1. Caller’s agent
  2. Gateway checks DID, Rego policy and trust registry
  3. Your agent or MCP server
  4. Agent acts with the tokens it was configured with
  5. Real platform

Strong on who may call. It can also inject a per-caller OAuth token on the way out, for providers you configure by hand.

AgentValet governs the door out of an agent
  1. Your agent
  2. Tool call
  3. Broker checks identity, grant, policy and approval
  4. Credential attached in memory
  5. Slack, Stripe, GitHub or any MCP server

The credential lives only in the vault, and the owner is in the loop. Admitting other organisations’ agents isn’t something it does.

What each one actually does

One line per cell. Open the detail underneath for the longer version.

AgentValet compared with Affinidi Agent Gateway
AgentValetAffinidi Agent Gateway
Where it sitsBetween your agent and the platforms it acts on.In front of your agent or MCP server, deciding who may call it.
Holds platform credentialsYes, with a catalogue of ready-made connectors plus any MCP server.Yes: a per-caller OAuth vault and a secrets store, configured per provider.
Approval of a specific actionBuilt in: the call pauses at the broker and runs once you approve.Expressed as a Rego condition; we couldn’t find an approver inbox in the public docs.
PolicyGrants per agent and scope, org guardrails, and optional CEL conditions.OPA Rego, per tool for MCP: far more expressive, and you write and test it.
Default denyStructural: no grant means no credential to call with.Available; you set it in the Rego policy.
Agent identityA signing keypair per agent, owned by a person, with an optional did:web document.A did:webvh per agent configuration, with no key management to do.
Trust registry (TRQP)Answers TRQP queries live from the same check that gates every call.Radix, an open-source registry; Affinidi co-authors the protocol.
Cross-organisation federationNot today.The core idea: gateway to gateway, with verifiable presentations.
Circuit breakerThree auth failures or five API errors suspend the agent.Not seen in the public documentation.
AuditAppend-only, with a signed receipt on every decision.Correlation ids, OpenTelemetry, a tamper-evident event stream and signed presentations.
DeploymentManaged service in Australia; client parts are MIT open source.Managed appliance or your own infrastructure; SDKs and registry are Apache-2.0.
ComplianceNo third-party certification yet; SOC 2 not started.ISO 27001:2022 certified.
Getting startedOne command, self-serve, in minutes.Portal sign-up, then configure a surface and each provider.
PricingFree tier; paid plans from US$99 a month, self-serve.Free community plan with five projects; beyond that, talk to sales.
The detail behind 8 of these rows
Holds platform credentials

AgentValet: Each credential has its own encryption key. Those keys are locked by a tenant key held in hardware on paid plans, and derived per organisation on Free. Per-person tokens on a shared connection are available on Team and above.

Affinidi Agent Gateway: OAuth authorisation code flow; each provider’s endpoints, client id and scopes are set up by hand.

Approval of a specific action

AgentValet: Approve with a passkey or email link on every plan, with push notifications on Team and above. Denials are logged with the rule that caused them.

Affinidi Agent Gateway: For example, a condition that a second factor was granted in the last ten minutes.

Policy

AgentValet: Deny beats require-approval beats allow. No policy language is needed for the common case; a CEL condition per rule covers business hours, amount ceilings or a recent approval.

Agent identity

AgentValet: The did:web document is published per agent when the organisation opts in. Child agents get their own short-lived identities with a subset of the parent’s scopes, checked on every call.

Affinidi Agent Gateway: Verifiable across organisations, with multi-hop caller context carried in signed presentations.

Trust registry (TRQP)

AgentValet: A revoked agent answers no on the next query. Conformance is self-assessed against the v2.0 HTTPS binding, because ToIP publishes no conformance suite.

Cross-organisation federation

AgentValet: Any DID resolver can verify our agents’ identities and a partner can query the registry endpoint, but there’s no signed presentation handed between gateways yet.

Audit

AgentValet: Receipts are signed ES256 on every decision, allowed, held or refused, and verify against a published key set without access to our database.

Affinidi Agent Gateway: Their proof-of-control framing is strong for auditors.

Deployment

Affinidi Agent Gateway: The gateway binary itself is closed, and access is by allow-list.

Where Affinidi genuinely wins

If your problem is agents from other organisations arriving at yours, Affinidi is built for that and AgentValet isn’t. Verifiable presentations passed gateway to gateway, a DID for every agent with no key management, a registry they help standardise, and Rego when you want the full power of policy as code.

They can run on your own infrastructure, which matters to regulated buyers, and they hold an ISO 27001 certificate today. Their consent flow for MCP, inline in the client, is a nicer experience than ours, and we’re borrowing the idea.

Where AgentValet wins

If your problem is your own agents acting on your own systems, enforcement has to live where the action happens, and a person has to be reachable at that moment. AgentValet holds the credential, so the grant check, the approval and the audit row happen on the real call to Slack or Stripe. There’s a connector catalogue, so nobody configures OAuth endpoints by hand, a misbehaving agent trips a breaker, and the first governed call is minutes away without a sales call.

On identity standards the gap has narrowed. An AgentValet agent can publish a did:web document over the same key that signs its calls, and the check that gates every call also answers TRQP queries for anyone, including an Affinidi gateway, without an AgentValet SDK.

The two stack. Put Affinidi at the door if other organisations’ agents call yours, and put your keys behind a broker either way.

Which one fits

Choose Affinidi if

  • Agents from other organisations call yours and you need to verify them.
  • You want Rego and policy as code.
  • You must run on your own infrastructure, or need ISO 27001 today.

Choose AgentValet if

  • Your own agents act on Slack, Stripe, GitHub or MCP servers.
  • A person should approve a risky call before it runs.
  • You want to start today, self-serve.

Run both if

  • Partners’ agents call yours, and your own agents act on your SaaS platforms.

Checked against affinidi.com, docs.affinidi.com and Affinidi’s public GitHub repositories on 13 September 2026. If something has changed, report a correction and we’ll fix the page.

Revoke an agent and watch the answer change.

Register one agent on the free plan, grant it one scope, then revoke it and query the registry endpoint. The answer changes on the next query, and the refusal is on the record with a signed receipt.

npx @agentvalet/register