[← Docs](/docs/)  |  [Home](/)

# RunProof – Execution Proof API v0.1.1（凍結版：freeze_v2）

## Related docs

- API Reference: /ref/api_reference_v0.1.1.md
- Data Input Policy: /policy/data_input_policy_v1.md
- Pricing / plan docs: /plan/

- Doc-Version: freeze_v2 (targets API v0.1.1)
- Last-Updated: 2026-03-17
- Status: 本番公開向け“最小仕様”（仕様変更時は **新バージョン文書を追加**し、古い文書は履歴として残します）

---

## このページについて

RunProof は、**「計算・処理に改ざん防止用のレシート（実行証明）を付けるための API」**です。

この文書（freeze）は、第三者が再確認しやすいように、次を **公開仕様として凍結**します。

- 何を保証するか / 保証しないか
- 公開される入口（Docs / OpenAPI / API Base）
- キー受け取り（Claim）の公開仕様
- 運用上の安全条件（入力禁止、秘密の扱い、公開範囲）

**APIのフィールド名やレスポンスの詳細は、API Reference を参照してください。**

---

## 1. RunProof が保証すること / しないこと

### 保証すること（暗号的に確認できること）

1) **レシートの改ざん防止**
- レシートはハッシュ化され、署名されます。
- 公開鍵（`/v1/public-key`）で、RunProof が発行したことを検証できます。

2) **入力ハッシュの整合性**
- `input_hash`（`sha256:<hex>`）は、ユーザー側で計算したハッシュと照合できます。
- 一致すれば「その要約（入力条件）が、発行時と同一だった」ことを確認できます。

3) **チェーン（任意）**
- `prev_receipt_hash` により、レシート同士を連結できます（分岐も追跡可能）。

### 保証しないこと

- 計算結果の妥当性（正しい/誤り、品質、性能など）
- 入力JSONの完全性（不足・誤りがないこと）

RunProof が扱うのは、あくまで **「この要約が、この時点で、この形で存在していた」** という事実の証明です。

---

## 2. 公開入口（固定）

- Docs（Pages）: `https://runproof-chamia.pages.dev/`
- OpenAPI: `https://runproof-chamia.pages.dev/ref/openapi.yaml`
- API Base（Workers）: `https://runproof.chamia-20260215.workers.dev`

稼働確認：
- `GET /health`
- `GET /v1/public-key`

---

## 3. 入力データの制限（必読）

RunProof は **ハッシュ値＋短い補助情報（tags）** を扱う「低出力システム」です。

- **生データ（本文）を送らない**
- **PII / 認証情報 / 機密情報を送らない**

禁止事項の詳細は Data Input Policy を参照してください：
- `/policy/data_input_policy_v1.md`

---

## 4. APIキーの受け取り（Claim）

RunProof は、購入後に API キーを受け取るための公開導線を提供します。

### 4.1 Paid（Stripe購入）

- Pages: `/claim/`
- 方式：URLフラグメントで `session_id` を渡し、JS が `POST /v1/claim` を呼びます。

例：

```
/claim#session_id=cs_live_...
```

### 4.2 Free

- Pages: `/free/claim/`
- 方式：Turnstile（人間確認）→ `POST /v1/claim/free`

### 4.3 one-time reveal（Paid/Free 共通）

- **APIキーは一度しか表示されません（show=1 固定）**
- 二回目以降は `already_claimed` となり、同じキーは再表示されません
- 紛失時は「再購入」ではなく、運用手続きとして **新規発行（新キー）** が必要です

---

## 5. Cloudflare 手動運用（安全条件）

手動デプロイは **OAuth（`wrangler login`）統一**とし、次を運用ルールとして凍結します。

- `CLOUDFLARE_API_TOKEN` が存在する状態では **手動デプロイを行わない**（残留状態による事故を防ぐため）
- フローは **fail-fast**（残っていたら即停止）

---

## 6. 変更時の扱い（凍結の運用）

- freeze は **上書き修正しません**（v2, v3…として新規作成）
- 入口（Docs / Home / API）からは常に **最新 freeze** を指します
- 旧 freeze は履歴として残します
