Welcome to the official documentation for the OpenClaiming Protocol (OCP).
OpenClaiming defines a simple way to create cryptographically signed claims that anyone can verify — across systems, organizations, and blockchains.
An OpenClaim is a signed JSON document that states something.
Example:
{
"ocp": 1,
"iss": "example.com/alice",
"stm": {
"role": "admin"
},
"key": ["data:key/es256;base64,..."],
"sig": ["BASE64_SIGNATURE"]
}The signatures prove authorized parties made the statement.
Learn more at https://openclaiming.org.
OpenClaiming was designed to be:
- Simple
- Human-readable
- Decentralized
- Implementation-friendly
- Independent of blockchains
- Independent of identity providers
- Easy to publish anywhere
- Extensible across execution environments
The protocol intentionally focuses on one primitive:
A signed claim
Everything else is built on top of this.
OpenClaiming supports standardized extensions for common use cases.
These are:
- 💸 Payments — spending authorization
- ⚡ Actions — execution / invocation authorization
Extensions are:
- arrays of nested OpenClaims
- independently signed and verifiable
- able to use different formats (
ES256,EIP712)
Example:
{
"ocp": 1,
"payments": [ ... ],
"actions": [ ... ]
}➡️ https://github.com/OpenClaiming/Documentation/blob/main/docs/extensions.md
OpenClaiming supports native multisignature:
{
"key": [
"data:key/es256;base64,...",
"data:key/es256;base64,..."
],
"sig": [
"BASE64_SIGNATURE",
"BASE64_SIGNATURE"
]
}- each signature corresponds to a key
- multiple signers may be required
- threshold is defined by application or contract
- Introduction
- Concepts
- OpenClaim Format
- Signatures
- Canonicalization
- Publishing Claims
- Extensions Overview
- Payments
- Actions (Invocations)
- Identity Linking
- Device & Session Keys
- Intercloud Claims
- Blockchain Anchoring
OpenClaiming is blockchain-agnostic, but integrates cleanly with EVM chains.
EIP-712 support enables:
- on-chain verification of claims
- multisignature execution
- payment authorization
- governance and workflow execution
➡️ https://github.com/OpenClaiming/Documentation/blob/main/docs/evm.md
import OpenClaim from "openclaiming";
const claim = {
ocp: 1,
iss: "example.com/alice",
stm: { role: "admin" }
};
const signed = OpenClaim.sign(claim, privateKey);
const valid = OpenClaim.verify(signed);
console.log(valid);Convention:
.well-known/openclaiming//.json
Example:
example.com/.well-known/openclaiming/example.com/alice.json
- OpenClaim = signed statement
- key = who can sign
- sig = signatures
- iss = authority
- sub = subject
- extensions = standardized semantics
- formats = execution environments (ES256, EIP712)
- https://github.com/OpenClaiming/spec
- https://github.com/OpenClaiming/Documentation
- https://github.com/OpenClaiming/test-vectors
- https://github.com/OpenClaiming/examples
- https://openclaiming.org
MIT License