Asqav and A2A: Referencing A Signed Compliance Receipt From An Agent2Agent Agent Card

Asqav signs a third-party Compliance Receipt whose subject is the agent identity. An Agent2Agent (A2A) Agent Card references that receipt by URL, content hash, and verifier identity, so an A2A gateway can resolve the verdict without a shared registry.

This page maps the Agent Card reference shape onto Asqav's already-live verify surface. It documents how an A2A peer points at an existing Asqav receipt. It does not define a new Asqav wire field.

What this page does: shows how an A2A Agent Card references an existing Asqav receipt.

What it does not do: it adds no new Asqav wire field and registers no A2A extension descriptor.

The link: A2A says who the agent is. Asqav says what that agent did and under which controls.

What A2A is

Agent2Agent (A2A) is an open agent-interoperability protocol stewarded as a Linux Foundation project. An A2A agent publishes an Agent Card, a JSON descriptor of who the agent is, what skills it offers, and where to reach it.

The Agent Card carries an identity layer (the agent owner and its decentralized identifier) and an extension mechanism that lets a card reference external attestations about the agent. An Agent Card can be signed with a JWS so a consumer can confirm the card was issued by the claimed owner.

Asqav interoperates with A2A at the attestation layer: an Agent Card can point at an Asqav-signed receipt as external evidence about what the identified agent did.

Two layers: identity and enforcement

A2A answers a question about identity: who owns this agent, and at what address does it live. The Agent Card binds an agent to an owner and, through a decentralized identifier such as did:web or an A2A-IDF identity, to a verifiable controller. That identity layer stops at the territory boundary. It establishes who the actor is. It does not, on its own, record what the actor did or whether a control was applied to the action.

Asqav sits on the enforcement layer above identity. An Asqav Compliance Receipt is a signed verdict about a specific action: the action type, the policy decision, and the controls evaluated, signed server-side by Asqav as a neutral third party.

The receipt's subject is the agent identity, so the two layers compose cleanly. A2A says who the agent is. Asqav says what that agent did and under which controls, with a signature a verifier can check without trusting either the agent or Asqav's word for it.

Mapping the Agent Card reference onto Asqav's live surface

A2A's substrate-attestation reference has three parts. Each maps onto a field Asqav already signs and serves today:

A2A reference partAsqav fieldWhat it does
urlthe live verify endpoint at https://api.asqav.com/api/v1/verify/{signature_id}Resolves the verdict. The endpoint is authentication-free, so any A2A gateway, peer, or auditor fetches it with no account or shared registry.
content_hashthe receipt payload_digest (sha256:<64 hex>)Pins the signed bytes. It lets the consumer confirm the bytes the verify URL returns are exactly what Asqav signed, with no substitution in transit.
verifierthe receipt issuer_id, expressed as the agent's A2A identityNames the subject of the verdict. The card expresses issuer_id as the same DID it already uses for the agent (did:web, did:aip, or an A2A-IDF identity), so the identity the card claims is the identity the signed verdict is about.

Asqav exposes two more resolvable surfaces an A2A consumer can use alongside the verify endpoint, both published in https://api.asqav.com/.well-known/governance.json today:

An A2A gateway resolves any of these without authentication to confirm that the referenced receipt belongs to the agent the Agent Card describes.

A worked reference

An A2A Agent Card extension that references an Asqav receipt carries the three reference parts pointing at the live Asqav surface:

json
{
  "url": "https://api.asqav.com/api/v1/verify/sig_9f3a2b...",
  "content_hash": "sha256:3b1f...<64 hex>",
  "verifier": "did:web:agents.example.com:billing-bot"
}

A consumer resolves the url, confirms the returned receipt hashes to content_hash, reads the signed verdict, and confirms the receipt's issuer_id resolves to the same verifier identity the Agent Card asserts for the agent. Every step is independently checkable against Asqav's live endpoints. None of it requires the consumer to trust Asqav or the agent on its word.

What Asqav does NOT claim here

This page maps an existing surface. It does not add a new one. Asqav does not register an A2A extension descriptor, and it does not introduce a new wire field named after the Agent Card reference shape. The receipt an Agent Card references is the same Compliance Receipt already defined in Asqav's IETF draft and already signed in production. This page only shows how an A2A Agent Card points at that receipt using A2A's own reference shape and Asqav's already-live verify/{signature_id}, public_attestation/{agent_id}, and agent_card/{agent_id}/card endpoints.

Asqav signs server-side as a neutral third party, using ML-DSA-65 (NIST FIPS 204) so the signature is post-quantum and any verifier can check it independently. The receipt is third-party-verifiable: a consumer confirms the verdict by resolving the verify URL and checking the signature, not by trusting the agent or Asqav.

Related documentation