diff --git a/scripts/transaction_log_test.py b/scripts/transaction_log_test.py new file mode 100644 index 0000000..6da1525 --- /dev/null +++ b/scripts/transaction_log_test.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 +"""20 global stamps of the same hash; write a full HTTP + function timing log.""" + +from __future__ import annotations + +import hashlib +import json +import time +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + +from verae_mcp_timestamping_server.global_client import ( + GlobalClient, + UrllibHttp, + load_auth_token, +) +from verae_mcp_timestamping_server.ledger import validate_sha256 + +DIGEST = hashlib.sha256(b"/stamp").hexdigest() +OUT = Path(__file__).resolve().parents[1] / "transaction-log-test.md" +N = 20 + + +def _now() -> str: + return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%fZ") + + +def _redact(headers: dict[str, str]) -> dict[str, str]: + out = dict(headers) + auth = out.get("Authorization") or out.get("authorization") + if auth: + key = "Authorization" if "Authorization" in out else "authorization" + token = auth.split(" ", 1)[-1] if " " in auth else auth + out[key] = f"Bearer [redacted len={len(token)}]" + return out + + +class LoggingHttp: + def __init__(self, inner: UrllibHttp, exchanges: list[dict[str, Any]], spans: list[dict[str, Any]]): + self.inner = inner + self.exchanges = exchanges + self.spans = spans + + def request( + self, method: str, url: str, payload: dict[str, Any], headers: dict[str, str] + ) -> Any: + req_at = _now() + t0 = time.perf_counter() + res = self.inner.request(method, url, payload=payload, headers=headers) + ms = (time.perf_counter() - t0) * 1000 + resp_at = _now() + self.exchanges.append( + { + "request_at": req_at, + "response_at": resp_at, + "method": method, + "url": url, + "request_headers": _redact(headers), + "request_body": payload if method != "GET" else None, + "status": res.status_code, + "response_headers": dict(getattr(res, "headers", {}) or {}), + "response_body": res.json() if hasattr(res, "json") else res.text, + "response_text": res.text, + "round_trip_ms": round(ms, 3), + } + ) + self.spans.append( + { + "fn": f"http.{method}", + "url": url, + "ms": round(ms, 3), + "at": req_at, + } + ) + return res + + +def _span(spans: list[dict[str, Any]], name: str, fn, **extra): + t0 = time.perf_counter() + at = _now() + try: + return fn() + finally: + spans.append({"fn": name, "ms": round((time.perf_counter() - t0) * 1000, 3), "at": at, **extra}) + + +def run() -> dict[str, Any]: + spans: list[dict[str, Any]] = [] + exchanges: list[dict[str, Any]] = [] + token = _span(spans, "load_auth_token", load_auth_token) + client = _span( + spans, + "GlobalClient.from_env", + lambda: GlobalClient( + token=token, + http=LoggingHttp(UrllibHttp(), exchanges, spans), + ), + ) + digest = _span(spans, "validate_sha256", lambda: validate_sha256(DIGEST)) + rounds: list[dict[str, Any]] = [] + for i in range(1, N + 1): + t0 = time.perf_counter() + at = _now() + n_ex = len(exchanges) + try: + rec = _span( + spans, + "GlobalClient.submit", + lambda: client.submit(digest, cube_id="verae-mcp-research"), + iteration=i, + ) + err = None + receipt = rec.model_dump() + except Exception as exc: # noqa: BLE001 — log live failures + err = str(exc) + receipt = None + rounds.append( + { + "n": i, + "at": at, + "ms": round((time.perf_counter() - t0) * 1000, 3), + "receipt": receipt, + "error": err, + "exchange_indexes": list(range(n_ex, len(exchanges))), + } + ) + ids = [r["receipt"]["receipt_id"] for r in rounds if r["receipt"]] + unique = sorted(set(ids)) + return { + "digest": digest, + "n": N, + "unique_receipt_ids": unique, + "same_receipt_every_time": len(unique) == 1 and len(ids) == N, + "rounds": rounds, + "exchanges": exchanges, + "spans": spans, + } + + +def render(data: dict[str, Any]) -> str: + lines: list[str] = [] + lines.append("# transaction-log-test") + lines.append("") + lines.append("20 global `/stamp` calls of the same SHA-256 with **no local cache**.") + lines.append("Authorization bearer values are redacted (`len=` only).") + lines.append("") + lines.append(f"- Started (UTC of write): `{_now()}`") + lines.append(f"- Digest: `{data['digest']}` (SHA-256 of bytes `/stamp`)") + lines.append(f"- Unique `receipt_id` count: **{len(data['unique_receipt_ids'])}**") + lines.append(f"- Same receipt every time: **{data['same_receipt_every_time']}**") + lines.append("") + lines.append("## Unique receipt ids") + lines.append("") + for rid in data["unique_receipt_ids"]: + lines.append(f"- `{rid}`") + if not data["unique_receipt_ids"]: + lines.append("- *(none)*") + lines.append("") + lines.append("## Rounds") + lines.append("") + lines.append("| n | at (UTC) | submit ms | receipt_id | error |") + lines.append("|---|---|---|---|---|") + for r in data["rounds"]: + rid = (r["receipt"] or {}).get("receipt_id", "") + lines.append( + f"| {r['n']} | {r['at']} | {r['ms']} | `{rid}` | {r['error'] or ''} |" + ) + lines.append("") + lines.append("## Function profile") + lines.append("") + by_fn: dict[str, list[float]] = {} + for s in data["spans"]: + by_fn.setdefault(s["fn"], []).append(float(s["ms"])) + lines.append("| function | calls | total ms | min | max | mean |") + lines.append("|---|---|---|---|---|---|") + for name, vals in sorted(by_fn.items()): + total = sum(vals) + lines.append( + f"| `{name}` | {len(vals)} | {total:.3f} | {min(vals):.3f} | {max(vals):.3f} | {total/len(vals):.3f} |" + ) + lines.append("") + lines.append("### Every internal span") + lines.append("") + lines.append("| at (UTC) | function | ms | extra |") + lines.append("|---|---|---|---|") + for s in data["spans"]: + extra = {k: v for k, v in s.items() if k not in ("fn", "ms", "at")} + extra_s = json.dumps(extra) if extra else "" + lines.append(f"| {s['at']} | `{s['fn']}` | {s['ms']} | {extra_s} |") + lines.append("") + lines.append("## Network exchanges") + lines.append("") + for i, ex in enumerate(data["exchanges"], 1): + lines.append(f"### Exchange {i}") + lines.append("") + lines.append("#### Request") + lines.append("") + lines.append(f"- Time/Date: `{ex['request_at']}`") + lines.append(f"- METHOD: `{ex['method']}`") + lines.append(f"- URL: `{ex['url']}`") + lines.append("- Headers:") + lines.append("") + lines.append("```json") + lines.append(json.dumps(ex["request_headers"], indent=2)) + lines.append("```") + lines.append("") + lines.append("- Body:") + lines.append("") + lines.append("```json") + lines.append(json.dumps(ex["request_body"], indent=2)) + lines.append("```") + lines.append("") + lines.append("#### Response") + lines.append("") + lines.append(f"- Time/Date: `{ex['response_at']}`") + lines.append(f"- Status: `{ex['status']}`") + lines.append(f"- Round-trip: `{ex['round_trip_ms']} ms`") + lines.append("- Headers:") + lines.append("") + lines.append("```json") + lines.append(json.dumps(ex["response_headers"], indent=2)) + lines.append("```") + lines.append("") + lines.append("- Body:") + lines.append("") + lines.append("```json") + lines.append(json.dumps(ex["response_body"], indent=2) if not isinstance(ex["response_body"], str) else ex["response_text"]) + lines.append("```") + lines.append("") + return "\n".join(lines) + "\n" + + +def main() -> int: + data = run() + OUT.write_text(render(data)) + print(f"wrote {OUT}") + print("unique", len(data["unique_receipt_ids"]), "same", data["same_receipt_every_time"]) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/src/verae_mcp_timestamping_server/global_client.py b/src/verae_mcp_timestamping_server/global_client.py index 7a43f31..448ee30 100644 --- a/src/verae_mcp_timestamping_server/global_client.py +++ b/src/verae_mcp_timestamping_server/global_client.py @@ -30,15 +30,31 @@ class HttpTransport(Protocol): class _UrllibResp: - def __init__(self, status_code: int, body: Any, text: str): + def __init__( + self, + status_code: int, + body: Any, + text: str, + headers: dict[str, str] | None = None, + ): self.status_code = status_code self._body = body self.text = text + self.headers = headers or {} def json(self) -> Any: return self._body +def _header_map(headers: Any) -> dict[str, str]: + if headers is None: + return {} + try: + return {str(k): str(v) for k, v in headers.items()} + except Exception: + return {} + + class UrllibHttp: def request( self, method: str, url: str, payload: dict[str, Any], headers: dict[str, str] @@ -47,18 +63,21 @@ class UrllibHttp: req = urllib.request.Request(url, data=data, method=method) for key, value in headers.items(): req.add_header(key, value) + resp_headers: dict[str, str] = {} try: with urllib.request.urlopen(req, timeout=15) as res: raw = res.read().decode("utf-8", errors="replace") status = getattr(res, "status", 200) + resp_headers = _header_map(res.headers) except urllib.error.HTTPError as exc: raw = exc.read().decode("utf-8", errors="replace") status = exc.code + resp_headers = _header_map(exc.headers) try: body = json.loads(raw) if raw else {} except json.JSONDecodeError: body = {"error": raw} - return _UrllibResp(status, body, raw) + return _UrllibResp(status, body, raw, resp_headers) def load_auth_token() -> str: diff --git a/src/verae_mcp_timestamping_server/ledger.py b/src/verae_mcp_timestamping_server/ledger.py index e06986f..554b771 100644 --- a/src/verae_mcp_timestamping_server/ledger.py +++ b/src/verae_mcp_timestamping_server/ledger.py @@ -218,14 +218,9 @@ class RoutingLedger: org_id: str = "", ) -> list[Receipt]: if scope == "global": - receipts = await self.global_ledger.stamp( + return await self.global_ledger.stamp( sha256, scope=scope, cube_id=cube_id, org_id=org_id ) - remember = getattr(self.local, "remember", None) - if callable(remember): - for rec in receipts: - remember(rec) - return receipts return await self.local.stamp( sha256, scope=scope, cube_id=cube_id, org_id=org_id ) diff --git a/tests/test_global_client.py b/tests/test_global_client.py index b1188b1..23239e2 100644 --- a/tests/test_global_client.py +++ b/tests/test_global_client.py @@ -13,6 +13,7 @@ class _Resp: self.status_code = status_code self.body = body self.text = str(body) + self.headers = {"Content-Type": "application/json"} def json(self): return self.body @@ -97,7 +98,7 @@ async def test_routing_sends_only_global_scope_to_central(): assert http.calls[0][1].endswith("/api/timestamp") cached = await routed.hash_report(SHA256_EMPTY, want_scope="global") - assert cached[0].receipt_id == "job-1" + assert cached == [] weak = await routed.verify(local_rec.receipt_id, want_scope="global") assert weak.valid is False diff --git a/transaction-log-test.md b/transaction-log-test.md new file mode 100644 index 0000000..0013efe --- /dev/null +++ b/transaction-log-test.md @@ -0,0 +1,2299 @@ +# transaction-log-test + +20 global `/stamp` calls of the same SHA-256 with **no local cache**. +Authorization bearer values are redacted (`len=` only). + +- Started (UTC of write): `2026-09-20T14:30:22.431542Z` +- Digest: `295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166` (SHA-256 of bytes `/stamp`) +- Unique `receipt_id` count: **20** +- Same receipt every time: **False** + +## Unique receipt ids + +- `QmQ2a3CpSyK2rzY7TqJeg9vs9JcPwjp2DxDvtaKVHtz8LA` +- `QmSJKvxm58jeXSLARZqm9se6xbGb5H4Sc3unvHCob6ya2J` +- `QmSX2ijRBdgBaim59XkTkvm5usDdjoWqwAG3agVVpu8TRz` +- `QmUQvwPFcVqTBEK3W5n1rgxbUpxBtUq2i2tBEv1ok71gLA` +- `QmWPowxp4SaW7cUcCqCD1oCtCHdtA6Ah3TXX9AcH88CBY4` +- `QmXCyXSMPnwc2FXuvqpXapBuf4TZnTQWephssbNDtncKbd` +- `QmXxd2UgFBv6o24NN22RkSiUMyZZwAnDvyNJ6JpPJ7VDq5` +- `QmYHKfKS3L6FspRECfeonYbnp3zGSEAmoN7Ssu4KxSw31o` +- `QmZ1A3jsJPSDuT4BocZWnF1HtKb2uxof5igZ5fW7gx8UM7` +- `Qma6D2ZBCbwmMZdeDYbhCmThKUePfW8KWBpq4JjEdxFJd3` +- `QmaYbtUdTNT4fpF4xjxhiXt7Vq6EWstd8GABo8VJwmus9m` +- `QmbG83oDbWLq2P7mNGnvXs86fwbcd151GhsV4A96bEMpxb` +- `QmbgnU9q3R7khhffVnnrn8WS81igWoWrBtg57RqdMAbq3c` +- `QmbmsWJyp3dypiWfVigAhqEiun7Tm6gMjmbdCoizwYHR5W` +- `QmbnG1YouuLStfeYaUzPbtTXWNNCVRFfEPyFdDdmC1tu1b` +- `Qmdm1HyTCiVNugmKBnHxZ9TaT59Fv8qq2eknbZc83PuT8W` +- `QmesXgJmYryTfnayDGJMFFf8eQxXTdhMzCs7nBjTsHfUjM` +- `QmfAiaRvMvRwsAe5UWEyCtGhhe3AJYZfqT8BNXRJFUPXMg` +- `QmfJhptJyRmP52MkuPFLK97jjZZni6fueDzqMkz4bVyLXs` +- `QmfNEHowS6edACop4EJnAiixGY673cDyojzDC755mR8tuK` + +## Rounds + +| n | at (UTC) | submit ms | receipt_id | error | +|---|---|---|---|---| +| 1 | 2026-09-20T14:30:14.242052Z | 531.491 | `QmWPowxp4SaW7cUcCqCD1oCtCHdtA6Ah3TXX9AcH88CBY4` | | +| 2 | 2026-09-20T14:30:14.773565Z | 379.02 | `QmfJhptJyRmP52MkuPFLK97jjZZni6fueDzqMkz4bVyLXs` | | +| 3 | 2026-09-20T14:30:15.152583Z | 391.59 | `QmaYbtUdTNT4fpF4xjxhiXt7Vq6EWstd8GABo8VJwmus9m` | | +| 4 | 2026-09-20T14:30:15.544177Z | 443.957 | `QmXCyXSMPnwc2FXuvqpXapBuf4TZnTQWephssbNDtncKbd` | | +| 5 | 2026-09-20T14:30:15.988142Z | 387.114 | `QmfAiaRvMvRwsAe5UWEyCtGhhe3AJYZfqT8BNXRJFUPXMg` | | +| 6 | 2026-09-20T14:30:16.375261Z | 395.904 | `QmSX2ijRBdgBaim59XkTkvm5usDdjoWqwAG3agVVpu8TRz` | | +| 7 | 2026-09-20T14:30:16.771166Z | 425.627 | `QmQ2a3CpSyK2rzY7TqJeg9vs9JcPwjp2DxDvtaKVHtz8LA` | | +| 8 | 2026-09-20T14:30:17.196795Z | 385.94 | `QmZ1A3jsJPSDuT4BocZWnF1HtKb2uxof5igZ5fW7gx8UM7` | | +| 9 | 2026-09-20T14:30:17.582736Z | 383.577 | `QmXxd2UgFBv6o24NN22RkSiUMyZZwAnDvyNJ6JpPJ7VDq5` | | +| 10 | 2026-09-20T14:30:17.966322Z | 371.527 | `QmYHKfKS3L6FspRECfeonYbnp3zGSEAmoN7Ssu4KxSw31o` | | +| 11 | 2026-09-20T14:30:18.337896Z | 383.091 | `QmSJKvxm58jeXSLARZqm9se6xbGb5H4Sc3unvHCob6ya2J` | | +| 12 | 2026-09-20T14:30:18.720951Z | 372.797 | `QmbG83oDbWLq2P7mNGnvXs86fwbcd151GhsV4A96bEMpxb` | | +| 13 | 2026-09-20T14:30:19.093755Z | 382.17 | `QmbmsWJyp3dypiWfVigAhqEiun7Tm6gMjmbdCoizwYHR5W` | | +| 14 | 2026-09-20T14:30:19.475927Z | 510.973 | `QmbgnU9q3R7khhffVnnrn8WS81igWoWrBtg57RqdMAbq3c` | | +| 15 | 2026-09-20T14:30:19.986906Z | 424.994 | `Qmdm1HyTCiVNugmKBnHxZ9TaT59Fv8qq2eknbZc83PuT8W` | | +| 16 | 2026-09-20T14:30:20.411901Z | 418.01 | `QmUQvwPFcVqTBEK3W5n1rgxbUpxBtUq2i2tBEv1ok71gLA` | | +| 17 | 2026-09-20T14:30:20.829920Z | 404.807 | `QmesXgJmYryTfnayDGJMFFf8eQxXTdhMzCs7nBjTsHfUjM` | | +| 18 | 2026-09-20T14:30:21.234725Z | 390.546 | `QmfNEHowS6edACop4EJnAiixGY673cDyojzDC755mR8tuK` | | +| 19 | 2026-09-20T14:30:21.625273Z | 437.059 | `QmbnG1YouuLStfeYaUzPbtTXWNNCVRFfEPyFdDdmC1tu1b` | | +| 20 | 2026-09-20T14:30:22.062334Z | 369.17 | `Qma6D2ZBCbwmMZdeDYbhCmThKUePfW8KWBpq4JjEdxFJd3` | | + +## Function profile + +| function | calls | total ms | min | max | mean | +|---|---|---|---|---|---| +| `GlobalClient.from_env` | 1 | 0.008 | 0.008 | 0.008 | 0.008 | +| `GlobalClient.submit` | 20 | 8187.975 | 369.134 | 531.391 | 409.399 | +| `http.GET` | 20 | 3913.502 | 179.658 | 228.680 | 195.675 | +| `http.POST` | 20 | 4268.501 | 179.071 | 304.743 | 213.425 | +| `load_auth_token` | 1 | 0.216 | 0.216 | 0.216 | 0.216 | +| `validate_sha256` | 1 | 0.004 | 0.004 | 0.004 | 0.004 | + +### Every internal span + +| at (UTC) | function | ms | extra | +|---|---|---|---| +| 2026-09-20T14:30:14.241817Z | `load_auth_token` | 0.216 | | +| 2026-09-20T14:30:14.242038Z | `GlobalClient.from_env` | 0.008 | | +| 2026-09-20T14:30:14.242046Z | `validate_sha256` | 0.004 | | +| 2026-09-20T14:30:14.242058Z | `http.POST` | 302.202 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:14.544312Z | `http.GET` | 228.68 | {"url": "https://api.veraetime.net/api/status/6e0ccdd2-a8eb-48bd-98de-cc9a2109920f"} | +| 2026-09-20T14:30:14.242054Z | `GlobalClient.submit` | 531.391 | {"iteration": 1} | +| 2026-09-20T14:30:14.773616Z | `http.POST` | 189.613 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:14.963449Z | `http.GET` | 189.03 | {"url": "https://api.veraetime.net/api/status/ef536b4a-5751-4624-a03d-1f0eccf3175f"} | +| 2026-09-20T14:30:14.773597Z | `GlobalClient.submit` | 378.971 | {"iteration": 2} | +| 2026-09-20T14:30:15.152599Z | `http.POST` | 204.377 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:15.357049Z | `http.GET` | 186.931 | {"url": "https://api.veraetime.net/api/status/30e7ed66-b253-49ca-aa2a-cd7d0fbb69c2"} | +| 2026-09-20T14:30:15.152592Z | `GlobalClient.submit` | 391.547 | {"iteration": 3} | +| 2026-09-20T14:30:15.544204Z | `http.POST` | 244.753 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:15.789187Z | `http.GET` | 198.704 | {"url": "https://api.veraetime.net/api/status/f57e1e92-c92a-4852-b381-18cdd10479c4"} | +| 2026-09-20T14:30:15.544191Z | `GlobalClient.submit` | 443.901 | {"iteration": 4} | +| 2026-09-20T14:30:15.988222Z | `http.POST` | 187.281 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:16.175558Z | `http.GET` | 199.503 | {"url": "https://api.veraetime.net/api/status/86c749ff-daa7-47fc-9044-f5944cd452ec"} | +| 2026-09-20T14:30:15.988204Z | `GlobalClient.submit` | 387.016 | {"iteration": 5} | +| 2026-09-20T14:30:16.375297Z | `http.POST` | 205.205 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:16.580617Z | `http.GET` | 190.413 | {"url": "https://api.veraetime.net/api/status/9a8c16e2-5f56-49a5-bdfc-1b2be07e014f"} | +| 2026-09-20T14:30:16.375283Z | `GlobalClient.submit` | 395.857 | {"iteration": 6} | +| 2026-09-20T14:30:16.771187Z | `http.POST` | 215.295 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:16.986543Z | `http.GET` | 210.132 | {"url": "https://api.veraetime.net/api/status/e873c447-d235-497e-a383-39e42e458f5a"} | +| 2026-09-20T14:30:16.771179Z | `GlobalClient.submit` | 425.593 | {"iteration": 7} | +| 2026-09-20T14:30:17.196819Z | `http.POST` | 200.747 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:17.397647Z | `http.GET` | 184.957 | {"url": "https://api.veraetime.net/api/status/02753659-50af-4495-bc09-42945ac3728a"} | +| 2026-09-20T14:30:17.196809Z | `GlobalClient.submit` | 385.903 | {"iteration": 8} | +| 2026-09-20T14:30:17.582808Z | `http.POST` | 188.285 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:17.771203Z | `http.GET` | 194.906 | {"url": "https://api.veraetime.net/api/status/56959676-b894-43dd-9e4b-60f2a77c2bb5"} | +| 2026-09-20T14:30:17.582784Z | `GlobalClient.submit` | 383.492 | {"iteration": 9} | +| 2026-09-20T14:30:17.966369Z | `http.POST` | 186.912 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:18.153330Z | `http.GET` | 184.089 | {"url": "https://api.veraetime.net/api/status/36be94e2-798d-4b20-aaf7-13234156da23"} | +| 2026-09-20T14:30:17.966351Z | `GlobalClient.submit` | 371.233 | {"iteration": 10} | +| 2026-09-20T14:30:18.337949Z | `http.POST` | 202.029 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:18.540198Z | `http.GET` | 180.631 | {"url": "https://api.veraetime.net/api/status/1422dec5-67cd-43cf-a828-aff0533cf42c"} | +| 2026-09-20T14:30:18.337934Z | `GlobalClient.submit` | 382.992 | {"iteration": 11} | +| 2026-09-20T14:30:18.720974Z | `http.POST` | 179.071 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:18.900173Z | `http.GET` | 193.195 | {"url": "https://api.veraetime.net/api/status/8f9a876b-e922-422a-8f89-34728b921512"} | +| 2026-09-20T14:30:18.720964Z | `GlobalClient.submit` | 372.747 | {"iteration": 12} | +| 2026-09-20T14:30:19.093799Z | `http.POST` | 192.369 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:19.286239Z | `http.GET` | 189.551 | {"url": "https://api.veraetime.net/api/status/5cc0f22c-590f-46f2-8aab-504e375a75be"} | +| 2026-09-20T14:30:19.093783Z | `GlobalClient.submit` | 382.119 | {"iteration": 13} | +| 2026-09-20T14:30:19.475949Z | `http.POST` | 304.743 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:19.780777Z | `http.GET` | 205.784 | {"url": "https://api.veraetime.net/api/status/b76a4d95-4c4a-4bb7-bae7-1c749127f6ae"} | +| 2026-09-20T14:30:19.475940Z | `GlobalClient.submit` | 510.921 | {"iteration": 14} | +| 2026-09-20T14:30:19.986970Z | `http.POST` | 245.054 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:20.232101Z | `http.GET` | 179.658 | {"url": "https://api.veraetime.net/api/status/6c014332-a8cb-478e-a781-d1102b2e3685"} | +| 2026-09-20T14:30:19.986953Z | `GlobalClient.submit` | 424.923 | {"iteration": 15} | +| 2026-09-20T14:30:20.411922Z | `http.POST` | 198.849 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:20.610825Z | `http.GET` | 218.714 | {"url": "https://api.veraetime.net/api/status/e820eea0-272c-451b-bbc9-ebfdbcb03a88"} | +| 2026-09-20T14:30:20.411913Z | `GlobalClient.submit` | 417.952 | {"iteration": 16} | +| 2026-09-20T14:30:20.829977Z | `http.POST` | 199.853 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:21.029954Z | `http.GET` | 204.677 | {"url": "https://api.veraetime.net/api/status/e621367e-235f-4744-87a4-1e66d4485f7e"} | +| 2026-09-20T14:30:20.829961Z | `GlobalClient.submit` | 404.749 | {"iteration": 17} | +| 2026-09-20T14:30:21.234741Z | `http.POST` | 193.844 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:21.428688Z | `http.GET` | 196.453 | {"url": "https://api.veraetime.net/api/status/254b13a7-133a-49c5-ab8e-70b82b7c914b"} | +| 2026-09-20T14:30:21.234735Z | `GlobalClient.submit` | 390.511 | {"iteration": 18} | +| 2026-09-20T14:30:21.625295Z | `http.POST` | 240.523 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:21.865943Z | `http.GET` | 196.241 | {"url": "https://api.veraetime.net/api/status/9293e62b-3a23-4c4e-ae56-b7aaaf9924e1"} | +| 2026-09-20T14:30:21.625286Z | `GlobalClient.submit` | 437.023 | {"iteration": 19} | +| 2026-09-20T14:30:22.062354Z | `http.POST` | 187.496 | {"url": "https://api.veraetime.net/api/timestamp"} | +| 2026-09-20T14:30:22.250056Z | `http.GET` | 181.253 | {"url": "https://api.veraetime.net/api/status/49c0dfa9-848e-484d-bdc5-862978f5a805"} | +| 2026-09-20T14:30:22.062347Z | `GlobalClient.submit` | 369.134 | {"iteration": 20} | + +## Network exchanges + +### Exchange 1 + +#### Request + +- Time/Date: `2026-09-20T14:30:14.242058Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:14.544263Z` +- Status: `202` +- Round-trip: `302.202 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:14 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "6e0ccdd2-a8eb-48bd-98de-cc9a2109920f" +} +``` + +### Exchange 2 + +#### Request + +- Time/Date: `2026-09-20T14:30:14.544312Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/6e0ccdd2-a8eb-48bd-98de-cc9a2109920f` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:14.773039Z` +- Status: `200` +- Round-trip: `228.68 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:14 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "6e0ccdd2-a8eb-48bd-98de-cc9a2109920f", + "status": "completed", + "result": "QmWPowxp4SaW7cUcCqCD1oCtCHdtA6Ah3TXX9AcH88CBY4", + "completedAt": "2026-09-20T14:30:14.588914762Z" +} +``` + +### Exchange 3 + +#### Request + +- Time/Date: `2026-09-20T14:30:14.773616Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:14.963245Z` +- Status: `202` +- Round-trip: `189.613 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:14 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "ef536b4a-5751-4624-a03d-1f0eccf3175f" +} +``` + +### Exchange 4 + +#### Request + +- Time/Date: `2026-09-20T14:30:14.963449Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/ef536b4a-5751-4624-a03d-1f0eccf3175f` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:15.152512Z` +- Status: `200` +- Round-trip: `189.03 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:15 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "ef536b4a-5751-4624-a03d-1f0eccf3175f", + "status": "completed", + "result": "QmfJhptJyRmP52MkuPFLK97jjZZni6fueDzqMkz4bVyLXs", + "completedAt": "2026-09-20T14:30:15.007019081Z" +} +``` + +### Exchange 5 + +#### Request + +- Time/Date: `2026-09-20T14:30:15.152599Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:15.356983Z` +- Status: `202` +- Round-trip: `204.377 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:15 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "30e7ed66-b253-49ca-aa2a-cd7d0fbb69c2" +} +``` + +### Exchange 6 + +#### Request + +- Time/Date: `2026-09-20T14:30:15.357049Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/30e7ed66-b253-49ca-aa2a-cd7d0fbb69c2` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:15.543995Z` +- Status: `200` +- Round-trip: `186.931 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "171", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:15 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "30e7ed66-b253-49ca-aa2a-cd7d0fbb69c2", + "status": "completed", + "result": "QmaYbtUdTNT4fpF4xjxhiXt7Vq6EWstd8GABo8VJwmus9m", + "completedAt": "2026-09-20T14:30:15.39821017Z" +} +``` + +### Exchange 7 + +#### Request + +- Time/Date: `2026-09-20T14:30:15.544204Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:15.788968Z` +- Status: `202` +- Round-trip: `244.753 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:15 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "f57e1e92-c92a-4852-b381-18cdd10479c4" +} +``` + +### Exchange 8 + +#### Request + +- Time/Date: `2026-09-20T14:30:15.789187Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/f57e1e92-c92a-4852-b381-18cdd10479c4` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:15.987928Z` +- Status: `200` +- Round-trip: `198.704 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:16 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "f57e1e92-c92a-4852-b381-18cdd10479c4", + "status": "completed", + "result": "QmXCyXSMPnwc2FXuvqpXapBuf4TZnTQWephssbNDtncKbd", + "completedAt": "2026-09-20T14:30:15.838544489Z" +} +``` + +### Exchange 9 + +#### Request + +- Time/Date: `2026-09-20T14:30:15.988222Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:16.175514Z` +- Status: `202` +- Round-trip: `187.281 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:16 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "86c749ff-daa7-47fc-9044-f5944cd452ec" +} +``` + +### Exchange 10 + +#### Request + +- Time/Date: `2026-09-20T14:30:16.175558Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/86c749ff-daa7-47fc-9044-f5944cd452ec` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:16.375074Z` +- Status: `200` +- Round-trip: `199.503 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:16 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "86c749ff-daa7-47fc-9044-f5944cd452ec", + "status": "completed", + "result": "QmfAiaRvMvRwsAe5UWEyCtGhhe3AJYZfqT8BNXRJFUPXMg", + "completedAt": "2026-09-20T14:30:16.230477866Z" +} +``` + +### Exchange 11 + +#### Request + +- Time/Date: `2026-09-20T14:30:16.375297Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:16.580515Z` +- Status: `202` +- Round-trip: `205.205 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:16 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "9a8c16e2-5f56-49a5-bdfc-1b2be07e014f" +} +``` + +### Exchange 12 + +#### Request + +- Time/Date: `2026-09-20T14:30:16.580617Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/9a8c16e2-5f56-49a5-bdfc-1b2be07e014f` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:16.771051Z` +- Status: `200` +- Round-trip: `190.413 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:16 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "9a8c16e2-5f56-49a5-bdfc-1b2be07e014f", + "status": "completed", + "result": "QmSX2ijRBdgBaim59XkTkvm5usDdjoWqwAG3agVVpu8TRz", + "completedAt": "2026-09-20T14:30:16.621983457Z" +} +``` + +### Exchange 13 + +#### Request + +- Time/Date: `2026-09-20T14:30:16.771187Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:16.986488Z` +- Status: `202` +- Round-trip: `215.295 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:17 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "e873c447-d235-497e-a383-39e42e458f5a" +} +``` + +### Exchange 14 + +#### Request + +- Time/Date: `2026-09-20T14:30:16.986543Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/e873c447-d235-497e-a383-39e42e458f5a` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:17.196688Z` +- Status: `200` +- Round-trip: `210.132 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:17 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "e873c447-d235-497e-a383-39e42e458f5a", + "status": "completed", + "result": "QmQ2a3CpSyK2rzY7TqJeg9vs9JcPwjp2DxDvtaKVHtz8LA", + "completedAt": "2026-09-20T14:30:17.032398381Z" +} +``` + +### Exchange 15 + +#### Request + +- Time/Date: `2026-09-20T14:30:17.196819Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:17.397576Z` +- Status: `202` +- Round-trip: `200.747 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:17 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "02753659-50af-4495-bc09-42945ac3728a" +} +``` + +### Exchange 16 + +#### Request + +- Time/Date: `2026-09-20T14:30:17.397647Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/02753659-50af-4495-bc09-42945ac3728a` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:17.582617Z` +- Status: `200` +- Round-trip: `184.957 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:17 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "02753659-50af-4495-bc09-42945ac3728a", + "status": "completed", + "result": "QmZ1A3jsJPSDuT4BocZWnF1HtKb2uxof5igZ5fW7gx8UM7", + "completedAt": "2026-09-20T14:30:17.459820055Z" +} +``` + +### Exchange 17 + +#### Request + +- Time/Date: `2026-09-20T14:30:17.582808Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:17.771105Z` +- Status: `202` +- Round-trip: `188.285 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:17 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "56959676-b894-43dd-9e4b-60f2a77c2bb5" +} +``` + +### Exchange 18 + +#### Request + +- Time/Date: `2026-09-20T14:30:17.771203Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/56959676-b894-43dd-9e4b-60f2a77c2bb5` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:17.966125Z` +- Status: `200` +- Round-trip: `194.906 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:17 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "56959676-b894-43dd-9e4b-60f2a77c2bb5", + "status": "completed", + "result": "QmXxd2UgFBv6o24NN22RkSiUMyZZwAnDvyNJ6JpPJ7VDq5", + "completedAt": "2026-09-20T14:30:17.824827282Z" +} +``` + +### Exchange 19 + +#### Request + +- Time/Date: `2026-09-20T14:30:17.966369Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:18.153290Z` +- Status: `202` +- Round-trip: `186.912 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:18 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "36be94e2-798d-4b20-aaf7-13234156da23" +} +``` + +### Exchange 20 + +#### Request + +- Time/Date: `2026-09-20T14:30:18.153330Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/36be94e2-798d-4b20-aaf7-13234156da23` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:18.337432Z` +- Status: `200` +- Round-trip: `184.089 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:18 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "36be94e2-798d-4b20-aaf7-13234156da23", + "status": "completed", + "result": "QmYHKfKS3L6FspRECfeonYbnp3zGSEAmoN7Ssu4KxSw31o", + "completedAt": "2026-09-20T14:30:18.212545446Z" +} +``` + +### Exchange 21 + +#### Request + +- Time/Date: `2026-09-20T14:30:18.337949Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:18.540093Z` +- Status: `202` +- Round-trip: `202.029 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:18 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "1422dec5-67cd-43cf-a828-aff0533cf42c" +} +``` + +### Exchange 22 + +#### Request + +- Time/Date: `2026-09-20T14:30:18.540198Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/1422dec5-67cd-43cf-a828-aff0533cf42c` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:18.720845Z` +- Status: `200` +- Round-trip: `180.631 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:18 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "1422dec5-67cd-43cf-a828-aff0533cf42c", + "status": "completed", + "result": "QmSJKvxm58jeXSLARZqm9se6xbGb5H4Sc3unvHCob6ya2J", + "completedAt": "2026-09-20T14:30:18.584121861Z" +} +``` + +### Exchange 23 + +#### Request + +- Time/Date: `2026-09-20T14:30:18.720974Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:18.900063Z` +- Status: `202` +- Round-trip: `179.071 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:18 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "8f9a876b-e922-422a-8f89-34728b921512" +} +``` + +### Exchange 24 + +#### Request + +- Time/Date: `2026-09-20T14:30:18.900173Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/8f9a876b-e922-422a-8f89-34728b921512` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:19.093557Z` +- Status: `200` +- Round-trip: `193.195 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:19 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "8f9a876b-e922-422a-8f89-34728b921512", + "status": "completed", + "result": "QmbG83oDbWLq2P7mNGnvXs86fwbcd151GhsV4A96bEMpxb", + "completedAt": "2026-09-20T14:30:18.952168848Z" +} +``` + +### Exchange 25 + +#### Request + +- Time/Date: `2026-09-20T14:30:19.093799Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:19.286178Z` +- Status: `202` +- Round-trip: `192.369 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:19 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "5cc0f22c-590f-46f2-8aab-504e375a75be" +} +``` + +### Exchange 26 + +#### Request + +- Time/Date: `2026-09-20T14:30:19.286239Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/5cc0f22c-590f-46f2-8aab-504e375a75be` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:19.475801Z` +- Status: `200` +- Round-trip: `189.551 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:19 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "5cc0f22c-590f-46f2-8aab-504e375a75be", + "status": "completed", + "result": "QmbmsWJyp3dypiWfVigAhqEiun7Tm6gMjmbdCoizwYHR5W", + "completedAt": "2026-09-20T14:30:19.341798466Z" +} +``` + +### Exchange 27 + +#### Request + +- Time/Date: `2026-09-20T14:30:19.475949Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:19.780700Z` +- Status: `202` +- Round-trip: `304.743 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:19 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "b76a4d95-4c4a-4bb7-bae7-1c749127f6ae" +} +``` + +### Exchange 28 + +#### Request + +- Time/Date: `2026-09-20T14:30:19.780777Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/b76a4d95-4c4a-4bb7-bae7-1c749127f6ae` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:19.986577Z` +- Status: `200` +- Round-trip: `205.784 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:20 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "b76a4d95-4c4a-4bb7-bae7-1c749127f6ae", + "status": "completed", + "result": "QmbgnU9q3R7khhffVnnrn8WS81igWoWrBtg57RqdMAbq3c", + "completedAt": "2026-09-20T14:30:19.840959347Z" +} +``` + +### Exchange 29 + +#### Request + +- Time/Date: `2026-09-20T14:30:19.986970Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:20.232034Z` +- Status: `202` +- Round-trip: `245.054 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:20 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "6c014332-a8cb-478e-a781-d1102b2e3685" +} +``` + +### Exchange 30 + +#### Request + +- Time/Date: `2026-09-20T14:30:20.232101Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/6c014332-a8cb-478e-a781-d1102b2e3685` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:20.411782Z` +- Status: `200` +- Round-trip: `179.658 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:20 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "6c014332-a8cb-478e-a781-d1102b2e3685", + "status": "completed", + "result": "Qmdm1HyTCiVNugmKBnHxZ9TaT59Fv8qq2eknbZc83PuT8W", + "completedAt": "2026-09-20T14:30:20.278903094Z" +} +``` + +### Exchange 31 + +#### Request + +- Time/Date: `2026-09-20T14:30:20.411922Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:20.610777Z` +- Status: `202` +- Round-trip: `198.849 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:20 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "e820eea0-272c-451b-bbc9-ebfdbcb03a88" +} +``` + +### Exchange 32 + +#### Request + +- Time/Date: `2026-09-20T14:30:20.610825Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/e820eea0-272c-451b-bbc9-ebfdbcb03a88` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:20.829549Z` +- Status: `200` +- Round-trip: `218.714 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:20 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "e820eea0-272c-451b-bbc9-ebfdbcb03a88", + "status": "completed", + "result": "QmUQvwPFcVqTBEK3W5n1rgxbUpxBtUq2i2tBEv1ok71gLA", + "completedAt": "2026-09-20T14:30:20.649245948Z" +} +``` + +### Exchange 33 + +#### Request + +- Time/Date: `2026-09-20T14:30:20.829977Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:21.029845Z` +- Status: `202` +- Round-trip: `199.853 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:21 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "e621367e-235f-4744-87a4-1e66d4485f7e" +} +``` + +### Exchange 34 + +#### Request + +- Time/Date: `2026-09-20T14:30:21.029954Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/e621367e-235f-4744-87a4-1e66d4485f7e` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:21.234649Z` +- Status: `200` +- Round-trip: `204.677 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:21 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "e621367e-235f-4744-87a4-1e66d4485f7e", + "status": "completed", + "result": "QmesXgJmYryTfnayDGJMFFf8eQxXTdhMzCs7nBjTsHfUjM", + "completedAt": "2026-09-20T14:30:21.079470407Z" +} +``` + +### Exchange 35 + +#### Request + +- Time/Date: `2026-09-20T14:30:21.234741Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:21.428594Z` +- Status: `202` +- Round-trip: `193.844 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:21 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "254b13a7-133a-49c5-ab8e-70b82b7c914b" +} +``` + +### Exchange 36 + +#### Request + +- Time/Date: `2026-09-20T14:30:21.428688Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/254b13a7-133a-49c5-ab8e-70b82b7c914b` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:21.625157Z` +- Status: `200` +- Round-trip: `196.453 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:21 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "254b13a7-133a-49c5-ab8e-70b82b7c914b", + "status": "completed", + "result": "QmfNEHowS6edACop4EJnAiixGY673cDyojzDC755mR8tuK", + "completedAt": "2026-09-20T14:30:21.477008934Z" +} +``` + +### Exchange 37 + +#### Request + +- Time/Date: `2026-09-20T14:30:21.625295Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:21.865827Z` +- Status: `202` +- Round-trip: `240.523 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:21 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "9293e62b-3a23-4c4e-ae56-b7aaaf9924e1" +} +``` + +### Exchange 38 + +#### Request + +- Time/Date: `2026-09-20T14:30:21.865943Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/9293e62b-3a23-4c4e-ae56-b7aaaf9924e1` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:22.062223Z` +- Status: `200` +- Round-trip: `196.241 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:22 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "9293e62b-3a23-4c4e-ae56-b7aaaf9924e1", + "status": "completed", + "result": "QmbnG1YouuLStfeYaUzPbtTXWNNCVRFfEPyFdDdmC1tu1b", + "completedAt": "2026-09-20T14:30:21.903999121Z" +} +``` + +### Exchange 39 + +#### Request + +- Time/Date: `2026-09-20T14:30:22.062354Z` +- METHOD: `POST` +- URL: `https://api.veraetime.net/api/timestamp` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +{ + "data": "295825da190539caf51bec31f78603cc69e77e076b9e5dba8f24d2cd707cf166", + "hashAlg": "SHA256" +} +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:22.249863Z` +- Status: `202` +- Round-trip: `187.496 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "49", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:22 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "jobId": "49c0dfa9-848e-484d-bdc5-862978f5a805" +} +``` + +### Exchange 40 + +#### Request + +- Time/Date: `2026-09-20T14:30:22.250056Z` +- METHOD: `GET` +- URL: `https://api.veraetime.net/api/status/49c0dfa9-848e-484d-bdc5-862978f5a805` +- Headers: + +```json +{ + "Content-Type": "application/json", + "Authorization": "Bearer [redacted len=293]" +} +``` + +- Body: + +```json +null +``` + +#### Response + +- Time/Date: `2026-09-20T14:30:22.431378Z` +- Status: `200` +- Round-trip: `181.253 ms` +- Headers: + +```json +{ + "Access-Control-Allow-Headers": "Content-Type, Authorization", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Origin": "*", + "Alt-Svc": "h3=\":443\"; ma=2592000", + "Content-Length": "172", + "Content-Type": "application/json", + "Date": "Sun, 20 Sep 2026 14:30:22 GMT", + "Via": "1.1 Caddy", + "Connection": "close" +} +``` + +- Body: + +```json +{ + "id": "49c0dfa9-848e-484d-bdc5-862978f5a805", + "status": "completed", + "result": "Qma6D2ZBCbwmMZdeDYbhCmThKUePfW8KWBpq4JjEdxFJd3", + "completedAt": "2026-09-20T14:30:22.305857904Z" +} +``` +