RunProof Series

Document Receipt(文書版)Document receipts for versioned documents

文書ファイル(各版)の digest に対して receipt を発行します。MVP では厳密系列は扱わず、弱いラベル(chain_group)に留めます。Issue receipts for document versions. MVP keeps only a weak chain_group label.

subject の定義

subject は「文書ファイルの各版そのもの」です。本文の正しさは扱いません。

プラン上の扱い

Series 3種は全プラン共通で利用できます。ただし Free は Free の利用上限(レート / カウンタ / 運用条件)の範囲で利用します。All three Series templates are available on every plan. Free can use them within Free limits.

最小 tags テンプレ

{
  "receipt_kind": "document",
  "tags": {
    "subject_name": "whitepaper_v2.pdf",
    "subject_type": "pdf",
    "subject_version": "v2",
    "chain_group": "whitepaper"
  }
}

chain_group は表示・関連付け用の弱いラベルです(MVPでは厳密系列にしません)。

保証 / 非保証

  • 保証:digest と tags に基づき receipt を生成し、署名し、検証できること。
  • 非保証:文書内容の真実性・法的有効性など。

receipt_kind の扱い

receipt_kind は用途テンプレ識別と冪等性安定化のために使いますが、署名・verify ロジックの分岐条件には用いません。Series は同じ receipts / verify 基盤の上に置く Docs/UI レイヤです。

サンプル(PowerShell)

公開配布物では scripts/examples/ を前提にしません。以下の最小例をそのまま PowerShell に貼り、文書版の digest を receipt_kind=document で送ります。

$BaseUrl = "https://runproof.chamia-20260215.workers.dev"
$ApiKey  = "rk_..."
$FilePath = ".\docs\whitepaper_v2.pdf"
$Version = "v2"
$ChainGroup = "whitepaper"

$hex = (Get-FileHash -Algorithm SHA256 $FilePath).Hash.ToLower()
$payload = @{
  input_hash   = "sha256:$hex"
  receipt_kind = "document"
  tags = @{
    template      = "document"
    subject_name  = [IO.Path]::GetFileName($FilePath)
    subject_type  = "pdf"
    doc_version   = $Version
    chain_group   = $ChainGroup
  }
} | ConvertTo-Json -Depth 6

$headers = @{ Authorization = "Bearer $ApiKey"; "Content-Type" = "application/json" }
Invoke-RestMethod -Method Post -Uri "$BaseUrl/v1/receipts" -Headers $headers -Body $payload