| Internet-Draft | VAIP | April 2026 |
| Nyantakyi | Expires 11 October 2026 | [Page] |
This document defines the Vorim Agent Identity Protocol (VAIP), a standard for establishing verifiable cryptographic identity, fine-grained permissions, trust scoring, and tamper-evident audit trails for autonomous AI agents.¶
As AI agents increasingly perform actions autonomously in enterprise systems, existing identity protocols designed for human users or static services are insufficient. VAIP addresses this gap by providing cryptographic primitives and data structures for issuing, verifying, and managing agent identities in multi-tenant environments.¶
The protocol uses Ed25519 for agent identity, SHA-256 for audit integrity, and defines seven hierarchical permission scopes with time-bounded grants and rate limiting.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 3 October 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Autonomous AI agents are increasingly deployed to perform real-world tasks: executing code, sending messages, making financial transactions, and accessing sensitive resources. Unlike human users, agents lack a standardised identity layer. There is no widely adopted protocol for answering fundamental questions about an agent:¶
Existing identity systems (OAuth 2.0, API keys, X.509 certificates) were designed for human users or static services. They do not address the unique requirements of autonomous agents that act independently, accumulate behavioural history, and require dynamic trust assessment.¶
Non-human identities outnumber human identities by approximately 50:1 in the average enterprise, yet no standardised infrastructure exists for managing them.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] when, and only when, they appear in all capitals, as shown here.¶
Every agent MUST be assigned a unique agent identifier upon registration. The identifier follows this format:¶
agid_{org_slug}_{random}
¶
Where:¶
Example: agid_acme_a1b2c3d4¶
Agent identifiers MUST be globally unique and MUST NOT be reused after revocation.¶
Each agent MUST be assigned an Ed25519 [RFC8032] keypair at registration time. Ed25519 was chosen for the following properties:¶
The keypair MUST be generated as follows:¶
A key fingerprint is a SHA-256 [RFC6234] hash of the PEM-encoded public key, represented as a hexadecimal string (64 characters):¶
fingerprint = SHA-256(public_key_pem)[0:64]¶
The fingerprint serves as a compact, verifiable reference to an agent's identity. It MUST be included in trust verification responses and MAY be used for identity comparison without transmitting the full public key.¶
An agent MUST exist in exactly one of the following states at any time:¶
A revoked agent MUST NOT be reactivated. Its identifier MUST NOT be reused.¶
An agent's keypair MAY be rotated by revoking the current agent and registering a new agent with the same metadata. The new agent MUST receive a new agent_id and keypair.¶
VAIP defines seven permission scopes. Each scope authorises a category of agent actions:¶
| Scope | Identifier | Risk Level |
|---|---|---|
| Read | agent:read | Low |
| Write | agent:write | Medium |
| Execute | agent:execute | Medium |
| Transact | agent:transact | High |
| Communicate | agent:communicate | Medium |
| Delegate | agent:delegate | High |
| Elevate | agent:elevate | Critical |
Scopes are not hierarchical by default. Possessing agent:write does not imply agent:read. Each scope MUST be granted independently.¶
A permission grant binds a scope to an agent with optional constraints including:¶
A rate limit constrains how frequently a scope can be exercised:¶
{ "max": 1000, "window": "1h" }
¶
Supported windows: "1m" (minute), "1h" (hour), "1d" (day).¶
When an agent exceeds its rate limit, permission checks MUST return denied with reason RATE_LIMIT_EXCEEDED.¶
When an agent requests to perform an action, the system MUST:¶
Valid denial reasons: AGENT_NOT_FOUND, AGENT_NOT_ACTIVE, SCOPE_NOT_GRANTED, GRANT_EXPIRED, RATE_LIMIT_EXCEEDED, CONDITION_NOT_MET.¶
Every auditable action MUST produce an audit event including:¶
Optional fields include resource, input_hash, output_hash, permission, latency_ms, error_code, signature, and metadata.¶
All hashes in audit events MUST use the format:¶
sha256:{hex_digest}
¶
Where {hex_digest} is the lowercase hexadecimal representation of the SHA-256 hash.¶
Audit events MAY be signed by the agent that produced them. When present, the signature field MUST contain an Ed25519 signature of the canonical JSON [RFC8259] representation of the event (excluding the signature field itself), encoded as:¶
ed25519:{base64_signature}
¶
Audit events MUST be append-only. Once written, an event MUST NOT be modified or deleted except by automated retention policies.¶
Conforming systems MUST support exporting audit events as signed bundles. A bundle contains the events array, event count, time range, organisation identifier, and a manifest field containing a SHA-256 hash of the JSON-serialised events array.¶
Any modification to any event produces a different manifest hash, making tampering detectable.¶
Trust scoring provides a quantitative assessment of an agent's reliability. The score is a number from 0 to 100, computed from multiple behavioural and configuration factors. Trust scores are dynamic, public, and composite.¶
The trust score is computed as:¶
score = base_score + status_factor + age_factor
+ success_rate_factor - denial_penalty
- scope_breadth_penalty
¶
Base score: 50. Status factor: active (+10), suspended (-20), revoked (score fixed at 0). Age factor: >90 days (+15), >30 days (+10), >7 days (+5). Success rate factor: round(success_rate * 15) over trailing 30-day window. Denial penalty: -10 if denied_count exceeds 10% of total events. Scope breadth penalty: -5 if agent holds more than 5 active scopes. Final score clamped to [0, 100].¶
Conforming implementations MUST provide a public, unauthenticated endpoint for trust verification. The response includes agent_id, verification status, trust score, active scopes, key fingerprint, and revocation status.¶
Conforming implementations SHOULD provide embeddable SVG trust badges displaying protocol name, verification status, and trust score with colour coding: green (80-100), amber (50-79), red (0-49).¶
Implementations MAY conform to one or more levels:¶
| Primitive | Algorithm | Rationale |
|---|---|---|
| Agent identity | Ed25519 | Fast, compact, timing-attack resistant |
| Fingerprints | SHA-256 | Widely supported, collision resistant |
| Audit integrity | SHA-256 | Industry standard for data integrity |
| Password hashing | bcrypt (cost 12) | Memory-hard, adjustable work factor |
| API key storage | SHA-256 | One-way hashing for stored secrets |
Conforming implementations:¶
All database queries MUST be scoped to the authenticated organisation's identifier. No agent, permission, or audit record from one organisation may be accessible by another.¶
All API communications MUST use TLS 1.2 or higher. TLS 1.3 is RECOMMENDED.¶
| Threat | Mitigation |
|---|---|
| Key compromise | Immediate revocation, new registration |
| Audit tampering | SHA-256 manifest, append-only storage |
| Cross-tenant access | Organisation-scoped queries |
| Replay attacks | Time-sortable event IDs, timestamp validation |
| Brute-force auth | bcrypt hashing, API key entropy (192 bits) |
| Trust manipulation | Score from audited behaviour, not self-reported |
This document requests the registration of the following media type:¶
A reference implementation of VAIP is available at:¶
VAIP is designed to complement, not replace, existing identity and security standards:¶
VAIP's identity, permission, and audit features support compliance with emerging AI governance frameworks including:¶
The author thanks the open-source community and early adopters of the Vorim Agent Identity Protocol for their feedback and contributions to this specification.¶