Status
Draft 0.1, revision of 23 October 2026
VXP is a draft. This page follows specification §13: how far each part has gone, from written rule to running code, to tests, to a live server, to someone outside SOVRAS; which parts are experimental and which are pending; and what changed from the 0.1 annex.
Maturity
How far each part has gone
Results and their logs are on Conformance. The operations observed with personal agents are on Examples.
- specified
- A normative rule in the specification
- implemented
- Code in the reference implementation
- tested locally
- An automated test, in process, passing on 23 Oct 2026
- live server
- Tested against a running HTTP server, local or through a tunnel
- verified externally
- By a third-party tool, a third-party agent or a public service
- published
- Available to read or download outside SOVRAS
- experimental
- Declared experimental by the specification
- pending
- What is still missing
| Part | specified | implemented | tested locally | tested against a live server | verified externally | published | experimental | pending |
|---|---|---|---|---|---|---|---|---|
| VXP ProofSigned chain: terms, approval, execution, read-back, outcome | Yes | Yes | Yes | Yeslive verifier, local server | PartialTimestamps and a Rekor entry exist only for an earlier test log, from before the operations | Not yet | No | External witnesses and a second issuer. Until then, an attestation by the operator |
VerifierPython, cryptography | Yes | Yes | Yes | Yes | NoBoth verifiers are by the same team | PreparedIn Downloads on this site, not yet online | No | A verifier written outside SOVRAS |
| Test vectors | Yes0.1 annex, appendix A | Yes | Yes | Not applicable | NoNobody outside SOVRAS has run them | PreparedIn Downloads on this site, not yet online | No | Runs by third parties |
| Operation requirements O1 to O7Required behaviour, no interface | Yes | Yesby the reference implementation's own internal controls | Yes | Yes | IndirectThe operations of 21 Oct went through those controls | Not yet | No | Runs of the conformance validator by a third party against its own implementation (it checks the observable ones: one execution per revision, exact revision, read-back before success) |
| VXP Relationship over a Poppy conversation | Yes | Yes | Yes | Yespublic tunnel, 21 Oct | Live agentRun once on 21 Oct with a live personal agent through the Poppy adapter; the signed receipt was not kept; no agent outside SOVRAS's runs yet | Not yet | No | Retries, and notifying the person when the agent is not reading |
| VXP Relationship over an HTTP inbox | Yes | Yes | Yes | Yeswith the agent in agent/, written by the same team | No | Not yet | Yesuses native profile routes | A third party that implements the inbox |
Native profile/.well-known/vxp.json and /v1 | Yes | Yesalso as a native-only gateway, with no adapter | Yesincluding the native-only test | Yeslocal server | NoNo third-party agent has called it | Not yet | Yes | Adoption by a third-party agent |
| Poppy adapterPoppy draft 0.2 | Yes | Yes | Yes | Yespublic tunnel, hardware store | PartialOfficial validator for discovery and conversations, which is not full conformance; on 21 Oct, live personal agents used sign-in and Operations, among them Nova AI, SOVRAS's personal agent in beta | Not yet | No | The parts of Poppy draft 0.2 listed below as not implemented |
| PACT adapterPACT 1.0 over A2A 1.0.1 | Yes | Yes | Yes | Yeslocal server | Official suiteIdentity suite; no third-party PACT agent yet | Not yet | No | A PACT agent outside SOVRAS |
| Relationship over PACT | No | No | No | No | No | No | No | Specification and tests |
Approval through a company channelcompany_channel | Yes | In PACT and on the company's approval pages | Yes | Yes | Web agenton the company's pages, 21 Oct | Not yet | No | In the native profile and in Poppy, where approval is agent_asserted today |
Conformance validatorconformance/: acts as a personal agent against any native endpoint | Yes§12, with the rule → test matrix | Yesvalidator, checklist, matrix | Yes | Yes51 passed, 0 failed, 3 manual against the reference | NoNot yet run by a third party | Not yet | No | Runs by third parties |
JSON Schemasschemas/0.1, every object of the draft | Yes§12, informative | Yes | Yesreal runs, proof packages, vectors; invalid objects rejected | Yescheck S1 of the validator, against a running server | Partialalso compiled with ajv, a third-party validator | Not yet | No | Use by a third party |
Personal agentagent/: library, CLI, MCP server and example | Not applicabletooling, not a rule | Yesnative profile; Poppy and PACT adapters in the library | Yes | Yesagainst the reference, in separate processes | NoWritten by the same team as the reference | Not yet | Yes | Relationship over a Poppy conversation on the agent side; use by a developer outside SOVRAS |
| Traditional channelsA SOVRAS capability, outside the protocol | Yes§3, informative | Yes | Yes | Yes | Web agent; one Web Bot Auth signature from a real crawler | Not yet | No | Real WhatsApp line, real voice, linking without WhatsApp |
Experimental
What draft 0.1 declares experimental
The native profile. /.well-known/vxp.json (with "status": "experimental" in the document) and the endpoints /v1/requests, /v1/proposals/{id}/accept|counter, /v1/requests/{id}/cancel|events|proof and /v1/relationships/{id}. With them, an agent that speaks neither Poppy nor PACT runs the whole cycle: discover, identify itself with private_key_jwt and DPoP, receive per-request authority with authorization_details, ask, receive a proposal, accept, follow events, cancel, get the proof and keep the relationship. It passes its tests in process and over the network. Adoption by a third-party agent is pending.
Native-only gateway. The native profile needs neither adapter. The reference implementation runs that way with both adapters off, and a test runs the whole cycle with an agent that signs with plain node:crypto, checked by the independent verifier anchored by the issuer alone (specification §8). No agent outside SOVRAS has used it yet.
VXP Relationship over HTTP. Querying and revoking a relationship (R10, R11) and the HTTP inbox (R2, R7) use native profile routes, so they share its maturity. The path over a Poppy conversation (§7) is the one a live personal agent ran, once, through the Poppy adapter.
A company may publish vxp.json, poppy.json and the PACT Agent Card at the same time, with the same issuer, authorization server and metadata. An agent that speaks Poppy or PACT does not need the native profile.
Real agents
On 21 October, personal agents went through the Poppy adapter with temporary identities, among them Nova AI, SOVRAS's personal agent in beta, and a third-party web agent, Grok, went through the companies' web pages. Still missing: a third-party agent on the Poppy adapter, the PACT adapter or the native profile, and an agent with a stable identity.
External counterpart for the two-way relationship
Run once with a live personal agent over a Poppy conversation (§7). An agent outside SOVRAS's runs on this path, and a third party implementing the HTTP inbox of R2, are still missing.
Independence of the evidence
- There are no external witnesses of the log.
- The operator holds the company's key.
- There is no second independent issuer.
- Until these exist, VXP Proof is an attestation by the operator, and its evidence depends on SOVRAS.
Approval through the company's channel in the native profile and in Poppy
Today it is
agent_asserted.company_channelexists in PACT and on the company's approval pages (approve, change, authorize), run with Grok.Real channels
Meta's WhatsApp integration, real voice, and account linking without WhatsApp. Web Bot Auth was verified live with the signature of a real crawler.
Production
- State lives in memory. Proof keys persist across restarts since the evening revision of 22 October (§10, key rotation).
- There are rate limits per client type and a cap on codes per number (active in the public sandbox); real anti-SSRF DNS protection is missing.
- Nothing has been built yet in the SOVRAS platform repository, and a known gap in its policy layer remains open.
Independent review
Five review rounds examined the 0.1 specification and left corrections; none closed as an approval without observations. Nobody has yet independently reviewed VXP Relationship, the channels, or the changes to VXP Proof in this draft.
Poppy draft 0.2, a subset
Not implemented: the person's direct conversation with the company (Poppy §7.10), streaming, DPoP nonce, web browsing with a shared session, OpenAPI and MCP, Direct Sign-In and Mediated Sign-In, and a screen where the person sees and disconnects their agents. Poppy may break compatibility before 1.0.
Protocol domain
vxpprotocol.orgwas registered on 22 October 2026 and is under SOVRAS's control, so the extension identifiers use a domain the publisher controls, as Poppy requires. Still to do: publish this site, the documents and the repository on that domain.Evidence for the operations of 21 October
Two operations have no saved proof, the keys lived in memory (only OP-5 was re-verified with signatures, on 22 October; its package carries earlier test data and is available on request) and none was anchored. The reference implementation now keeps its keys persistent, so later runs save each proof with material that can be checked again.
Relationship over HTTP and the native profile
Querying and revoking the relationship (R10, R11) and the HTTP inbox (R2, R7) use routes of the native profile, which is experimental: VXP Relationship over HTTP has that same maturity. The path over the Poppy conversation (§7) is the one a live personal agent ran.
Conformance by a third party
The conformance validator exists (
conformance/): it acts as a personal agent against any native endpoint and reports each check with its rule. Nobody outside SOVRAS has run it against their own implementation yet (Conformance).
Incompatible changes
Identifiers renamed from the 0.1 annex
VXP is independent of SOVRAS. The protocol identifiers that the 0.1 annex named with «sovras» are used as follows from 22 October 2026. A proof signed with the earlier names does not verify with the current verifier. Paths for keys, log and bundles are each implementation's own, discovered through the issuer metadata (specification §8, implementation paths); the reference implementation moved its own from /sovras/ to /vxp/ in the evening revision of 22 October and still answers at the old ones.
| 0.1 annex | VXP 0.1 |
|---|---|
/.well-known/sovras.json, "protocol": "sovras" | /.well-known/vxp.json, "protocol": "vxp" |
sovras_outcome_proof (RFC 8414 metadata) | vxp_proof |
typ: sovras-stmt+sd-jwt | typ: vxp-stmt+sd-jwt |
typ: sovras-checkpoint+jwt | typ: vxp-checkpoint+jwt |
sovras_salt (in the terms) | vxp_salt |
binding: sovras.request / sovras.intent | vxp.request / vxp.intent |
sovras.io/outcome-proof, https://sovras.io/ext/outcome-proof/v0.1 | vxpprotocol.org/proof, https://vxpprotocol.org/ext/proof/v0.1 |
https://sovras.io/rar/capability, https://sovras.io/vxp/rar/relationship | https://vxpprotocol.org/rar/capability, https://vxpprotocol.org/rar/relationship |
OP-5, signed on 21 October with the earlier names, was re-verified with signatures on 22 October with the verifier from before the rename; its package is available on request. The current verifier is in Downloads.
History
Versions of draft 0.1
Revision of the specification and release candidates 0.1.0-rc.2 and 0.1.0-rc.3 of the repository.
- Native endpoints: read capabilities answered at once, without a request or a proof;
approved_byanduser_approval_requiredstated, withstanding_permissionrecorded in the approval. - JSON Schemas for every object of the draft, checked against real runs and by the conformance validator.
- Documentation, conformance validator and personal-agent tools (library, CLI, MCP server, optional Poppy and PACT adapters) in the repository.
- Native endpoints: read capabilities answered at once, without a request or a proof;
Second revision of the specification that day.
- Two public components, VXP Proof and VXP Relationship, and operation requirements O1 to O7: required behaviour with no interface, kept apart from the evidence that shows it and from each implementation's internal controls.
- Native-only gateway: VXP implemented with the native profile alone, without Poppy or PACT.
- Implementation paths: only the well-known locations and the native endpoints are fixed; every other path is discovered through the metadata.
- Reading a verdict, key rotation and historical verification.
- Three classes of tests kept apart in conformance.
First revision of the specification that day.
- Protocol identifiers renamed to
vxp(table above). - Interoperability rule I1 made precise: inside an adapter, VXP keeps the external contract literally; the native profile lives beside the adapters on the same issuer.
- The rules where a request becomes an operation written as behaviour with no endpoint; that evening they became the operation requirements O1 to O7.
- Conformance with Poppy draft 0.2 §4.4: expanding permissions grants only what was requested.
- Every figure reconciled with a run logged that day. Figures from earlier days without a log were replaced.
- Protocol identifiers renamed to
Specification consolidated as VXP draft 0.1, on top of the 0.1 annex: VXP Relationship and VXP Proof as public contracts, the native profile as experimental, and adapters for Poppy and PACT. The same day, personal agents through the Poppy adapter, among them Nova AI, SOVRAS's personal agent in beta, and a third-party web agent, Grok, operated in SOVRAS's production with customers, first on SOVRAS's own resources.