open-standards/openpay/vocab
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 43cb6a2ace vocab v1 SHACL shapes across sister standards (wave-23 #4/#5)
Carries the SHACL contract shipped at jouleclaw/vocab/v1.shapes.ttl
across every TX Science sister standard. Each standard now has a
SHACL Core shape graph that validates its main wire types
locally — before a payload crosses a tool boundary, a rail
driver, a lockstep replicator, a CDN cache, an inference vendor.

Live at the same prefix as the JSON-LD + Turtle vocab:

  https://arl.transaction.science/vocab/v1.shapes.ttl
  https://openpay.transaction.science/vocab/v1.shapes.ttl
  https://byte.transaction.science/vocab/v1.shapes.ttl
  https://eoc.transaction.science/vocab/v1.shapes.ttl
  https://wai.transaction.science/vocab/v1.shapes.ttl

All five serve with Content-Type: text/turtle (joulecode.t.s does
not yet have a site config so the file lives in repo only).

What each shape graph covers:

  arl/vocab/v1.shapes.ttl       Claim (four-axis: 1–9 validation
                                depth, A–E convergence, energy
                                profile, S0–S4 security, plus
                                derived arlScore in 1–9),
                                Session (Tier 0–3 isolation +
                                replayable/tampering booleans +
                                joules), Attestation (Ed25519
                                signature 128 hex + public key
                                64 hex + signedAt), Evaluation
                                (input/output BLAKE3 hex 64).

  openpay/vocab/v1.shapes.ttl   Money (signed integer + ISO 4217
                                3-letter currency), Receipt
                                (method ∈ {Card, A2A, Stablecoin,
                                Wallet, EMV}; rail ∈ {FedNow, PIX,
                                SEPAInstant, USDC, USDT}; status ∈
                                {Authorized, Captured, Settled,
                                Refunded, Voided, Disputed,
                                Failed}; idempotencyKey required),
                                Refund (refundedAt required), Card
                                (scheme ∈ {Visa, Mastercard, Amex,
                                Discover} + vaultRef required).

  smart-byte/vocab/v1.shapes.ttl Byte (BLAKE3 64-hex content hash,
                                issuer IRI, cargo + cargoClass ∈
                                {Value, Coding, Identity,
                                Telemetry, Custom}, energy
                                provenance, signature 128 hex,
                                sequence ≥ 0), LockstepEvent
                                (previousHash + contentHash hex +
                                lockstepHeight ≥ 0 + signature),
                                AID ([A-Za-z0-9_-]+ identifier).

  eoc/vocab/v1.shapes.ttl       Receipt (stageClosed ∈ {Cache,
                                KeyValue, Graph, Neural} +
                                joules_uj ≥ 0 + energy provenance
                                + input/output BLAKE3 hex 64 +
                                closedAt RFC 3339), CarbonRecord
                                (carbonGrams ≥ 0), Query
                                (queryText required).

  wai/vocab/v1.shapes.ttl       Manifest (modality ∈ {Image,
                                Audio, Video, Volume, Mesh,
                                Compressed}; path ∈ {NeuralPath,
                                ZerothPath}; codec ∈ the v1
                                registered menu of nine;
                                contentHash BLAKE3 hex 64; size ≥
                                0; mediaType IANA-shaped),
                                NeuralPrior (sharedPriorUri IRI +
                                sharedPriorHash hex 64).

  joule-code/vocab/v1.shapes.ttl Receipt (tierClosed ∈ {L0Cache,
                                L1Lawful, L2Embed, L3Model,
                                L4Wire} + joulesMeasuredUj +
                                joulesEstimatedUj + energy
                                provenance + closedAt),
                                Transition (operation ∈ {Edit,
                                Refactor, Generate} + sourceBefore/
                                AfterHash BLAKE3 hex 64), Agent
                                (agentId + agentVendor ∈
                                {ClaudeCode, Gemini, Codex,
                                GenericAgent} + acpEndpoint).

Every shape graph uses SHACL Core only — no SPARQL constraints,
no qualified value shapes. Consumable by:

  - Any full SHACL validator (pyshacl, Apache Jena, TopBraid).
  - The lightweight jouleclaw-shacl Rust validator, which is the
    reference and ships in ~600 LOC; WASM-compilable for in-browser
    validation.
  - The Python + Go reference clients in
    jouleclaw-hydra-client/clients/{python,go}/.

Each vocab README also gains a row pointing at the shapes file.

Operational follow-up done in parallel: the canonical Caddyfile
at site-ops/ adds an @<site>_jsonld matcher per site so .jsonld
files serve as application/ld+json across all five sister-site
hosts (joulecode.t.s does not yet have a site). The Caddyfile is
in a separate repo and is being committed via that repo's own
flow.

The Gen-3 architecture — vocabulary, Hydra discovery, SHACL
validation — now spans the entire TX Science open-standards
portfolio. A consumer reading any TX-Science wire form can
validate it locally before sending; can ground its meaning in
typed RDF via JSON-LD; can discover what services it can talk
to via Hydra (where the service publishes one). One pattern,
seven standards.
2026-06-02 18:55:56 -04:00
..
README.md vocab v1 SHACL shapes across sister standards (wave-23 #4/#5) 2026-06-02 18:55:56 -04:00
v1.jsonld vocab v1 across sister standards: arl + openpay + smart-byte + eoc + wai + joule-code (wave-23 #3) 2026-06-02 14:16:58 -04:00
v1.shapes.ttl vocab v1 SHACL shapes across sister standards (wave-23 #4/#5) 2026-06-02 18:55:56 -04:00
v1.ttl vocab v1 across sister standards: arl + openpay + smart-byte + eoc + wai + joule-code (wave-23 #3) 2026-06-02 14:16:58 -04:00

OpenPay vocabulary (v1)

Stable IRIs for the OpenPay payment-acceptance open standard. Maps Money, Currency, PaymentMethod, Receipt, Refund, Dispute, the five rails (FedNow / PIX / SEPA Instant / stablecoins), the four card schemes, and the receipt lifecycle states to globally unambiguous IRIs under https://openpay.transaction.science/vocab/v1# (prefix op:).

File Format What
v1.jsonld JSON-LD @context Term → IRI mapping. Adds typed RDF semantics to any OpenPay JSON without changing its wire form.
v1.ttl Turtle (RDF) Classes, enumerations, properties; rail + scheme + lifecycle taxonomies.
v1.shapes.ttl SHACL Core Shape graph — validates Money, Receipt, Refund, Card payment method locally before a rail-driver call. SHACL Core only; consumable by any conformant validator.

A receipt that carries @context: "https://openpay.transaction.science/vocab/v1.jsonld" expands into typed RDF triples readable by any JSON-LD parser or SPARQL store. Existing OpenPay consumers ignore @context and keep working — the wire form is unchanged.

Mirrors the pattern shipped at jouleclaw/vocab/v1. Licence Apache-2.0 to match the OpenPay reference implementation.