{
  "service": "ReceiptSure",
  "available": true,
  "generated_at": "2026-09-19T19:06:43.362Z",
  "service_version": "0.1.0",
  "policy_version": "2026-09-19",
  "data_versions": {
    "denylist": "2026-08-03.1",
    "event_abis": "2026-09-19.1",
    "policy": "2026-09-19",
    "chain": "eip155:8453",
    "fee_plausibility_bps": "1000",
    "max_logs": "512",
    "decoded_events": "5"
  },
  "corpus_size": 65,
  "methodology": "Every case runs the same verification function a paying caller reaches, with no HTTP and no payment layer, against canned receipts and logs held in the corpus — so the suite is fully offline and a public endpoint being down cannot turn into a green build. Tiers run 1 (clean receipts that match a declared intent) to 5 (adversarial: drains hidden behind a matching payout, skims sized to look like fees, and batched movements split across events). Tier 2 exists specifically to measure false positives: legitimate receipts — router noise, multi-hop swaps, unrelated events — that must not be flagged. Tier 3 measures the opposite failure, cases where `unknown` is the correct answer and any confident verdict is wrong. False positives and false negatives are counted and reported separately, never averaged into one accuracy figure.",
  "metrics": {
    "pass_rate": 1,
    "passed": 65,
    "failed": 0,
    "tier_1_pass_rate": 1,
    "tier_1_cases": 12,
    "tier_2_pass_rate": 1,
    "tier_2_cases": 11,
    "tier_3_pass_rate": 1,
    "tier_3_cases": 9,
    "tier_4_pass_rate": 1,
    "tier_4_cases": 16,
    "tier_5_pass_rate": 1,
    "tier_5_cases": 17
  },
  "false_positives": 0,
  "false_negatives": 0,
  "latency_ms_p50": 0.057,
  "latency_ms_p95": 0.571,
  "limitations": [
    "The corpus is self-authored. It is not an independent benchmark and no third party has verified it.",
    "A verdict of allow means every movement you declared appears in the receipt exactly as declared. It is not a statement that the transaction was wise, fairly priced, or safe, and it says nothing about movements you did not declare.",
    "Native ETH transfers emit no event, so a receipt cannot evidence one. They are reported as unverifiable and the verdict is unknown; this service never infers a native transfer from the absence of a log.",
    "Transfers to addresses you did not declare are only judged when they leave the account that signed the transaction, or leave a declared sender in the asset you said it would send. A receipt does not say which addresses are yours, and a pool you named as paying you is a counterparty rather than your wallet, so its other movements are reported without a verdict rather than guessed at. A relayed transaction whose signer is a bundler narrows this further, to the assets you declared.",
    "The bundled denylist (2026-08-03.1) seeds only burn and null addresses, which are matters of arithmetic. Attributed scam entries come from ScamSniffer scam-database and MetaMask eth-phishing-detect and Well-known burn and null addresses through a scheduled refresh, so coverage is exactly as current as the shipped version.",
    "Latency figures are in-process timings from the eval run against canned receipts. They exclude network, TLS, payment verification, and real RPC latency, and are not a substitute for the published SLA."
  ],
  "disclaimer": "These figures are evidence from a versioned corpus, not a guarantee. Corpus composition and size are stated so the numbers can be interpreted and reproduced."
}