Specification · v1 · open

Constitutional Data.

Two signatures, one structured message, one open verifier.

MIT · Ed25519 · Robinhood Chain

provenance2 signatures
Three-stage diagram: a document is condensed into a hash, that hash is sealed with a key, then the sealed block is chained to hexagonal nodes.

Canonical message

phioradata.v1 | scope | sha256(data) | nonce | timestamp

Separated exactly by | . The separator is part of the specification. Changing it means bumping the version. sha256 is 64 lowercase hex characters, nonce is 32 hex, timestamp is Unix seconds.

Two signatures

  1. Contributor. Your Ed25519 key signs the canonical message on your device, before the file is sent. The sha256 in that message is the hash of the raw file, the exact bytes you actually saw and approved, not something processed by the server. The private key is generated and stored in your browser and never sent to us; that's what makes this signature mean something.
  2. Service. PHIORA DATA signs the 64 raw bytes of your signature, and only after PII cleanup is complete and a reviewer has approved it. A counter-signature applied any earlier would mean the receipt claims data "has already passed review" when no one has actually seen it.

What is attested

What is NOT attested

Verify it yourself

The issuer's Ed25519 public key is published at https://srv1944250.hstgr.cloud/.well-known/phioradata-pubkey.json, complete with a precise definition of what each party signs, so third-party verifiers never have to guess at the encoding.

The receipt for an approved dataset can be fetched at /api/provenance/<dataset_id>. Inside it, attestation.signature is verified against attestation.publicKey over attestation.canonicalMessage, and attestation.counterSignature is verified against attestation.serviceKey over the 64 raw bytes of the contributor's signature. Both are pure Ed25519. Receipts for datasets that haven't been approved are not published.

The issuer's legacy secp256k1 signature is still included in the receipt and can be checked with ecrecover against the address at https://srv1944250.hstgr.cloud/.well-known/phioradata.json. That's the EVM/on-chain path, not part of Constitutional Data's two signatures.

  • Issuer's Ed25519 public key
    https://srv1944250.hstgr.cloud/.well-known/phioradata-pubkey.json
  • secp256k1 address (EVM/on-chain path)
    https://srv1944250.hstgr.cloud/.well-known/phioradata.json
  • Receipt for an approved dataset
    https://srv1944250.hstgr.cloud/api/provenance/<dataset_id>

Approved datasets are also recorded as a soulbound receipt on Robinhood Chain if you register a wallet address in Settings. Without a wallet, the product still runs entirely off-chain.