Prove an artifact existed exactly as-is at a moment in time, and make any later tampering detectable. A contract, an invoice, a medical prescription, an insurance claim, an image, an audio recording: you hash it locally, register only the sha256, and the registration joins the same tamper-evident audit chain as Fidacy’s payment verdicts, checkpointed to Bitcoin. The file itself never leaves your machine.
Anchoring answers one question with cryptographic force: has this exact content changed since it was registered? If the hash of the file in front of you matches the anchored record, the content is byte-for-byte what it was then, and the Bitcoin checkpoint puts a floor under "then" that no one, including Fidacy, can quietly rewrite.
It is not content analysis. Fidacy does not read, scan or judge the artifact, and cannot, it only ever sees the hash. That is also why it is safe for regulated content: a prescription’s sha256 carries no PII.
/v1/artifactscurl -s https://api.fidacy.com/v1/artifacts \
-H "Authorization: Bearer $FIDACY_ENGINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sha256": "'"$(shasum -a 256 contract.pdf | cut -d\ -f1)"'",
"kind": "contract",
"label": "MSA-2026-014"
}'kind is one of contract, invoice, prescription, claim, document, image, audio, video, conversation, custom. label is optional, do not put PII in it. The response is your receipt:
{
"artifactId": "c2e3e05f-…",
"kind": "contract",
"sha256": "9f2a…",
"ts": "2026-07-03T08:17:41.512Z",
"digest": "e3b0…",
"audit": { "seq": 140, "hash": "189a990b…" },
"anchor": { "status": "queued" },
"receipt": "<compact JWS, EdDSA>"
}Keep the receipt. It is a signed JWS over the canonical registration payload, verifiable offline against the engine JWKS at /.well-known/jwks.json, exactly like a verdict’s riskPayloadJws.
queuedThe registration is on the hash chain, waiting for the next checkpoint run.
anchoringA checkpoint covering your record was submitted to the OpenTimestamps calendars.
confirmedThe checkpoint’s Merkle root is in a Bitcoin block. Rewriting your record now means rewriting Bitcoin.
/v1/artifacts?sha256=<hex>This form answers the verification question directly: has this exact content been anchored by my account? No match where you expected one means the file changed since anchoring, that mismatch is the tampering signal.
The chain digest is sha256(JCS({v:"fidacy.artifact.v1", artifactId, kind, sha256, subject, ts})) (JCS = RFC 8785 canonical JSON). Recompute it from the receipt fields and compare with digest. The receipt JWS verifies against the public JWKS (EdDSA, by kid), and the audit record’s Merkle root is in a public Bitcoin transaction.
/v1/verify/artifact?sha256=<hex>/v1/verify/receiptThe consumer side needs no account and no key, both endpoints are open and CORS-enabled; the verify page is built on them. A forged or altered receipt returns { "valid": false }.