Protocol
Services need reliable information about the agents that access them and the organisations responsible for those agents. TSAI gives agents a standard way to present that information in a credential issued by a trust authority. The service provider verifies the credential and decides how to respond. This page explains the actor model, credential lifecycle, presentation and verification flow, and integration with existing systems.
Actor model
TSAI defines five actors and assigns a separate responsibility to each. This separation allows evidence to move between organisations without giving the trust authority control over service provider decisions.
Actors and relationships
An agent is the software entity that acts, while its operator is the legal entity that runs it and is accountable for its behaviour. A service provider receives the agent's requests and decides whether and how to serve them. Without TSAI, the service provider has no common way to verify the operator, the agent's track record, or other evidence needed by its policy. A trust authority addresses this problem by evaluating the operator and agent and issuing a credential that the service provider can verify.
The relationships use different paths. The operator and trust authority establish a management relationship before issuance, while the service provider configures accepted issuers before requests arrive. The request path contains the agent presentation and the service provider decision.
User identity and delegation
The TSAI credential does not identify the user or establish delegated authority. TSAI leaves user identification to the application flow that requires it because including identity in every presentation would create cross-service surveillance and legal obligations even when the service provider has no need for that data. Account systems, OAuth, payment mandates, and application policy retain those responsibilities.
Credential lifecycle
The protocol establishes identity and evidence before an agent contacts a service. This keeps evaluation outside the request path, while the short credential lifetime limits how long a service relies on the issued state.
Registration
The operator enrols with a trust authority and establishes its legal identity and controlled domains. It registers each agent under a persistent HTTPS identifier in sub and registers one or more P-256 binding keys. The agent proves possession of each key by signing a single-use trust authority challenge.
The persistent identifier remains stable when keys rotate, so reputation, status, and service provider policy remain attached to the same agent. A credential selects one registered key in cnf, which the agent later uses for holder proof.
Issuance
The trust authority issues a credential only after establishing the claims it contains. Every credential includes the operator identity floor: legal name, jurisdiction, verification depth, and one controlled domain. The hostname in sub must match that domain, verified within the preceding 12 hours.
An issuance request can select a subset of evidence above the identity floor, but it cannot replace the registered agent identity, introduce an unregistered key, or remove mandatory signals. The credential expires after 30 minutes and must then be re-issued from the current agent record.
Credential and trust signals
The service provider needs a signed object that identifies the issuer and agent, carries the available evidence, and binds that evidence to an agent key. It also needs shared definitions for the signals, because a valid signature cannot resolve disagreement about meaning.
Credential structure
A TSAI credential is an SD-JWT VC. The issuer-signed JWT contains the persistent agent identity, selected binding key, lifetime, and trust signals. During presentation, the agent appends a key-binding JWT; selective disclosures, when used, appear between the two tokens.
Illustrative conforming credential payload
{
"iss": "https://trust-authority.example",
"vct": "https://tsaiprotocol.org/credential/tsai/1",
"vct#integrity": "sha256-VWaSSviMOFcp1vsoU3ReObfIF8+sKBiEyfkL9npfZmA=",
"iat": 1781863200,
"exp": 1781865000,
"sub": "https://acme.example/agents/shopper",
"cnf": {
"jwk": {
"kty": "EC",
"crv": "P-256",
"x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc",
"y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"
}
},
"signals": [
{ "cat": "idn", "typ": "org", "val": "Acme Corporation GmbH" },
{ "cat": "idn", "typ": "jur", "val": "DE" },
{ "cat": "idn", "typ": "kyc", "val": "enhanced" },
{ "cat": "idn", "typ": "dct",
"val": "acme.example", "asof": 1781860000 }
]
}iss names the trust authority, while vct and vct#integrity select the exact credential definition. sub is the persistent agent identity, and cnf contains the holder-binding key. iat and exp define the credential lifetime. For time-sensitive signals, asof records when the trust authority established or last confirmed the fact.
Trust signals
Trust signals are structured statements about the agent and operator. Identity, reputation, compliance, and assurance address different risks, so service provider policy combines the evidence needed for the action.
- Identity
- Names the accountable operator and records its jurisdiction, verification depth, and controlled domain.
- Reputation
- Describes observed agent or operator behaviour together with the interaction count and observation period.
- Compliance
- Records third-party certifications held by the operator and attributes them to the certifier.
- Assurance
- Records economic backing or recourse, such as insurance or collateral.
A registered reputation score identifies its immutable methodology through mtd and mtd#integrity, because the score has meaning only within that methodology. Compliance and assurance signals name their provider through prv; this is attribution by the trust authority rather than a signature from the provider.
The absence of a signal carries no adverse meaning. Selective disclosure is off by default, and the agent identity, operator identity floor, and reputation remain non-disclosable.
Credential definitions
Each vct identifies an immutable definition comprising Type Metadata and an integrity-pinned JSON Schema. This ensures that issuers and verifiers interpret the same fields in the same way. Service providers obtain these documents before handling presentations and cache them by integrity value.
Domain-specific extensions use derived credential types that retain the canonical TSAI constraints. The detailed inheritance and schema rules are defined in the specification and machine-readable artefacts.
TSAI v1 uses ES256 signatures, P-256 keys, and SHA-256 protocol digests.
Presentation and verification
The trust authority signature protects the credential contents, but the service provider also needs proof that the current presenter controls the key in cnf. The key-binding JWT supplies that proof and binds the presentation to the receiving service and exact credential.
Baseline presentation
{ "alg": "ES256", "typ": "kb+jwt" }{
"iat": 1781863250,
"aud": "https://service-provider.example",
"nonce": "9b8f2c1a7e4d6f0b3a5c8e2d1f4a6b9c",
"sd_hash": "X9Dd6l3aY8p2Qq7rT1uV0wZ2xN4mK6sB8cE0fH1gJ2k"
}aud names the receiving service provider, iat drives freshness, and sd_hash binds the proof to the credential and disclosures. Over HTTP, the complete presentation travels in the TSAI-Credential header.
Stronger actions
The baseline path uses an agent-generated nonce and accepts a presentation within a short freshness window. Since the service provider keeps no per-request state, an identical presentation can be replayed to the same audience inside that window.
A state-changing action therefore uses a service-provider-issued single-use nonce and a req claim. The nonce prevents identical replay, while req binds the presentation to the method, target URI, and request-body digest.
Illustrative claims for a state-changing request
{
"iat": 1781863250,
"aud": "https://service-provider.example",
"nonce": "c1f4a6b9c8e2d1f49b8f2c1a7e4d6f0b",
"sd_hash": "X9Dd6l3aY8p2Qq7rT1uV0wZ2xN4mK6sB8cE0fH1gJ2k",
"req": {
"method": "POST",
"uri": "https://service-provider.example/api/orders",
"digest": "sha-256=:RjVcQo5Xk2n9pQ0rT1uV0wZ2xN4mK6sB8cE0fH1gJ2=:"
}
}Verification path
The service provider prepares accepted issuer keys, credential definitions, schemas, and reputation methodologies before requests arrive. Request-time verification then follows four conceptual stages:
- Verify the trust authority signature, credential type, schema, and lifetime.
- Validate the identity floor and trust signals.
- Verify the key-binding JWT, audience, freshness, nonce, and any required request binding.
- Check status when policy requires a current block decision, then pass the verified identity and signals to service provider policy.
Verification and admission remain separate. A failed presentation must never be represented as verified, even when policy allows the request to continue.
Status and blocking
A trust authority publishes a signed status list that blocks the persistent agent identity or operator across credentials and key rotation. The credential's status reference is optional, so a service provider performs this online check only where its policy requires one.
Adjacent standards
TSAI has a narrow responsibility: carrying evaluated evidence about an agent and its operator. It uses established standards for credentials and cryptography, while adjacent protocols continue to handle authorisation, request authentication, agent communication, and payments.
Protocol foundations
| Standard | Role in TSAI |
|---|---|
| SD-JWT VC | Defines the verifiable credential format, credential types, Type Metadata, and holder binding used by TSAI. |
| RFC 9901 | Defines selective disclosure for JWTs and the key-binding JWT carried in each presentation. |
| IETF Token Status List | Provides the signed status mechanism used to block an agent or operator across short-lived credentials. |
| RFC 9530 | Defines the request-body digest used when a presentation is bound to a state-changing request. |
| JWT, JWS, and JWK | Provide the signed-token, signature, key, and ES256 representations used by credentials and presentations. |
Complementary protocols
| Protocol | Relationship to TSAI |
|---|---|
| OAuth, OpenID Connect, and account systems | Establish user identity, consent, and delegated authority. TSAI identifies the agent and operator without carrying the user authorisation model. |
| Web Bot Auth and RFC 9421 | Authenticate and bind the HTTP request itself. TSAI supplies its own holder binding, so both mechanisms can be used independently or together. |
| Model Context Protocol | Defines agent-to-tool communication. MCP servers can advertise accepted trust authorities and carry a TSAI presentation over HTTP or stdio. |
| Agent2Agent Protocol | Defines discovery and communication between agents. Agent cards can declare TSAI support, while HTTP or gRPC carries the presentation. |
| Agent Payments Protocol and other payment protocols | Carry mandates, value limits, and payment authorisation. TSAI assurance signals describe backing or recourse but do not authorise spending. |
| W3C AI agent protocol | Defines agent discovery, identity, and communication through its own model. TSAI adds independently verifiable trust signals to the interaction. |
The surrounding application combines these properties. TSAI provides evaluated trust signals and proof of presentation, while the adjacent standards retain their existing responsibilities.