Skip to main content

Implementation

Publish an ownership record

The property document that closes the two-way back-link on any site you own.

For a property claim in your entity document to verify, the property itself has to name you back. That is the olpn-property.json document. This guide walks through publishing one.

Self-property vs. other properties

Every entity has a self-property at the same domain as its entity document. A firm at firm.com publishes olpn.json and olpn-property.json at the same origin. This is the most common case and the easiest to set up.

Other properties are domains you own that aren't your primary OLPN identity: a personal blog at yourname.blog, a newsletter domain, a hobby project. Each gets its own olpn-property.json at the root of that domain.

Self-property: minimum document

{
  "olpn_property": {
    "id": "§:property:firm.com",
    "name": "Firm LLP",
    "url": "https://firm.com",
    "type": "Law Firm Website",
    "description": "The firm's public website.",
    "ownership": [
      { "network_id": "§:entity:firm.com" }
    ]
  }
}

Publish this at https://firm.com/olpn-property.json with content-type application/json and HTTP 200. Then reference the property in your entity's olpn.json:

{
  "network_id": "§:entity:firm.com",
  "properties": [
    {
      "id": "§:property:firm.com",
      "name": "Firm LLP",
      "url": "https://firm.com",
      "type": "Law Firm Website",
      "ownership": [
        { "network_id": "§:entity:firm.com" }
      ]
    }
  ]
}

The entity's properties[] entry duplicates the property's document. This is redundant but allows the resolver to render the property without a second fetch when it already has the entity document.

Third-party property you also own

Suppose you're an attorney at jane.law and also run janedoeconsulting.com. To tie them together:

  1. Publish olpn.json at jane.law. Include §:property:janedoeconsulting.com in properties[].
  2. Publish olpn-property.json at https://janedoeconsulting.com/. Include §:entity:jane.law in ownership[].
  3. Verify: search §:entity:jane.law at olpn.org. The consulting site should appear as a verified property.

Host-specific notes

Static sites

Drop the file in the web root. Same pattern as the entity document.

WordPress

Upload olpn-property.json to the WP install's web root, or register a REST route that returns the document. Same options as the entity document.

Ghost

Ghost can't serve /olpn-property.json. Use the HTML embed fallback: add a <script id="olpn-property" type="application/json">...</script> block in the page header via code injection.

Multi-owner properties

A firm's website is typically owned by the firm (an organization), not by the individual partners. That means the firm has an OLPN entity, and the firm's olpn-property.json names only the firm in ownership[].

If partners want the firm site to appear as their property too, the firm has to explicitly list each partner in ownership[], and each partner has to list the firm property in their personal olpn.json properties[]. This is rare in practice. More commonly, partners claim personal domains as their properties, and the firm's website is the firm's.