Public receipt surface (no login)
-API
+- IF.Trace is intentionally boring from a developer perspective: compute - hashes, publish receipts, and keep the proof surface stable. The system is - designed for third parties who are not inside your network. + This is the practical page. Copy/paste the examples, run a real request, and share the receipt URL with a reviewer.
What “VERIFIED” means (black/white)
-Quickstart
+1) Login. 2) Create an API key. 3) Upload a file to /api/v1/traces.
/api/v1/traces.curl -fsS -X POST \\ + -H 'X-API-Key: <your_key>' \\ + -F 'file=@./document.pdf' \\ + -F 'expected_sha256=<optional_expected_sha256>' \\ + https://infrafabric.io/api/v1/traces
# Response includes: +receipt_url: https://infrafabric.io/api/v1/public/receipt/<public_id>
Share surface
-These URLs are stable by design so review packs remain checkable later.
+Live test
+Paste your API key, pick a file, optionally provide an expected SHA‑256, and run the call.
-https://infrafabric.io/static/trace/<shareId> -https://infrafabric.io/static/dossier/<shareId> -https://infrafabric.io/static/dossier/<shareId>/download -https://infrafabric.io/static/pack/<shareId>.md -https://infrafabric.io/static/review/<shareId>.md -https://infrafabric.io/static/marketing/<shareId>.md -https://infrafabric.io/static/source/<source_sha256>.pdf -+
{"{}"}
+
+ HTML fallback
-Examples
+import requests
+
+API_KEY = "iftr_..."
+with open("document.pdf", "rb") as f:
+ res = requests.post(
+ "https://infrafabric.io/api/v1/traces",
+ headers={"X-API-Key": API_KEY},
+ files={"file": ("document.pdf", f, "application/pdf")},
+ data={"expected_sha256": ""}, # optional
+ timeout=60,
+ )
+print(res.status_code)
+print(res.json())
+ import fs from "node:fs";
+
+const apiKey = "iftr_...";
+const fd = new FormData();
+fd.append("file", new Blob([fs.readFileSync("document.pdf")]), "document.pdf");
+// fd.append("expected_sha256", ""); // optional
+
+const res = await fetch("https://infrafabric.io/api/v1/traces", {
+ method: "POST",
+ headers: { "X-API-Key": apiKey },
+ body: fd,
+});
+console.log(res.status);
+console.log(await res.json());
+ Meaning
+- Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside the raw assets. + “Verified” means the computed hash matched an expected hash you provided. + It does not mean “true”, “compliant”, or “approved”.
-/static/pack/<shareId>.md -/static/review/<shareId>.md -/static/marketing/<shareId>.md --
-/static/pack/<shareId> -/static/review/<shareId> -/static/marketing/<shareId> --
Offline verification
-Download a bundle (light/standard/full) and verify without relying on the live site.
-
- Note: some “web fetchers” reject .tar.gz even when browsers/curl succeed. Use HTML views and download bundles locally.
-
-curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py' -python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha256 <sha256> --
If hashes match, the receipt’s integrity claim is satisfied.
-Docs
-Use the paper update as a reviewer-friendly packet.
-IF.Transparent > IF.Traceable > IF.Trustworthy
Confidential work > open verification.
-Let a third party check integrity later, without joining your tools.
+Proof for outsiders, without giving access.
++ When an auditor, client, partner, or reviewer says “prove it”, the problem is not the hash. + The problem is access. IF.Trace gives you a public receipt they can verify without accounts. +
What IF.Trace is
-What it is
+- When someone needs proof, the bottleneck is almost always the same: - they can’t be onboarded into your internal systems. IF.Trace keeps the proof - outside: stable links they can verify without accounts. + If you have ever lost days to “can you prove this existed then?” or “can you share access so we can check?”, + IF.Trace is the simple alternative: keep the work private, publish a receipt for outsiders.
How it works
diff --git a/ifttt-src/src/pages/pricing/index.astro b/ifttt-src/src/pages/pricing/index.astro index 734e18d..2da7362 100644 --- a/ifttt-src/src/pages/pricing/index.astro +++ b/ifttt-src/src/pages/pricing/index.astro @@ -1,68 +1,202 @@ --- import Hero from "@/components/blocks/hero-1.astro"; -import Pricings from "@/components/blocks/pricings-1.astro"; +import { Button } from "@/components/ui/button"; +import { Icon } from "@/components/ui/icon"; +import { Section, SectionContent, SectionGrid, SectionProse } from "@/components/ui/section"; +import { Tile, TileActions, TileContent, TileDescription, TileTitle } from "@/components/ui/tile"; import BaseLayout from "@/layouts/BaseLayout.astro"; --- -A simple model, on purpose
+Simple pricing, on purpose
If you need audit‑ready verification, we price by risk and responsibility.
+Pick the plan that matches your monthly volume. No jargon.
Early access
-- Setup + governance configuration, integration support, and proof-surface - hardening. Third-party checking should stay cheap. -
-Choose a plan
++ A “transaction” is one published receipt (a trace link) with a yes/no integrity result. +
+Notes
++ Terms: /terms/ +
++ IF.Trace is designed so third parties can verify integrity without being onboarded into your internal tools. + This page is a short, plain-English summary. +
+ +If you have questions about data handling for your workflow, email ds@infrafabric.io.
++ Plain-English terms while IF.Trace is in early access. The intent is clarity, not fine print. +
+ +Current public pricing is described on /pricing/.
++ We may change pricing over time. If we introduce new usage limits or overage pricing for existing users, we will + warn you before it applies. +
+ ++ IF.Trace is designed to be simple and stable. If usage materially threatens reliability (for example: unusually + large files, unusually high download volume, or abusive automation), we may temporarily rate‑limit or suspend + access. We will aim to contact you first when feasible. +
+ ++ IF.Trace is evolving. Features may change. Availability is best‑effort unless you have a separate written agreement. +
+ +Questions or requests: ds@infrafabric.io.
+Why this exists
-Most systems produce answers and call that “governance”. IF.Trace starts - earlier: it produces receipts that a third party can verify without - joining your internal world. -
Who / Why / What / Where / When / How
-Teams who need to show proof to someone outside their network. -
-Because “trust us” fails the moment a reviewer asks for receipts. -
-Bind source_sha256 ↔ output_sha256 under a stable trace receipt.
-
-On a stable public share surface (no login): trace, dossier, packs, and source. -
-At publication time: the receipt is generated and can be verified later during disputes. -
-Hashes + receipts + optional offline bundles; nothing magical, just opposable proof. -
Traps
These are common ways “open verification” quietly becomes theater.
shareId is public; trace_id is chain‑of‑custody. Don’t swap them.
-Scope
Public receipt surface (no login)
-IF.Trace is intentionally boring from a developer perspective: compute - hashes, publish receipts, and keep the proof surface stable. The system is - designed for third parties who are not inside your network. -
What “VERIFIED” means (black/white)
-The bytes you can download hash to the same values shown on the trace receipt. -
-A post‑quantum signature receipt can be added (integrity hashes still stand). -
Compliance, intent, or correctness of interpretation.
Share surface
These URLs are stable by design so review packs remain checkable later.
https://infrafabric.io/static/trace/<shareId> -https://infrafabric.io/static/dossier/<shareId> -https://infrafabric.io/static/dossier/<shareId>/download -https://infrafabric.io/static/pack/<shareId>.md -https://infrafabric.io/static/review/<shareId>.md -https://infrafabric.io/static/marketing/<shareId>.md -https://infrafabric.io/static/source/<source_sha256>.pdf -
HTML fallback
-Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside the raw assets. -
/static/pack/<shareId>.md -/static/review/<shareId>.md -/static/marketing/<shareId>.md -
/static/pack/<shareId> -/static/review/<shareId> -/static/marketing/<shareId> -
Offline verification
Download a bundle (light/standard/full) and verify without relying on the live site.
-Note: some “web fetchers” reject .tar.gz even when browsers/curl succeed. Use HTML views and download bundles locally.
-
curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py' -python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha256 <sha256> -
If hashes match, the receipt’s integrity claim is satisfied.
Docs
Use the paper update as a reviewer-friendly packet.
API
Implementation ABC. Copy/paste examples. A real endpoint once the service is live.
Minimal surface area. Predictable responses.
| Field | Type | Required | Example |
|---|---|---|---|
| source_sha256 | hex | yes | 84730eea481d385d77ec2ee6fc3416c7156c4ff6e2cccaae6fbed649511138ed |
| output_sha256 | hex | yes | c306c5964c2945727d9b6840678db6013c49275acb89d2dfc09b9ce1b4808cc3 |
| metadata | object | no | {"kind":"report-summary","public_title":"Q4 review pack"} |
+
+ {
+ "shareId": "6qRgcR01kw_qNo63Dbs_ob9n",
+ "receipt_url": "https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n"
+}
+ Copy/paste.
curl -sS -X POST https://api.infrafabric.io/v1/trace \
+ -H 'Authorization: Bearer $IFTRACE_API_KEY' \
+ -H 'Content-Type: application/json' \
+ -d '{"source_sha256":"...","output_sha256":"..."}'
+ const res = await fetch('https://api.infrafabric.io/v1/trace', {
+ method: 'POST',
+ headers: {
+ Authorization: `Bearer ${process.env.IFTRACE_API_KEY}`,
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({ source_sha256: '...', output_sha256: '...' })
+});
+ Send a request. See the real response.
This sends a real request to https://api.infrafabric.io. Use non-confidential hashes.
curl -sS -X POST https://api.infrafabric.io/v1/trace \
+ -H 'Authorization: Bearer $IFTRACE_API_KEY' \
+ -H 'Content-Type: application/json' \
+ -d '{"source_sha256":"","output_sha256":"","metadata":{"kind":"report-summary","public_title":"Q4 review pack"}}'