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.
- Caller’s agent
- Gateway checks DID, Rego policy and trust registry
- Your agent or MCP server
- Agent acts with the tokens it was configured with
- 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.
- Your agent
- Tool call
- Broker checks identity, grant, policy and approval
- Credential attached in memory
- 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 | Affinidi Agent Gateway | |
|---|---|---|
| Where it sits | Between your agent and the platforms it acts on. | In front of your agent or MCP server, deciding who may call it. |
| Holds platform credentials | Yes, 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 action | Built 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. |
| Policy | Grants 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 deny | Structural: no grant means no credential to call with. | Available; you set it in the Rego policy. |
| Agent identity | A 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 federation | Not today. | The core idea: gateway to gateway, with verifiable presentations. |
| Circuit breaker | Three auth failures or five API errors suspend the agent. | Not seen in the public documentation. |
| Audit | Append-only, with a signed receipt on every decision. | Correlation ids, OpenTelemetry, a tamper-evident event stream and signed presentations. |
| Deployment | Managed service in Australia; client parts are MIT open source. | Managed appliance or your own infrastructure; SDKs and registry are Apache-2.0. |
| Compliance | No third-party certification yet; SOC 2 not started. | ISO 27001:2022 certified. |
| Getting started | One command, self-serve, in minutes. | Portal sign-up, then configure a surface and each provider. |
| Pricing | Free 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