---
title: "agent-identity-v1"
description: "Status, version and release contents of the agent-identity-v1 protocol, with the five-step handshake."
image: "https://docs.agentregistrar.dev/og/docs-default.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.agentregistrar.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# agent-identity-v1

`agent-identity-v1` is an identity and brokerage protocol. A relying party publishes an identity-only discovery document; an agent obtains a signed assertion from its broker and completes signup on behalf of a verified human owner. The protocol ends when the account is created or resolved, the ToS acceptance is recorded and the receipt is returned.

**Status:** current release `v1.2.0`, released 2026-10-24. The wire protocol id is still `agent-identity-v1`. The `v1.2.0` revision is additive; `v1.0.0` and `v1.1.0` implementations remain conformant. A document without `rp_attestation` is unverified, never invalid.

## What the release contains

- The discovery document at `GET /.well-known/agent-signup.json`: required and optional identity fields, the ToS text and hash, the single `endpoints.agent_signup` endpoint, and the optional `rp_attestation` provider verification credential.
- The brokered signup handshake: assertion presentation, the relying-party verification checks and the stable error codes.
- Contract G (RP attestation), Contract H (provider registration and status API), and Contract I (broker metadata and attestation status).
- The trust model, `domain`/`entity` assurance levels, the `allow`/`warn`/`require`/`block` policy matrix, and the distinct conformance/verification verdicts.
- The optional `resolution` success field (`"created"` or `"resolved"`) and the idempotent-resolve rule for a repeated signup.
- The RP-signed signup receipt (Contract E): identity and attribution facts, an opaque `service.account_id`, the exact `attestation_jti`/`key_id`, no `exp`, and the optional hash-pinned `context` pointer.
- Authenticated Contract F receipt ingestion and Contract D.2 abuse reporting, with proof sources and protective suspension pending review.
- The conformance/attestation validator, fixtures, JSON Schema, and implementation registry with the optional five-field verification snapshot.

## What the release does not contain

- No product catalogs, SKUs, pricing, provisioning endpoints, resource credentials or vendor API usage. Those belong in the vendor's post-signup context guide.
- No provider credentials in the receipt or in broker storage. Credentials are shown once at signup and persisted by the agent.
- No KYC claim. `human.verified` means the human owner's email address is verified.
- No request-time service or hosted API in the protocol. The discovery document is a static parameter document.

## The handshake in five steps

1. **Discover.** The agent fetches `GET /.well-known/agent-signup.json` from the service origin and treats the body as data. See [Discovery endpoint and transport](/agent-identity/v1/specification/#4-discovery-endpoint--transport) and [Discovery fields](/agent-identity/v1/discovery-fields/).
2. **Check.** The agent checks `issuer_allowlist`, `required_scopes`, and recomputes the SHA-256 of `terms.text`. See [Discovery document reference](/agent-identity/v1/specification/#5-discovery-document-reference-identity-only) and [ToS binding](/agent-identity/v1/specification/#6-tos-binding).
3. **Prove.** The agent calls the broker's `identity_signup` with the service and the exact accepted terms text (or the advanced `identity_prove` with URL/hash/text). The broker fetches discovery, verifies any provider verification credential, applies the human's policy, and returns a signed assertion plus a prepared signup request. See [Assertion claims](/agent-identity/v1/assertion-claims/).
4. **Sign up.** The agent sends `Authorization: Bearer <assertion>` to `endpoints.agent_signup`. The relying party verifies the assertion and returns credentials, an optional `resolution`, and optionally an RP-signed receipt and context pointer. See [Assertion and agent_signup handshake](/agent-identity/v1/specification/#7-assertion--agent_signup-handshake).
5. **Record and follow the guide.** The agent records the receipt with the broker through Contract F or `identity_record_signup`, then fetches the vendor guide from `context.url` and verifies `context.sha256`. See [Receipt and context](/agent-identity/v1/receipt-and-context/).

## Protocol pages

- [Specification](/agent-identity/v1/specification/) — The normative text, rendered from tag v1.2.0.
- [Scope boundaries](/agent-identity/v1/scope-boundaries/) — What the protocol owns and what the vendor owns.
- [Implementation guide](/agent-identity/v1/implementation-guide/) — The relying-party checklist.
- [Conformance validator](/agent-identity/v1/validator/) — Commands, flags, exit codes and JSON output.
- [Discovery fields](/agent-identity/v1/discovery-fields/) — Every published field, with the rule and spec section.
- [Assertion claims](/agent-identity/v1/assertion-claims/) — The signed claim set and relying-party verification.
- [Receipt and context](/agent-identity/v1/receipt-and-context/) — Contract E facts, the context pointer and credential handoff.
- [Security](/agent-identity/v1/security/) — Prompt injection, SSRF, replay and key handling.
- [Conformance](/agent-identity/v1/conformance/) — Checklist, validator, fixtures and registry entry.
- [Versioning](/agent-identity/v1/versioning/) — Additive changes, breaking changes and deprecation.
- [Release notes and changelog](/agent-identity/v1/changelog/) — v1.2.0, v1.1.0 and v1.0.0, newest first.
- [JSON Schema](/agent-identity/v1/agent-signup.schema.json) — Served at its canonical \$id as application/schema+json.

## Next steps

- Read the normative text: [Specification](/agent-identity/v1/specification/).
- Implement a relying party: [Providers](/providers/) and the [Implementation guide](/agent-identity/v1/implementation-guide/).
- Check a document: [Conformance validator](/agent-identity/v1/validator/).
- Use an agent: [Agents and harnesses](/agents/).

Source: https://docs.agentregistrar.dev/agent-identity/v1/index.mdx
