The Vacation Rental Protocol (VRP) is an open protocol for host-domain-signed vacation-rental offers: an AI agent discovers a property on the open web, fetches a cryptographically signed (Ed25519, did:web) stay offer from the host's own domain, verifies it against the domain's JWKS — no central marketplace, registry, or gatekeeper.
Created and maintained by Rouiada Abbas. Anyone may implement it; HemmaBo is the reference implementation. Current public draft: v0.1.
The vacation-rental.json well-known URI suffix is registered in the IANA Well-Known URIs registry (provisional, 2026-08-19).
VRP lets AI agents verify that a stay offer came from the host-owned domain, includes fresh availability, exact pricing, and a direct booking URL before quoting.
Core VRP verifies the offer’s origin and integrity. Portable attestations prove selected trust history without making HemmaBo, or any other operator, the authority over truth.
Public overview: vacationrentalprotocol.com
Implement onramp: implement in 5 minutes
Live proof: reference-implementation
Evidence memo: docs/first-mover-evidence-memo.md
Spec draft: spec/v0.1.md
Portable attestations draft: spec/attestations-v0.1.md
Receipt envelope v1: spec/receipt-v1.md
Booking Proof Chain v0.1: spec/proof-chain-v0.1.md
Node Seal v0.1: spec/node-seal-v0.1.md
Node Tool Binding v0.1 (proposal for discussion): spec/node-tool-binding-v0.1.md
VRP JSON-LD context draft: contexts/v1.jsonld
Architecture decision: ADR 0001 - Portable Attestations v0.1
Trust and interop decision: ADR 0002 - No-Gatekeeper Trust and Interop Positioning
Interop and trust positioning: docs/interop-and-trust-positioning.md
Attestation implementation guide: docs/implement-attestations.md
Core schemas: schemas/discovery-v0.1.schema.json, schemas/jwks-v0.1.schema.json, schemas/verified-stay-offer-v0.1.schema.json
Attestation schema: schemas/attestations-v0.1.schema.json
Conformance vectors: examples/conformance
- An open protocol for vacation rental offer verification
- A versioned protocol (
protocol_version: "0.1") - A host-owned domain model for source identity
- Signed verified stay offers for machine validation
- Ed25519 JWKS for key discovery and signature checks
- Freshness control via
valid_until - Exact price fields for quote fidelity
- Safe-to-quote guardrails for agent behavior
- A no-gatekeeper trust model where verifiers choose their own trust policy
- Not a marketplace
- Not an OTA
- Not a booking portal
- Not a ranking engine
- Not a payment processor
- Not a central issuer, trusted issuer registry, or accreditation program
- Not a replacement for host websites
VRP is deliberately narrower than a full booking or commerce stack. It can compose with UCP for checkout and order lifecycle, including lodging flows as the UCP lodging profile matures, AP2 for payment mandates, MCP, A2A and WebMCP for exposing a node's signed offer as a tool (one name and one argument shape, proposed in Node Tool Binding v0.1), and A2A for future agent-to-agent bindings. VRP v0.1 does not define those runtime flows.
Self-issued host-domain attestations are appropriate for domain-control, node, payment-path, and policy facts. Claims that need independent evidence, such as guest identity or right-to-let, belong in future optional third-party credential profiles where each verifier chooses which issuers to trust.
HemmaBo is a reference implementation, provider, and federation using VRP-compatible host-owned domains.
Live nodes: every known implementation, with its evidence, is in IMPLEMENTATIONS.md (rendered at https://vacationrentalprotocol.com/implementations). The reference implementer's proof node is villaakerlyckan.se; the first independent signing node is listed there too.
- Publish three documents on the host's own domain:
/.well-known/jwks.json,/.well-known/vacation-rental.json, and the offer endpoint it names, e.g./api/verified-stay-offer. - Do not invent a schema — use
spec/v0.1.mdandschemas/verbatim. - Do not proxy booking through a marketplace —
direct_booking_urlstays on the host's domain. - Prove interop with the conformance vectors (
npm test). - Questions: hello@vacationrentalprotocol.com
- Live HemmaBo MCP endpoint:
https://www.hemmabo.com/mcp - MCP server repo: HemmaBo-se/hemmabo-mcp-server
- Proof node discovery:
https://villaakerlyckan.se/.well-known/vacation-rental.json - Proof node JWKS:
https://villaakerlyckan.se/.well-known/jwks.json - Contact: open an issue — for security reports, see SECURITY.md
The HemmaBo MCP server is an implementation-specific integration, not a VRP runtime tool defined by the v0.1 specification.
Report a vulnerability and read the scope in SECURITY.md. Deeper
notes live in docs/security/:
- Threat model — STRIDE-oriented, focused on Ed25519 signing, JWKS, host-domain-as-source-of-truth, and a compromised host key.
- Key rotation — additive rotation per spec §3.1, and the current verified live-node key posture.
- Incident response — handling a compromised host key or JWKS.
"VRP" and "Vacation Rental Protocol" name this standard. Any implementation that passes the conformance vectors may call itself VRP — free, by self-declaration, with no approval step. See GOVERNANCE.md §6.1; a node names the protocol on its own pages as set out in spec/v0.1.md §2.1.
VRP uses a dual-license boundary (ADR 0007 D7), so the standard is free to implement while the reference code carries an explicit patent grant:
| Path | License | What |
|---|---|---|
spec/, schemas/, contexts/, this README and the site pages |
CC0 1.0 (public domain) | The specification text and machine-readable spec artifacts — copy and implement the standard freely. |
scripts/, examples/ (incl. examples/conformance/ vectors) |
Apache-2.0 | The reference verification code and conformance test vectors — Apache-2.0, which includes the royalty-free patent grant (§3). |
docs/ (guides, decision records, security documents, the generated source pack) |
CC0 1.0 (public domain) | The documentation about the standard — same terms as the specification text. |
lib/ |
Apache-2.0 | The reference verifier modules (vrp-jws.mjs, vrp-receipt.mjs, vrp-tlog.mjs); each file carries its own Apache-2.0 header. |
See also the spec-text patent non-assertion commitment in PATENTS.md.