Rights
org.hypercerts.claim.rights
Overview#
A rights record states the terms that come with a hypercert: what a holder or contributor may do with it, such as whether it can be displayed, sold, or transferred, and under what conditions. It can also describe licensing terms for the material the claim covers.
The terms live in their own record so one statement can be referenced by many activities. An activity claim points to it through its rights property. For how activities are described, see Activity Claims in the Guide.
How it's used#
- A publisher writes its terms once. An organization publishes a rights record for each distinct set of terms it uses, for example a standard "display only" statement or a Creative Commons license.
- Activities reference it. Each activity that carries those terms sets
rightsto a strong reference to the record. An activity can reference one rights record. - Readers show the terms. Funding platforms and marketplaces display the rights record alongside the activity so people know what supporting or holding the hypercert does and doesn't give them.
Four properties are required: rightsName, rightsType, rightsDescription, and createdAt. Use attachment to link or upload the full legal text when there is one.
Schema#
Record key: tid · Lexicon version: 1.6.0 · View the schema
Required properties#
| Property | Type | Description |
|---|---|---|
rightsName | string | Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0') maxLength: 100 |
rightsType | string | Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search maxLength: 10 |
rightsDescription | string | Detailed explanation of the rights holders' permissions, restrictions, and conditions maxLength: 10000 maxGraphemes: 1000 |
createdAt | string (datetime) | Client-declared timestamp when this record was originally created |
Optional properties#
| Property | Type | Description |
|---|---|---|
attachment | union: org.hypercerts.defs#uri, org.hypercerts.defs#smallBlob | An attachment to define the rights further, e.g. a legal document. |
signatures | app.certified.signature.defs#list | Optional cryptographic signatures attesting to this record's content. |
Example#
The community energy project states that holding its hypercert is about recognition, not ownership of the array:
{
"$type": "org.hypercerts.claim.rights",
"rightsName": "Public Display Only",
"rightsType": "PDO",
"rightsDescription": "Holders may display this hypercert and reproduce its title, description, and reported outcomes in their own reporting, with attribution to the Village Hall Energy Cooperative. Holding it gives no ownership interest in the solar array or its electricity output, and no right to resell or transfer the hypercert.",
"attachment": {
"$type": "org.hypercerts.defs#uri",
"uri": "https://energy.example.org/legal/hypercert-display-terms-v1.pdf"
},
"createdAt": "2026-07-01T13:40:00.000Z"
}
The activity references it with a plain strong reference. rights is not a union, so the reference has no $type:
"rights": {
"uri": "at://did:plc:4yyb5gyoxl3sqdlqrvuxshkp/org.hypercerts.claim.rights/3lwzp8t2k3a2x",
"cid": "bafyreiakm4qz7h3xw5nrt2vd6yjl2ofe5cgub3spk7vw4nqzx2yb5mfhoq"
}
Rules and best practices#
- Put the terms in
rightsDescription. It is the only field meant to explain permissions, restrictions, and conditions. State them in full there rather than repeating the name or code. - Treat
rightsTypeas the publisher's own code. There is no shared list of codes, so two publishers can use different codes for the same license, or the same code for different terms. Don't decide eligibility or compliance fromrightsTypeorrightsNamealone; showrightsDescriptionwherever the terms matter. - Carry the license version in
rightsName.rightsTypeis limited to 10 bytes, which is too short for many license identifiers with a version (for exampleCC-BY-SA-4.0). Use a short family code there and the full, versioned name inrightsName. - Keep the attachment and description consistent. When
attachmentholds the legal document, write a description that summarizes it faithfully, and show both to readers. - Publish new terms as a new record. Activities reference a specific version of the rights record. If the terms change, publish a new rights record and update the activities that adopt it, rather than editing the old one so it no longer matches what earlier references pinned.
- Split work with different terms. An activity has one
rightsreference. If parts of the work carry different terms, describe them as separate activities, each with its own rights reference. - No reference means no stated terms. An activity without
rightssays nothing about terms. Don't present it as public domain, openly licensed, or freely reusable. Likewise, if a rights reference can't be resolved, show the terms as unavailable rather than absent. - Publishing terms doesn't make them binding. The record is the publisher's statement. Whether the terms have legal effect, and for whom, is outside what the record can establish.
Related#
- Activity Claim: the record that references rights.
- Funding Receipt: records of support for an activity or project.
- Shared definitions: the URI and blob types used by
attachment. - Signatures: attestations over a record's content.
- Guide: Activity Claims, Funding and Value Flow, Records That Change Over Time.