Portable integrity APIs
CanonicalJson, Event, ChainVerifier, BundleVerifier, CollectionVerifier, ordinary Ed25519, SHA-256 and bounded ZIP/segment revalidation.
Explore actual canonical JSON, closed events, ordered chains, signed TEST bundles and complete-history collections. Edit bytes and replay mutations to inspect precisely which integrity claim fails.
Choose a scenario. Change the inputs or build a sequence of commands.
Execute the installed package against a new fictional example.
Follow the result, actual calls, generated output and integration code.
Your server-side changes are temporary. External-service examples use local response fixtures. Start with sample data.
Start with a preset, or change the input and run it.
Your result will show the values, decisions and generated output from the actual package.
Calls used by this scenario. The handbook explains setup, authorizers, storage and error recovery.
The complete response is shown as data. Wide PHP integers are transported as exact decimal strings. Values are never evaluated as PHP or JavaScript.
Run an example to inspect its response.
The last two successful run states stay in this tab’s memory. Run a changed example to compare the actual package results.
CanonicalJson, Event, ChainVerifier, BundleVerifier, CollectionVerifier, ordinary Ed25519, SHA-256 and bounded ZIP/segment revalidation.
A local valid chain prefix differs from a signed complete bundle. Collection verification returns no partial-prefix success.
Independent live trust pins, signing adapters, authorized storage, event head locking, source authentication and factual claims remain external. Public TEST keys prove no real receipt or identity.
A published reproducible test seed signs only TEST manifests; the actual DemoSigner rejects live mode. No production identity or trust is created.
Build canonical JSON and closed events, mutate a fixed TEST history, then verify complete bundles and multi-part collections with actual package APIs.
CanonicalJson orders object keys and produces stable bytes. Duplicate keys, including escaped duplicates, and floating-point values are rejected by this profile. Require original canonical bytes tests the supplied serialization rather than normalizing it silently.
The event JSON control feeds Event::fromArray and the package schema. Canonical event bytes and their SHA-256 are returned. The event builder does not observe a real delivery or establish that its submitted statements are true.
ChainVerifier can accept a valid ordered prefix. BundleVerifier additionally checks signed manifest commitments and artifacts; dropping an event violates completeness. CollectionVerifier verifies the complete declared collection and refuses missing or changed parts without partial success.
The fixture has an independently selected public TEST trust pin. Wrong-pin, signature and byte mutations exercise different rejection paths. DemoSigner uses a deliberately published TEST vector and refuses live mode; it creates no production identity or private signing service.
Run Canonicalize a JSON object. Expected: {"b":2,"a":1} becomes {"a":1,"b":2} with stable SHA-256. Enable require_canonical on the original ordering: it is rejected. Compare escaped duplicate keys and floating-point profile presets for distinct schema refusals.
Run Build a closed event and edit an allowed payload or timestamp. Expected: canonical bytes and event hash change. Add an unknown top-level property using the JSON control: the closed schema rejects it instead of silently committing extra claims.
Run Local chain alone accepts a valid prefix, then Signed bundle refuses that prefix. Expected: the same drop-last mutation can leave a locally valid chain but fails the signed complete bundle. Reverse, duplicate or replace an event to inspect other chain failures.
Run Tampered artifact and Wrong independently pinned key. Expected: each fails verification for its own integrity/trust boundary. Restore defaults rather than accepting a key from the mutated manifest. Manifest bytes and signature hex can be edited explicitly to inspect strict decoding failures.
Run Complete three-part collection, then Missing collection part and Tampered collection ZIP. Expected: only the intact complete collection succeeds. Compare Sign and verify with the public TEST vector with DemoSigner refuses live mode: the test vector works and live signing is refused.
The MyProof Laravel client retrieves service metadata and authorized download destinations. This independent package checks downloaded bundle bytes against a host-pinned key. HTTP success, hash-chain validity and factual truth are separate claims.