Ecosystem CTF · Observatory · Voting · Governance · API · GitHub

Methodology方法論

This document describes exactly what data the Cardano Delegation Observatory collects, how the values shown on the site are computed, what is deliberately not included, and how anyone can reproduce the published results from public data.本書は、Cardano Delegation Observatory が収集するデータ、サイト上に表示される値の算出方法、意図的に含めない項目、そして公開データから第三者が結果を再現する手順を、すべて記述する。

This page is the legitimacy core of the project. Every operational decision is documented here. If you find an inconsistency between this page and what the site shows, this page is the authoritative description; please open an issue.本ページはプロジェクトの正統性の核である。運用上の決定はすべてここに記録される。本ページとサイトの表示に齟齬があれば、本ページが正準の記述である。Issue で報告してほしい。

1. What this site does1. 本サイトが行うこと

The Cardano Delegation Observatory takes a daily snapshot of voting weight delegated to active Cardano DReps and publishes:Cardano Delegation Observatory は、現役の Cardano DRep に委任された投票権を日次でスナップショットとして取得し、以下を公開する。

All data is derived from the Cardano blockchain via the Koios API. No private data sources are used.すべてのデータは Koios API 経由で Cardano ブロックチェーンから取得する。非公開のデータソースは一切使用しない。

2. What this site does not do2. 本サイトが行わないこと

The site does not compute or display:本サイトは以下を算出も表示もしない。

If a future version of the site is considered for any of these, this document and the project's changelog (§11) will be updated before the feature is shipped, and a comment period will be provided.将来これらのいずれかを本サイトに追加することが検討された場合は、リリースに先立って本書および §11 の変更履歴を更新し、意見表明期間を設ける。

3. Data sources3. データソース

Primary: Koios API — a community-run REST interface over Cardano db-sync. Free tier is sufficient for the daily snapshot pattern this site uses.主要ソース: Koios API — Cardano db-sync 上に構築された、コミュニティ運営の REST インターフェイスである。本サイトが用いる日次スナップショット方式は、無料枠の範囲内で十分に賄える。

Endpoints used (reproducible from the source at etl/snapshot.py):使用するエンドポイント(ソースコード etl/snapshot.py から再現可能)。

DRep metadata content is consumed via Koios's drep_metadata endpoint and its is_valid flag; see §8 for the full handling chain and the v0.2 plan for independent fetch + verification.DRep メタデータ本体は、Koios の drep_metadata エンドポイントとその is_valid フラグを介して取得する。処理経路の全容および v0.2 での独立取得 + 検証計画は §8 を参照。

4. Update cadence4. 更新頻度

The observatory has two cadences. The daily layer is canonical for everything reported as "Data through {date}"; the live telemetry layer (described in §14) is supplemental and refreshes more often but writes a narrower set of data.本オブザバトリーは二層の更新頻度を持つ。日次層は「データ対象日 {日付}」と表記されるすべてのデータについて正準である。ライブテレメトリー層(§14)は補助であり、より高頻度で更新されるが、書き込むデータの範囲は狭い。

The daily ETL runs once a day at 02:00 UTC.日次 ETL は毎日 02:00 UTC に1回実行される。

Each daily run captures live DRep state at the moment of the run. The site displays the daily snapshot under the label "Data through {YYYY-MM-DD}". Daily updates happen at most once per day, so lag from any on-chain event to its appearance in the daily layer is at most approximately 24 hours.日次実行は、実行時点の DRep の状態を取得する。サイトは日次スナップショットを 「データ対象日 {YYYY-MM-DD}」 として表示する。日次更新は1日1回までであるため、オンチェーンの任意のイベントが日次層に反映されるまでの遅延は 最大で約24時間 である。

If the daily ETL run fails, the prior daily snapshot remains displayed unchanged. No partial or potentially inconsistent daily data is ever published. The site's "Last successful update" timestamp signals staleness if the daily data is older than 36 hours.日次 ETL 実行が失敗した場合、直前の日次スナップショットが変更されずに表示され続ける。部分的・整合性の不確かな日次データを公開することはない。日次データが36時間以上経過した場合は、サイトの 「最終更新成功」 タイムスタンプにより古さが示される。

The live telemetry layer runs every 10 minutes via a separate cron entry; its cadence, scope, and limitations are defined in §14.ライブテレメトリー層は別の cron エントリにより10分ごとに実行される。その頻度・対象範囲・制限は §14 で定義する。

5. Selection criteria5. 選定基準

The 30 DReps shown on the main page are selected by:トップページに表示される30 DRep は以下の基準で選定される。

This selection is fully deterministic and reproducible from public data. There is no manual curation, no featured selection, and no operator-influenced ranking. The ranking criteria above are the only criteria; changes to them will be documented in §11 with rationale.本選定は完全に決定的であり、公開データから再現可能である。手動のキュレーション、特集の選定、運営者の影響による順位付けは一切存在しない。上記の基準のみが順位を決定する。変更は §11 に理由とともに記録する。

6. Fields displayed per DRep6. DRep ごとに表示するフィールド

7. Fields not displayed7. 表示しないフィールド

This list is exhaustive for v0.1. Any addition requires a §11 changelog entry written before the change ships:本一覧は v0.1 において網羅的である。いかなる追加も、リリースに先立って §11 の変更履歴への記載を必要とする。

8. Metadata handling8. メタデータの取り扱い

DRep metadata URLs may return arbitrary content. In v0.1, metadata content is consumed via the Koios drep_metadata endpoint, which fetches the off-chain JSON, hashes it, and applies CIP-100/CIP-119 validation. The observatory uses Koios's is_valid flag as the validation gate.DRep のメタデータ URL は任意の内容を返し得る。v0.1 では、メタデータ本体を Koios の drep_metadata エンドポイント経由で取得する。当該エンドポイントはオフチェーン JSON を取得し、ハッシュを計算し、CIP-100/CIP-119 の検証を適用する。本オブザバトリーは Koios の is_valid フラグを検証ゲートとして用いる。

In v0.2, the observatory may move to fetching metadata directly from the on-chain URL with independent SHA-256 verification, removing Koios from the trust path for metadata content. This is a v0.2 candidate, not a v0.1 commitment.v0.2 では、オンチェーン URL から直接メタデータを取得し、独立した SHA-256 検証を行う方式へ移行する可能性がある。これにより、メタデータ本体の信頼経路から Koios を外す。v0.2 の候補であり、v0.1 での約束ではない。

9. Right of reply9. 反論の機会

A DRep who wants to add context to their entry on this site should update their on-chain metadata. The observatory fetches the latest metadata each day and the new content will appear on the next snapshot.本サイト上の自エントリに文脈を追加したい DRep は、オンチェーン・メタデータを更新すればよい。本オブザバトリーは毎日最新のメタデータを取得し、次回のスナップショットに新しい内容を反映する。

There is no operator-mediated channel for adding text, links, badges, or commentary to any DRep's entry. This is deliberate: the moment the operator can edit per-DRep content, the site has an editorial dimension.DRep のエントリに対し、テキスト・リンク・バッジ・コメントを追加する運営者を介した経路は存在しない。これは意図的である。運営者が DRep 単位の内容を編集できる瞬間から、サイトは編集的な次元を持ってしまう。

If a DRep believes a published number is computationally incorrect, please open an issue on the GitHub repository with the snapshot date, the field in question, and the value you expect. Computational corrections will be made publicly, with the changelog noting the affected dates.公開されている数値が計算上誤っていると判断した DRep は、GitHub リポジトリで Issue を開いてほしい。スナップショット日、該当フィールド、期待される値を併記する。計算上の訂正は公開の場で行い、影響を受けた日付を変更履歴に記す。

10. Operator10. 運営者

This observatory is operated by cryptoleo79, an independent Cardano stake pool operator and DRep.本オブザバトリーは、独立した Cardano ステークプール運営者かつ DRep である cryptoleo79 によって運営されている。

Conflicts of interest disclosure:利益相反の開示:

The source code, deployment configuration, and data schema are all public in the GitHub repository under Apache 2.0. The published data is CC0. Anyone can independently reproduce all results from the cited public endpoints.ソースコード、デプロイ設定、データスキーマはすべて GitHub リポジトリに Apache 2.0 ライセンスで公開されている。公開データは CC0 である。第三者は、引用された公開エンドポイントからすべての結果を独立に再現できる。

11. Changelog11. 変更履歴

For the canonical record, see METHODOLOGY.md in the repository. The summary below is mirrored from there:正準の記録はリポジトリ内の METHODOLOGY.md を参照。以下はそこからの抜粋である。

Date日付 Versionバージョン Change変更内容
2026-05-29 v0.7 FLOW-4 methodology §21 added: defines the historical snapshot browser. Dual-write to current + /by-date/{YYYY-MM-DD}/ immutable archive. Historical rankings preserved exactly as published (even if later developments would change interpretation). Navigation by chronological list (not calendar) to honor the discrete-with-gaps reality. Provenance strip includes stable canonical archive path as citable identifier. No backfill before deployment. Reproducibility commitment: byte-for-byte equivalence between served JSON and archived file. Code waits for the 02:05 UTC verification gate.FLOW-4 方法論 §21 を追加。履歴スナップショットブラウザを定義する。現行 + /by-date/{YYYY-MM-DD}/ 不変アーカイブへの二重書き込み。履歴順位は公開時のまま保持(後の展開により解釈が変わり得るとしても)。離散的かつ欠損のある実態を尊重するため、カレンダーではなく時系列リストでナビゲートする。来歴ストリップには、引用可能な識別子として安定した正準アーカイブパスを含める。デプロイ前のバックフィルは行わない。再現性のコミットメントとして、配信される JSON とアーカイブ済みファイルがバイト単位で一致することを保証する。コードは 02:05 UTC の検証ゲートを待つ。
2026-05-29 v0.6 FLOW-3 methodology §20 added: defines the governance history layer. Scope, action record, timeline, retention (permanent vs mutable), canonical sources, representation (aggregate + per-action JSON exports), explicit "no major/minor distinction" rule, revision rules, edge cases, and reproducibility commitment. §20.7 requires that action detail pages display the canonical action_id prominently near the top — never as an afterthought. Code and frontend follow.FLOW-3 方法論 §20 を追加。ガバナンス履歴層を定義する。対象範囲、アクションレコード、タイムライン、保持(永続 vs 可変)、正準ソース、表現形式(集約 + アクション単位の JSON エクスポート)、「主要/従属の区別をしない」明示ルール、改訂ルール、エッジケース、再現性のコミットメントを規定する。§20.7 は、アクション詳細ページが正準 action_id をページ上部に目立つ位置で表示すること(後付けで埋め込まないこと)を求める。コードおよびフロントエンドは別途追加する。
2026-05-29 v0.5 FLOW-2 methodology §19 added: defines governance event overlays on the per-DRep voting weight chart. Five event types with explicit time alignment between epoch-anchored events and date-anchored chart. §19.3 separates temporal proximity from causal claims; states the observatory records events and delegation state independently. §19.4 requires markers render behind the delegation series and never obscure underlying data; single neutral color for all event types. §19.5 shows all actions in window — no editorial pre-filter. Schema addition: epoch_info table. Export addition: /data/snapshots/epoch_info.json. Code and frontend follow.FLOW-2 方法論 §19 を追加。DRep ごとの投票権チャートに重ねるガバナンスイベント・オーバーレイを定義する。5種類のイベントについて、エポック起点のイベントと日付起点のチャートとの時刻整合を明示する。§19.3 は時間的近接性と因果関係の主張を切り分け、本オブザバトリーがイベントと委任状態を独立に記録することを述べる。§19.4 はマーカーを委任系列の背後に描画し、基礎データを覆い隠さないことを求める。すべてのイベント種別に単一の中立色を用いる。§19.5 はウィンドウ内のすべてのアクションを表示することを定める(編集的な事前フィルタは行わない)。スキーマ追加: epoch_info テーブル。エクスポート追加: /data/snapshots/epoch_info.json。コードおよびフロントエンドは別途追加する。
2026-05-29 v0.4 FLOW-1 methodology §18 added: defines net voting-weight movement and net delegator-count movement; separates measured movement from inferred meaning. §18.3 states net movement is not migration. §18.8 enumerates what flow data does NOT imply, including the explicit case that large movements may originate from wallet software defaults, custodial infrastructure, exchange operations, stake-key changes, or delegation decisions. Δ1d not on main table — per-DRep page and JSON exports only. Code and frontend follow in separate commits.FLOW-1 方法論 §18 を追加。投票権の純差分と委任者数の純差分を定義し、計測された変動と推定される意味とを切り分ける。§18.3 は純変動が移行 (migration) ではないと明言する。§18.8 はフローデータが含意しない事項を列挙し、特に大きな変動がウォレット既定設定、カストディアン基盤、取引所運用、ステーク鍵の変更、委任の意思決定のいずれからも生じ得ることを明示する。Δ1日は主テーブルに掲載せず、DRep 個別ページと JSON エクスポートに限定する。コードおよびフロントエンドは別コミットで追加する。
2026-05-28 v0.3 Live telemetry layer added (etl/live.py, 10-minute cadence). Daily layer remains canonical. New §14–§17 describe the live layer, eventual consistency, Koios rate-limit discipline, and live-only exports. Schema migration: vote_block_time added; new live_state table. All JSON exports now stamp schema_version and methodology_version. Frontend gains daily/live distinction wording, recent-activity section with absolute UTC timestamps, and data-provenance line.ライブテレメトリー層を追加(etl/live.py、10分間隔)。日次層は正準のまま据え置く。新規 §14–§17 にて、ライブ層、結果整合性、Koios レート制限の節度、ライブ専用エクスポートを記述する。スキーマ移行: vote_block_time を追加、新規 live_state テーブル。全 JSON エクスポートに schema_versionmethodology_version を刻印する。フロントエンドは日次/ライブの区別文言、UTC 絶対時刻付きの「最近のアクティビティ」セクション、データ来歴ラインを獲得する。
2026-05-28 v0.2 Deployment + scope expansion. Site live at observatory.asy.life via nginx + Let's Encrypt. Daily ETL cron at 02:00 UTC, git-pull deploy cron every 5 min. Added: governance actions index page (/actions.html) with DRep vote tally per action; public CSV export of top-30 snapshot (/data/snapshots/top30.csv); permalinkable per-DRep page (/drep.html?id=...) with full vote history and 90-day chart. New §13 documents pages and exports.デプロイと対象範囲の拡張。サイトは observatory.asy.life にて nginx + Let's Encrypt により稼働を開始。日次 ETL の cron は 02:00 UTC、git-pull デプロイの cron は5分ごとに動作する。追加: ガバナンスアクション一覧ページ(/actions.html)、各アクションごとの DRep 投票集計付き。上位30スナップショットの公開 CSV エクスポート(/data/snapshots/top30.csv)。完全な投票履歴と90日チャートを持つ DRep 個別パーマリンクページ(/drep.html?id=...)。新規 §13 でページと公開エクスポートを記述する。
2026-05-28 v0.1.5 Added vote ingestion via /proposal_list and /vote_list. last_vote_epoch populated. Revote ordering fix applied (chronologically latest vote per (action, drep) kept). §3, §6, §11, §12 updated./proposal_list/vote_list による投票の取り込みを追加。last_vote_epoch を埋める。再投票の順序修正を適用((アクション, DRep) 単位で時系列上最新の票を保持)。§3、§6、§11、§12 を更新。
2026-05-27 v0.1 Initial draft + first live ETL run. §4 lag wording corrected to "up to ~24h". §5 expanded with exclusion of default-delegation targets and deterministic drep_id tie-break. §8 updated to describe Koios-mediated metadata path. §12 added for scope limitations.初版作成および初回のライブ ETL 実行を完了。§4 の遅延表現を「最大約24時間」に訂正。§5 は既定委任先の除外と drep_id による決定的タイブレークを加え拡張。§8 は Koios 経由のメタデータ取得経路を記述するように更新。§12 を新規追加し対象範囲の制限を明記。

13. Pages and public exports13. ページと公開エクスポート

The observatory comprises four pages:本オブザバトリーは4ページから成る。

Public data exports (all CC0, regenerated by the daily ETL at 02:00 UTC):公開データのエクスポート(すべて CC0、02:00 UTC の日次 ETL により再生成):

The format is stable within a major version. Any field additions or removals are recorded in the §11 changelog before the change ships.形式はメジャーバージョン内で安定である。フィールドの追加・削除はリリース前に §11 の変更履歴に記録する。

Vote tally semantics (in actions.json): the counts drep_yes_count, drep_no_count, drep_abstain_count for each action represent the most recent vote each DRep has cast on that action. When a DRep has revoted on the same action, only their chronologically latest vote is counted (see §6 for the revote-ordering rule). The counts are facts, not interpretations; they do not constitute approval or rejection signals.投票集計の意味(actions.json 内): 各アクションの drep_yes_countdrep_no_countdrep_abstain_count は、各 DRep が当該アクションに対して最後に投じた票を表す。同一アクションに DRep が再投票した場合は、時系列上で最新の票のみを集計する(再投票順序のルールは §6 を参照)。集計は事実であり解釈ではない。承認や否決のシグナルを構成するものではない。

14. Live telemetry layer14. ライブテレメトリー層

In addition to the daily snapshot, the observatory runs a live telemetry ETL every 10 minutes to surface near-real-time governance pulse. This layer is deliberately narrow.日次スナップショットに加え、本オブザバトリーはライブテレメトリー ETL を 10分ごとに実行し、準リアルタイムのガバナンス動向を可視化する。この層は意図的に狭い範囲に絞っている。

What the live layer fetches each run:ライブ層が各実行で取得する内容:

What the live layer does NOT fetch or change:ライブ層が取得・変更しない内容:

What the live layer writes:ライブ層が書き込む内容:

The daily ETL at 02:00 UTC is the source of truth and reconciles any divergence on its next run.02:00 UTC の日次 ETL が信頼の源であり、次回実行時にあらゆる乖離を突合する。

15. Eventual consistency15. 結果整合性

Because two ETL processes share the same SQLite database, brief inconsistencies are possible:2つの ETL プロセスが同一の SQLite データベースを共有するため、短時間の不整合が生じ得る。

Reconciliation rule: the daily layer is canonical. If a discrepancy is observed between live and daily reports of the same fact, the daily value is the one to cite. The live layer exists to shorten the visibility lag, not to replace the daily layer.突合ルール: 日次層が正準である。同一事実についてライブと日次の報告に齟齬が認められた場合、引用すべきは日次の値である。ライブ層は可視化までの遅延を縮めるために存在するのであり、日次層を置き換えるためではない。

The site UI labels live-layer-sourced fields with an explicit "Live" indicator. Daily-layer fields have no such indicator; absence of label = canonical daily data.サイト UI は、ライブ層に由来するフィールドに明示的な「Live」インジケータを付ける。日次層のフィールドにはこのインジケータを付けない。ラベルがないことが、正準である日次データを意味する。

16. Koios rate-limit discipline16. Koios レート制限の節度

The observatory is a polite consumer of the Koios free tier. Estimated combined load with the live layer at 10-minute cadence:本オブザバトリーは Koios 無料枠の節度ある利用者である。ライブ層を10分間隔で動作させたときの合算負荷の見積もりは以下の通りである。

This is well under typical free-tier limits. If Koios returns a 429 or persistent 5xx error, individual call retries use exponential backoff up to 2 retries (same as the daily layer). If retries fail, the run aborts cleanly, writes a failure record to etl_runs, and leaves all existing files in place. The next 10-minute cron tick is independent and will retry. There is no behavior that polls more aggressively under failure.これは通常の無料枠の制限を十分に下回る。Koios が 429 または持続的な 5xx エラーを返した場合、個別コールの再試行は指数バックオフを用いて最大2回まで行う(日次層と同一の方針)。再試行が失敗した場合、当該実行は整然と中止され、etl_runs に失敗記録を書き込み、既存ファイルはすべてそのまま残す。次の10分 cron tick は独立しており再試行を行う。失敗時にポーリング頻度を上げる挙動は存在しない。

17. Live-only data exports17. ライブ専用データのエクスポート

All paths below are under /data/snapshots/live/, are CC0 licensed, and are regenerated by each successful live ETL run (every ~10 minutes). Format is stable within a major version.以下のパスはすべて /data/snapshots/live/ 配下にあり、CC0 ライセンスで、各ライブ ETL 実行の成功時(約10分ごと)に再生成される。形式はメジャーバージョン内で安定である。

The live exports do not duplicate any field that the daily layer publishes. They complement, never replace.ライブのエクスポートは、日次層が公開するフィールドを重複させない。補完するのであって、置き換えることはない。

18. Delegation flow (FLOW-1)18. 委任フロー (FLOW-1)

This section defines exactly what "delegation movement" means within the observatory. The boundary is sharp: the observatory measures what changed between two snapshots; it does not infer why the change happened. Every flow metric below is computed directly from the daily snapshot record (§5) and carries no editorial dimension.本節は、本オブザバトリーにおける「委任の動き」の定義を明確に規定する。境界は明瞭である。本オブザバトリーは2つのスナップショット間で何が変わったかを計測するのであって、変化がなぜ起きたかを推定するのではない。以下のすべてのフロー指標は、日次スナップショット記録(§5)から直接算出され、編集的な次元を一切含まない。

18.1 Quantities measured18.1 計測する数量

Two independent quantities are tracked for each DRep:DRep ごとに2つの独立した数量を追跡する。

These quantities are tracked separately. They can move in opposite directions in the same interval. The observatory reports both, never reconciles them into a single "movement" number.これらの数量は別個に追跡する。同一期間内に逆方向に動くこともある。本オブザバトリーは両者を報告するのであって、両者を単一の「動き」値に集約することはない。

18.2 Net movement18.2 純変動

For a DRep D and interval length n days, net movement is:DRep D と期間長 n 日について、純変動は次の通り。

  net_voting_weight_delta(D, t, n)  = voting_weight(D, t) − voting_weight(D, t')
  net_delegator_count_delta(D, t, n) = delegator_count(D, t) − delegator_count(D, t')

where t is the most recent snapshot date and t' is the most recent snapshot at or before t − n days. If no such reference snapshot exists, the flow is reported as null (never zero, never interpolated).ここで t は直近のスナップショット日、t't − n 日以前で最も新しいスナップショット日である。該当する基準スナップショットが存在しない場合、フローは null として報告する(ゼロや補間値は用いない)。

18.3 Net movement is not migration18.3 純変動は移行 (migration) ではない

Net movement values are independent per DRep. The observatory makes no claim that a positive net movement at DRep A and a negative net movement at DRep B during the same interval represent the same delegators having moved from A to B. Even when the magnitudes match exactly, this is not evidence of migration.純変動値は DRep ごとに独立である。本オブザバトリーは、ある期間において DRep A に正の純変動、DRep B に負の純変動が同時に観測されたとしても、それが「同一の委任者が A から B へ移った」ことを意味するという主張を一切行わない大きさが完全に一致したとしても、それは移行 (migration) の証拠ではない。

Example: in a given week, DRep A shows +100M ADA and DRep B shows −100M ADA. The observatory reports both values. It does not report "ADA moved from B to A." Such a migration claim would require per-delegator event tracking, which FLOW-1 does not provide. The two movements may have been driven by completely independent delegators making unrelated decisions.例: ある週に DRep A が +100M ADA、DRep B が −100M ADA を示したとする。本オブザバトリーは両者の値を報告する。「B から A へ ADA が移った」とは報告しない。そのような移行の主張は委任者単位のイベント追跡を必要とし、FLOW-1 はそれを提供しない。2つの動きは、完全に独立した委任者がそれぞれ無関係な意思決定を行った結果である可能性がある。

Migration tracking, if added in a future phase, will be documented in its own methodology section before any "A → B" claim appears anywhere on the site.移行追跡が将来の段階で追加される場合は、サイトのどこかに「A → B」の主張が現れる前に、独立した方法論セクションで規定する。

18.4 What is not measured by FLOW-118.4 FLOW-1 が計測しないもの

The observatory does not measure, and the published data does not support claims about:本オブザバトリーは以下を計測せず、公開データは以下に関する主張を裏付けない

Each requires per-delegator event tracking, which FLOW-1 does not provide. All flow values published are net only.いずれも委任者単位のイベント追跡を必要とし、FLOW-1 はそれを提供しない。公開するフロー値はすべて純変動 (net) のみである。

18.5 Canonical comparison interval18.5 正準の比較期間

Two intervals are exposed in the top-30 view: 7 days (Δ7d) and 30 days (Δ30d), both snapshot-to-snapshot diffs in calendar days.上位30表示には2つの期間を露出させる: 7日間 (Δ7d) および 30日間 (Δ30d)。いずれもスナップショット間の暦日差分である。

A third interval, 1 day (Δ1d), is computed and exposed in per-DRep JSON exports and on the per-DRep page only. It is intentionally not surfaced on the main table because day-over-day voting-weight changes within an epoch are often not governance-meaningful and would crowd the table visually.3つ目の期間 1日 (Δ1d) は計算し、DRep ごとの JSON エクスポートおよび DRep 個別ページにのみ露出させる。主テーブルには意図的に表示しない。エポック内の日次投票権変化はガバナンス上の意味を持たないことが多く、テーブルを視覚的に圧迫するためである。

Each published flow value carries an explicit flow_reference_date field naming the snapshot date used as the prior reference. Anyone who downloads the daily snapshots can recompute the published flow value.公開する各フロー値は、前回基準として用いたスナップショット日を明示する flow_reference_date フィールドを併記する。日次スナップショットをダウンロードした者は誰でも公開フロー値を再計算できる。

18.6 Missing-data handling18.6 欠損データの取り扱い

The observatory does not interpolate. If the prior snapshot at or before t − n days is missing, the flow value is null. A DRep that entered the top-30 within the last n days has null flows for n-day intervals until enough snapshots have accumulated. For dates before the first deployment of the observatory, no value is ever reported.本オブザバトリーは補間を行わない。t − n 日以前の基準スナップショットが存在しない場合、フロー値は null とする。直近 n 日以内に上位30に入った DRep は、十分なスナップショットが蓄積するまで n 日期間のフローが null である。本オブザバトリーの初回デプロイ前の日付については、いかなる値も報告しない。

18.7 Edge cases that cannot be resolved from snapshot data18.7 スナップショットデータからは解決できないエッジケース

These conditions produce snapshot-level flow values that are not directly attributable. The observatory reports raw numbers anyway, without editorial framing:以下の状況では、スナップショットレベルのフロー値が直接的に帰属できない。本オブザバトリーは編集的なフレーミングを加えず、生の数値をそのまま報告する。

Condition状況 What the observatory sees本オブザバトリーが観測すること What it cannot tell本オブザバトリーには判別できないこと
Stake holder rotates to a new stake key保有者が新しいステーク鍵にローテートする One delegator disappears, one new appears委任者が1減り、別の1が出現する Whether it's the same person同一人物かどうか
Exchange shifts custody between wallets取引所がウォレット間で保管を移す Delegator and weight movements委任者と投票権の動き Whether the same custodian is involved同一のカストディアンが関与しているか
Holder consolidates multiple stake keys保有者が複数のステーク鍵を統合する Multiple delegators disappear, one appears複数の委任者が消え、1つが出現する Whether it's one person consolidating1人による統合かどうか
DRep metadata changes (name update)DRep メタデータが変わる(名称更新) Display name changes; drep_id stable表示名が変わる。drep_id は不変 (no flow implication)(フローへの影響はない)
DRep deregistersDRep が登録解除する Voting weight → 0; delegators' stake unassigned投票権が0になる。委任者のステークは未割当となる Whether delegators will re-delegate elsewhere委任者が他へ再委任するかどうか

18.8 What flow data does NOT mean18.8 フローデータが意味しないこと

Flow data is a record of what changed, not why. The observatory cannot resolve motive from snapshot deltas. In particular:フローデータは何が変わったかの記録であって、なぜ変わったかではない。本オブザバトリーはスナップショット差分から動機を解き明かすことはできない。具体的には以下の通り。

Readers — researchers, journalists, DReps themselves — interpret what they see. The site does not.読者 — 研究者、ジャーナリスト、DRep 自身 — が観測したものを解釈する。サイトは解釈しない。

19. Governance event overlays (FLOW-2)19. ガバナンスイベント・オーバーレイ (FLOW-2)

This section defines how governance actions are displayed in time alongside delegation movement on the per-DRep voting weight chart. The boundary is sharp: the observatory shows temporal proximity between delegation movement and governance events; it makes no claim about causation.本節は、DRep ごとの投票権チャート上で、ガバナンスアクションを委任の動きと時系列上どのように並置するかを規定する。境界は明瞭である。本オブザバトリーは委任の動きとガバナンスイベントの時間的近接性を示すのみであり、因果関係に関するいかなる主張も行わない。

19.1 Event types overlaid19.1 重ねるイベントの種別

For each governance action, up to five events may be drawn on the chart, depending on which fields are populated:各ガバナンスアクションについて、対応するフィールドが埋まっている場合、最大5種類のイベントをチャートに描画する。

19.2 Time alignment between epochs and snapshot dates19.2 エポックとスナップショット日付の時刻整合

Submission events use the exact UTC date of submission. State-transition events use the UTC date the relevant epoch began, sourced from Koios /epoch_info (canonical). When no source is available, the overlay is omitted rather than approximated.提出イベントは正確な提出 UTC 日を用いる。状態遷移イベントは該当エポックの開始 UTC 日を用い、正準ソースとして Koios /epoch_info から取得する。ソースが取得できない場合は、近似せず、オーバーレイ自体を省く。

19.3 What an overlay marker means — and does not mean19.3 オーバーレイマーカーが意味すること、そして意味しないこと

An overlay marker at date D for event E concerning action A means exactly: Event E for action A occurred on date D (approximately, at epoch granularity for state transitions).アクション A に関するイベント E を日付 D に置いたオーバーレイマーカーが意味するのは厳密に次のみである:アクション A のイベント E は日付 D に発生した(状態遷移についてはエポック粒度での近似)。

The marker does not mean that any delegation movement on or near D was caused by A, that movement was a reaction to A, that voters coordinated, that A is more or less important than other actions, or that any DRep voted on A in any particular way.マーカーは以下を意味しないD 近傍の委任の動きが A によって引き起こされたこと、当該動きが A への反応であったこと、投票者が協調したこと、A が他のアクションより重要または重要でないこと、いずれかの DRep が A に対し特定の投票をしたこと。

Multiple governance events may occur within the same visual window without any observable delegation response. The observatory records both the events and the delegation state independently. Proximity on the same time axis does not imply influence in either direction.同一の視覚的ウィンドウ内に複数のガバナンスイベントが、観測可能な委任応答を伴わずに発生し得る。本オブザバトリーはイベントと委任状態をそれぞれ独立に記録する。同一時間軸上の近接は、いずれの方向の影響も含意しない。

19.4 Visual conventions19.4 視覚的慣習

Overlays appear as subtle vertical markers on the chart, in a single calm neutral color, with no outcome-based color coding (enacted is the same color as dropped; ratified is the same color as expired).オーバーレイはチャート上に控えめな縦マーカーとして、単一の落ち着いた中立色で表示する。結果に基づく色分けは行わない(施行は廃案と同色、批准は失効と同色)。

Overlay markers are rendered behind the delegation series and never obscure the underlying governance data. The delegation line and its data points are always drawn on top of the marker layer.オーバーレイマーカーは委任系列の背後に描画し、基礎となるガバナンスデータを覆い隠さない。委任ラインとそのデータ点は常にマーカー層の上に描画する。

Hovering or tapping a marker reveals plain text: action ID, action type, event type, event date. Markers for the same action at different events are not connected by lines or arrows.マーカーへのホバーまたはタップでプレーンテキストを表示する: アクション ID、種別、イベント種別、イベント日付。同一アクションの異なるイベントに対するマーカーは、線や矢印で接続しない

19.5 Scope of which actions appear on which charts19.5 どのアクションをどのチャートに表示するか

The observatory overlays all governance actions whose any event date falls within the chart's visible 90-day window. It does not pre-filter by whether the DRep voted on the action. Pre-filtering would implicitly editorialize relevance; showing all events presents the governance environment the DRep was operating in.本オブザバトリーは、いずれかのイベント日がチャートの可視90日ウィンドウに入るガバナンスアクションをすべて重ねる。当該 DRep が当該アクションに投票したかどうかで事前フィルタすることはない。事前フィルタは関連性を暗黙に編集することになる。すべてのイベントを表示することで、当該 DRep が活動していたガバナンス環境を提示する。

19.6 What FLOW-2 does NOT do19.6 FLOW-2 が行わないこと

19.7 Edge cases19.7 エッジケース

19.8 Reproducibility commitment19.8 再現性のコミットメント

Every overlay marker is derivable from governance_actions (action_id + epoch fields), proposal_list.block_time, and the epoch_info mapping. All three are CC0; FLOW-2 adds the export at /data/snapshots/epoch_info.json.すべてのオーバーレイマーカーは、governance_actions(action_id + エポックフィールド)、proposal_list.block_timeepoch_info マッピングから導出可能である。三者すべて CC0 である。FLOW-2 は /data/snapshots/epoch_info.json にエクスポートを追加する。

20. Governance history layer (FLOW-3)20. ガバナンス履歴層 (FLOW-3)

This section defines how the observatory retains, organizes, and presents historical governance data. The boundary is sharp: the observatory records what happened (actions, votes, dates, state transitions) without claiming what was important, significant, successful, or popular.本節は、本オブザバトリーが履歴上のガバナンスデータをどう保持し、整理し、提示するかを規定する。境界は明瞭である。本オブザバトリーは何が起きたか(アクション、投票、日付、状態遷移)を記録するのみであり、何が重要で、有意で、成功で、人気だったかについては主張しない。

20.1 Scope20.1 対象範囲

20.2 The action record20.2 アクションレコード

Keyed on action_id. Contains action_type, title, submission_block_time, submitted_epoch, state-transition epochs (expires, expired, ratified, enacted, dropped), deterministic outcome, and joined vote rows.主キーは action_idaction_typetitlesubmission_block_timesubmitted_epoch、状態遷移エポック(expiresexpiredratifiedenacteddropped)、決定的に導出された outcome、結合された投票行を含む。

20.3 Action timeline20.3 アクションのタイムライン

Chronologically-ordered events per action: submission → voting period → terminal state. Active actions have no terminal state until observed. The timeline shows protocol-observed facts; no "importance" annotations, no "successful" / "failed" framings.アクション単位の時系列順イベント: 提出 → 投票期間 → 終局状態。進行中のアクションは観測されるまで終局状態を持たない。タイムラインはプロトコルが観測した事実のみを示す。「重要性」の注釈は行わず、「成功」「失敗」のフレーミングも行わない。

20.4 Retention20.4 保持

Permanent: action_id, submission_block_time, each state-transition epoch, vote rows (except revote replacement per §6).永続: action_idsubmission_block_time、各状態遷移エポック、投票行(§6 の再投票置換を除く)。

Mutable across ETL runs: title (off-chain metadata), outcome derivation (only on forward progress when a new state transition is observed). No previously-captured row is ever deleted or replaced by a less-complete row.可変(ETL 実行をまたぐ): title(オフチェーン・メタデータ)、結果の導出(新規状態遷移が観測された前進時のみ)。以前に取得した行が削除されたり、より不完全な行で置換されることは一切ない。

20.5 Canonical sources20.5 正準ソース

Identity, state transitions, submission timestamp, vote facts, and epoch start dates all derive from Koios endpoints (/proposal_list, /vote_list, /epoch_info). An independent observatory would produce identical records.識別子、状態遷移、提出タイムスタンプ、投票事実、エポック開始日はすべて Koios のエンドポイント(/proposal_list/vote_list/epoch_info)に由来する。独立に運営される別のオブザバトリーが同一の記録を生成するはずである。

20.6 Representation20.6 表現形式

Two places: aggregate actions.json (v0.2) and per-action /data/snapshots/actions/{action_id}.json (FLOW-3). The action detail page at /action.html?id=gov_action1... reads the per-action file.2 箇所に表現する: 集約 actions.json(v0.2)とアクション単位の /data/snapshots/actions/{action_id}.json(FLOW-3)。/action.html?id=gov_action1... のアクション詳細ページは、アクション単位のファイルを読む。

20.7 What is not inferred20.7 推定しない事柄

The history layer surfaces only protocol-observed facts. It does not generate:履歴層はプロトコルが観測した事実のみを露出させる。以下は生成しない。

Actions are presented in historical order. The observatory does not distinguish between "major" and "minor" governance actions. Vote tallies and submission dates determine order; nothing else.アクションは履歴順に提示する。本オブザバトリーは「主要」と「従属」のガバナンスアクションを区別しない。投票集計と提出日が順序を決める。それ以外の基準は用いない。

The canonical action identity is action_id. Titles and types are display conveniences derived from on-chain metadata and protocol fields; they do not change the identity of an action. Action detail pages display the canonical action_id prominently near the top of the page — never as an afterthought.アクションの正準の同一性は action_id である。タイトルと種別はオンチェーン・メタデータとプロトコルフィールドから導かれる表示の便宜であり、アクションの同一性を変更しない。アクション詳細ページは正準 action_id をページ上部に目立つ位置で表示する。後付けの位置に置かない。

20.8 Revisions and reconciliation20.8 改訂と突合

State-transition epochs are immutable on chain. Metadata titles may change between ETL runs; the current value is shown and prior titles are not retained in v0.5. Vote rows can be replaced per the revote rule (§6).状態遷移エポックはオンチェーン上で不変である。メタデータのタイトルは ETL 実行間で変わり得る。現在値を表示し、v0.5 では以前のタイトルは保持しない。投票行は §6 の再投票ルールに従って置換され得る。

20.9 What FLOW-3 does NOT do20.9 FLOW-3 が行わないこと

20.10 Edge cases20.10 エッジケース

20.11 Reproducibility commitment20.11 再現性のコミットメント

Every action detail page is derivable from actions.json plus the votes records. For voters outside the top-30, names are not shown; this constraint applies equally to anyone running an independent observatory (the operator has no special data access).すべてのアクション詳細ページは、actions.jsonvotes 記録から導出可能である。上位30外の投票者については名称を表示しない。この制約は、独立に別のオブザバトリーを運営する者にも同等に適用される(運営者は特別なデータアクセスを持たない)。

21. Historical snapshot browser (FLOW-4)21. 履歴スナップショットブラウザ (FLOW-4)

This section defines how the observatory exposes its accumulated daily snapshots as a navigable historical record. The boundary is sharp: the browser surfaces the state that existed at a given date or epoch; it does not interpret, narrate, or contextualize that state.本節は、本オブザバトリーが蓄積した日次スナップショットを、ナビゲート可能な履歴記録として露出させる方法を規定する。境界は明瞭である。ブラウザは特定の日付またはエポック時点に存在していた状態を表示するのみで、その状態を解釈、語り、文脈化することはしない。

21.1 What a historical state is21.1 履歴状態とは何か

The published snapshot record for a specific UTC date: snapshots rows with snapshot_date = D; dreps, governance_actions, votes, and epoch_info as they stood when that snapshot was written. The browser does not invent or interpolate fields that were absent at the time.特定の UTC 日について公開されたスナップショット記録のこと。snapshot_date = Dsnapshots 行、ならびにそのスナップショット書き込み時点での drepsgovernance_actionsvotesepoch_info。ブラウザは当時欠落していたフィールドを捏造も補間もしない。

21.2 What a snapshot is21.2 スナップショットとは何か

The canonical published output of a single daily ETL run. For date D: top30.json, actions.json, dreps/{drep_id}.json, actions/{action_id}.json, epoch_info.json, and meta.json. Snapshots are immutable once published.単一の日次 ETL 実行による、正準の公開アウトプットのこと。日付 D について: top30.jsonactions.jsondreps/{drep_id}.jsonactions/{action_id}.jsonepoch_info.jsonmeta.jsonスナップショットは公開された時点で不変である。

21.3 Snapshot persistence and addressing21.3 スナップショットの永続化と参照

The daily ETL writes outputs in two parallel locations: Current (overwritten each run, current behavior) and Dated archive at /data/snapshots/by-date/{YYYY-MM-DD}/.日次 ETL はアウトプットを2つの並行する場所に書き込む: 現行(各実行で上書き、現状の挙動)、ならびに 日付付きアーカイブ として /data/snapshots/by-date/{YYYY-MM-DD}/

URLs: /?date=YYYY-MM-DD, /drep.html?id=...&date=YYYY-MM-DD, /action.html?id=...&date=YYYY-MM-DD, /actions.html?date=YYYY-MM-DD. Without the date parameter, the URL serves the current snapshot.URL: /?date=YYYY-MM-DD/drep.html?id=...&date=YYYY-MM-DD/action.html?id=...&date=YYYY-MM-DD/actions.html?date=YYYY-MM-DDdate パラメータがない場合、URL は現行スナップショットを返す。

21.4 Missing periods21.4 欠損期間

If a daily ETL failed, no archive entry exists. The browser does not interpolate. A request for a missing date returns an explicit gap notice and a pointer to the nearest prior published date. The list of available and missing dates is published at /data/snapshots/by-date/index.json.日次 ETL が失敗した場合、アーカイブエントリは存在しない。ブラウザは補間しない。欠損日へのリクエストには明示的な欠損通知と、直前に公開された日付へのポインタを返す。利用可能な日付と欠損日付の一覧は /data/snapshots/by-date/index.json に公開する。

21.5 Historical ranking derivation21.5 履歴順位の導出

The top-30 ranking for date D is the ranking that was published on date D. It is not retroactively recomputed and is not adjusted for DReps who deregistered later.日付 D の上位30順位は、日付 D に公開された順位そのものである。遡及的に再計算することはなく、後に登録解除した DRep に対する調整も行わない。

Historical rankings are preserved exactly as published on the snapshot date, even if later governance developments would change how a reader interprets them. The observatory's role is to retain what was; readers reason about what it meant.履歴上の順位は、後のガバナンスの展開が読者の解釈を変え得るとしても、スナップショット日に公開されたままの形で保持する。本オブザバトリーの役割は、起きたことを保持することにある。それが何を意味したかは読者が論じる。

21.6 What the browser refuses to infer21.6 ブラウザが推定を拒む事項

21.7 What is immutable21.7 不変であるもの

Once a date has passed and its snapshot was published, all artifacts at by-date/{date}/ are immutable, enforced by file path. The ETL never overwrites a past date. methodology_version and schema_version stamps are preserved with the historical snapshot regardless of subsequent updates.日付が過ぎ、そのスナップショットが公開されたあと、by-date/{date}/ 配下のすべての成果物は不変である。これはファイルパスによって強制される。ETL は過去の日付を上書きしない。methodology_versionschema_version の刻印は、その後の更新にかかわらず、当該履歴スナップショットとともに保持される。

21.8 Historical navigation21.8 履歴ナビゲーション

Simple chronological list of dates (latest first, paginated) — not a calendar widget (which would imply continuous coverage). Adjacent navigation (previous/next snapshot date) skips missing dates explicitly.日付の単純な時系列リスト(新しい順、ページング) — カレンダーウィジェット(連続的なカバレッジを含意してしまう)は用いない。隣接ナビゲーション(前/次のスナップショット日)は欠損日を明示的にスキップする。

21.9 Snapshot provenance21.9 スナップショットの来歴

Every historical view displays a small provenance strip containing:すべての履歴ビューには、以下を含む小さな来歴ストリップを表示する。

21.10 Scope of historical coverage21.10 履歴カバレッジの範囲

Only snapshots published by this observatory. No pre-deployment backfill, even if Koios would support reconstruction. §15's pre-launch rule applies.本オブザバトリーが公開したスナップショットのみが対象である。Koios で再構成可能だとしても、デプロイ前のバックフィルは行わない。§15 のローンチ前ルールが適用される。

21.11 What FLOW-4 does NOT do21.11 FLOW-4 が行わないこと

21.12 Reproducibility21.12 再現性

The JSON returned for a historical date matches the file in the dated archive byte-for-byte (subject only to nginx compression negotiation). Any third party who archived the original snapshots when they were current can reproduce every historical view.履歴日付に対して返される JSON は、日付付きアーカイブ内のファイルとバイト単位で一致する(nginx の圧縮ネゴシエーションの影響のみを除く)。当時現行だったスナップショットをアーカイブした第三者は、すべての履歴ビューを再現できる。

21.13 Archive integrity hashing21.13 アーカイブ完全性のハッシュ

Each dated snapshot archive includes a sha256.json file at /data/snapshots/by-date/{YYYY-MM-DD}/sha256.json listing the SHA-256 hash of every other file in that archive. Written last, after all other archive files are in place.日付付きスナップショットアーカイブには、/data/snapshots/by-date/{YYYY-MM-DD}/sha256.json として sha256.json ファイルを同梱する。同ファイルは、当該アーカイブ内の他のすべてのファイルの SHA-256 ハッシュを列挙する。他のアーカイブファイルがすべて揃った後、最後に書き込む。

Shape:構造:

{
  "schema_version": 1,
  "methodology_version": "0.7",
  "snapshot_date": "2026-05-30",
  "algorithm": "sha256",
  "files": {
    "top30.json": "a1b2c3…",
    "actions.json": "d4e5f6…",
    "meta.json": "…",
    "dreps/drep1…json": "…",
    "actions/gov_action1…json": "…"
  }
}

The hashed files include every file in the dated archive except sha256.json itself. The hash digest covers raw file bytes as written, before any HTTP-layer compression negotiation.ハッシュ対象のファイルは、日付付きアーカイブ内のすべてのファイルである。ただし sha256.json 自身は除く。ハッシュは書き込まれた生のファイルバイトを対象とし、HTTP 層の圧縮ネゴシエーションを経る前の値である。

Verification protocol. Any third party can: (1) compute SHA-256 of each file in a downloaded archive (excluding sha256.json); (2) compare against the corresponding entry in sha256.json; (3) treat any mismatch as evidence that one of the files has been modified after the snapshot was sealed.検証プロトコル。第三者は次の手順を踏める: (1) ダウンロードしたアーカイブ内の各ファイル(sha256.json を除く)の SHA-256 を計算する; (2) sha256.json の対応エントリと比較する; (3) 不一致があれば、当該ファイルがスナップショット封印後に改変された証拠と扱う。

Hashes are not cryptographically signed in v0.7. Signing is a v0.8+ candidate.v0.7 ではハッシュに暗号署名を付けない。署名は v0.8 以降の候補である。

22. Treasury observability (FLOW-5)22. トレジャリー観測性 (FLOW-5)

FLOW-5 extends the observatory to the Cardano treasury. It records the on-chain treasury balance at every epoch boundary and the governance-action-driven withdrawals from that treasury, joined to the governance actions and DRep votes the observatory already captures. It does not score, rank, judge, or recommend any recipient or any withdrawal.FLOW-5 は本オブザバトリーを Cardano トレジャリーに拡張する。各エポック境界におけるオンチェーン上のトレジャリー残高、およびトレジャリーからのガバナンスアクション駆動の引き出しを記録し、本オブザバトリーが既に取得しているガバナンスアクションおよび DRep 投票と結合する。受取人や引き出しの評価・順位付け・判断・推薦は一切行わない。

22.1 Scope22.1 対象範囲

A treasury flow, for the purposes of this section, is the movement of lovelace out of the Cardano on-chain treasury account that is enacted by a governance action of type TreasuryWithdrawals under CIP-1694. The observatory records:本節において、トレジャリーフローとは、CIP-1694 に基づく TreasuryWithdrawals 種別のガバナンスアクションによって施行された、Cardano のオンチェーン・トレジャリー口座からの lovelace の移動を指す。本オブザバトリーは以下を記録する。

What this section does not include:本節の対象に含めないもの。

22.2 Canonical source model22.2 正準ソース・モデル

The corrected source model, validated by direct probe against the Koios mainnet API on 2026-05-30:2026-05-30 に Koios メインネット API に対する直接プローブで検証した、訂正後のソース・モデルは以下の通り。

Datumデータ項目 Endpointエンドポイント Filterフィルタ Cadence頻度
Treasury balance, reserves, supply, fees, deposits per epochエポックごとのトレジャリー残高、リザーブ、供給量、手数料、デポジット /totals none — returns full epoch seriesなし — 全エポック系列を返す once per ETL run; idempotent upsert by epoch_noETL 実行ごとに1回。epoch_no による冪等 upsert
Treasury withdrawal actions (governance-driven)トレジャリー引き出しアクション(ガバナンス駆動) /proposal_list proposal_type=eq.TreasuryWithdrawals once per ETL runETL 実行ごとに1回
Recipient addresses and lovelace amounts per actionアクションごとの受取人アドレスと lovelace 金額 inline withdrawal array within the same /proposal_list response同一の /proposal_list レスポンス内に埋め込まれた withdrawal 配列 n/a — already attached to the proposal row該当なし — 提案行に既に添付されている once per ETL runETL 実行ごとに1回
DRep votes on each treasury action各トレジャリーアクションに対する DRep 投票 /vote_list filtered to action_id; already in §6 scopeaction_id でフィルタ。§6 の対象範囲に含まれる already in §6 cadence§6 の頻度に従う

There is exactly one source of truth for governance-driven treasury withdrawals: the withdrawal array attached to a proposal_type = TreasuryWithdrawals row in /proposal_list. No other endpoint or join produces this information.ガバナンス駆動のトレジャリー引き出しに関する信頼の源はただ一つ — /proposal_listproposal_type = TreasuryWithdrawals 行に添付された withdrawal 配列である。他のエンドポイントや結合からこの情報は得られない。

22.3 Schema additions22.3 スキーマ追加

Two tables are added. Both are forward-only migrations under §13's general rule (existing schema unchanged, columns added via ALTER TABLE ADD COLUMN; new tables created idempotently via CREATE TABLE IF NOT EXISTS).2つのテーブルを追加する。いずれも §13 の一般ルールに従う前進専用のマイグレーションである(既存スキーマは変更せず、列追加は ALTER TABLE ADD COLUMN で、新規テーブルは CREATE TABLE IF NOT EXISTS で冪等に作成する)。

treasury_snapshot — one row per Cardano epoch, with columns for circulation, treasury, reward, supply, reserves, fees, deposits (stake / DRep / proposal), treasury donation, treasury withdrawal epoch total, reserves withdrawal epoch total, and fetched_at timestamp. epoch_no is the primary key. The treasury_withdrawal_epoch_total field is the published epoch-level net withdrawal as reported by Koios — see §22.14 for the field-availability addendum.treasury_snapshot — Cardano エポックごとに1行。流通量、トレジャリー、報酬、供給量、リザーブ、手数料、デポジット(ステーク / DRep / 提案)、トレジャリー寄付、エポック内トレジャリー引き出し総額、エポック内リザーブ引き出し総額、取得時刻の列を持つ。主キーは epoch_notreasury_withdrawal_epoch_total は Koios が報告するエポック単位の純引き出し額である — フィールド可用性の付則は §22.14 を参照。

treasury_withdrawals — one row per (action_id, withdrawal_index) pair, with columns for action_id (FK to governance_actions), withdrawal_index (0-indexed position preserving stated order), recipient_stake_address (bech32), amount_lovelace, and the denormalized enacted_epoch. The denormalization is for query efficiency only; the canonical value lives on governance_actions. ETL idempotently re-syncs enacted_epoch on every run.treasury_withdrawals — (action_id, withdrawal_index) の組ごとに1行。列は、action_id(governance_actions への外部キー)、withdrawal_index(記載順を保持する 0 始まり位置)、recipient_stake_address(bech32)、amount_lovelace、および非正規化された enacted_epoch。非正規化はクエリ効率のみが目的であり、正準値は governance_actions 側にある。ETL は実行ごとに enacted_epoch を冪等に再同期する。

No other tables are added in FLOW-5. The existing governance_actions and votes tables already carry every treasury action and every DRep vote on it.FLOW-5 はこれ以上のテーブルを追加しない。既存の governance_actionsvotes テーブルが、すべてのトレジャリーアクションと、それに対するすべての DRep 投票を既に保持している。

22.4 What a treasury action record contains22.4 トレジャリーアクションレコードの内容

Every record exposed by FLOW-5 inherits the full governance action record from §20 (action_id, action_type, title, submission_block_time, submitted_epoch, state-transition epochs, outcome, vote tally, individual DRep votes). FLOW-5 adds, per action:FLOW-5 が露出するすべてのレコードは、§20 の完全なガバナンスアクションレコードを継承する(action_id、種別、タイトル、submission_block_time、submitted_epoch、状態遷移エポック、結果、投票集計、個別 DRep 投票)。FLOW-5 はアクションごとに以下を追加する。

FLOW-5 does not add: recipient name, recipient category, recipient project, recipient evaluation, "justification" field, "impact" estimate, or any prose interpretation of what a withdrawal funds. Recipient addresses are bech32 stake addresses, as recorded on chain, full string.FLOW-5 は以下を追加しない。受取人の名称、カテゴリー、プロジェクト、評価、「正当化」フィールド、「影響度」の見積もり、引き出しが何の資金になるかについての散文的な解釈。受取人アドレスは、オンチェーンに記録されたままの完全な bech32 ステークアドレス文字列である。

22.5 The reconciliation rule (observed vs governance-attributed)22.5 突合ルール(観測値 vs ガバナンス帰属)

For any epoch E in which one or more treasury actions have enacted_epoch = E, two quantities exist:1つ以上のトレジャリーアクションが enacted_epoch = E を持つ任意のエポック E について、2つの量が存在する。

The reconciliation residual is observed_delta(E) − governance_attributed(E). This residual is not an error term. Treasury balance changes for reasons that are not governance-action-driven, including but not limited to: refunds of unrefunded governance proposal deposits, refunds of DRep registration deposits on deregistration, refunds of stake-credential deposits, block-production reward flows in and out per epoch protocol mechanics, and protocol-level adjustments that are not exposed through any /proposal_list row.突合残差は observed_delta(E) − governance_attributed(E) である。この残差は誤差項ではない。トレジャリー残高は、ガバナンスアクション以外の理由でも変動する。これには次が含まれる(これに限らない): 未返還だったガバナンス提案デポジットの返還、登録解除時の DRep 登録デポジットの返還、ステーククレデンシャル・デポジットの返還、エポックのプロトコル仕様に基づくブロック生成報酬の出入り、いずれの /proposal_list 行にも露出しないプロトコル層の調整。

The observatory publishes both numbers and the residual. It does not interpret the residual as anomalous, suspicious, or fraudulent. A non-zero residual is the expected state of a complex ledger; reporting it transparently is the point.本オブザバトリーは両方の数値と残差を公開する。残差を異常、不審、不正と解釈することはない。非ゼロの残差は複雑な台帳の期待される状態である。透明に報告すること自体が目的である。

22.6 Pre-Conway treasury22.6 Conway 以前のトレジャリー

The Cardano treasury account predates Conway (it existed in Shelley, populated via protocol parameters and block production). Treasury movement before epoch 432 (the Conway-era cutover) was driven by Move Instantaneous Reward (MIR) certificates, not by CIP-1694 governance actions. MIR was a protocol mechanism, not a community-governed flow.Cardano のトレジャリー口座は Conway より前から存在していた(Shelley 時代に存在し、プロトコルパラメータとブロック生成によって積み立てられた)。エポック 432(Conway 時代への移行)より前のトレジャリー移動は、Move Instantaneous Reward (MIR) 証明書によって駆動されたものであり、CIP-1694 のガバナンスアクションによるものではない。MIR はプロトコルの仕組みであって、コミュニティにより統治されるフローではない。

FLOW-5 ingests the full /totals history available (back to the earliest epoch the endpoint exposes — currently observed to be around epoch 209). For epochs < 432, the treasury_lovelace field is reported as-is; treasury_withdrawals has no rows (no governance actions existed); the reconciliation residual is, by construction, the entire observed delta. Pre-Conway treasury changes are recorded but are not attributed to governance.FLOW-5 は /totals の取得可能な全履歴を取り込む(エンドポイントが露出する最古エポックまで — 現時点ではおおむねエポック 209 までと観測される)。エポック < 432 については、treasury_lovelace をそのまま報告する。treasury_withdrawals には行が存在しない(当該ガバナンスアクションが存在しなかった)。突合残差は構造上、観測された差分の全体に一致する。Conway 以前のトレジャリー変動は記録するが、ガバナンスには帰属させない。

22.7 What FLOW-5 explicitly does NOT do22.7 FLOW-5 が明示的に行わないこと

22.8 Edge cases22.8 エッジケース

22.9 Cross-link to existing layers22.9 既存層とのクロスリンク

FLOW-5 inherits, not re-implements, every cross-link the observatory already provides:FLOW-5 は、本オブザバトリーが既に提供するすべてのクロスリンクを継承し、再実装はしない。

The frontend rendering and JSON export structure for treasury actions follows §13 and §20's existing patterns. No new top-level page is required by methodology; whether a standalone treasury index page is added is a separate frontend decision documented under §13 when implemented.トレジャリーアクションのフロントエンド描画および JSON エクスポート構造は、§13 と §20 の既存パターンに従う。方法論として新規のトップレベルページは要求しない。独立したトレジャリー索引ページを追加するかは別個のフロントエンド判断であり、実装時に §13 に記載する。

22.10 Published exports22.10 公開エクスポート

FLOW-5 adds the following CC0 published exports:FLOW-5 は以下の CC0 公開エクスポートを追加する。

Each export carries schema_version and methodology_version per §13.各エクスポートは §13 に従い schema_versionmethodology_version を含む。

22.11 Reproducibility commitment22.11 再現性のコミットメント

A third party can reproduce every FLOW-5 number from the same Koios endpoints the observatory uses:第三者は、本オブザバトリーが用いるのと同一の Koios エンドポイントから、FLOW-5 のあらゆる数値を再現できる。

The reconciliation residual (§22.5) is itself computable from the published exports alone, without re-querying Koios. A researcher can audit any past epoch's residual entirely from the dated archive.突合残差(§22.5)それ自体は、Koios への再問い合わせなしに、公開エクスポートのみから計算可能である。研究者は過去の任意のエポックの残差を、日付付きアーカイブから完全に監査できる。

22.12 Versioning22.12 バージョニング

This section ships with methodology_version = "0.8". The version bump reflects the schema additions in §22.3 and the new exports in §22.10. The schema_version increments to 2 to reflect the table additions. Existing v0.7 consumers continue to receive every field they already had; FLOW-5 fields are additive.本節は methodology_version = "0.8" として出荷する。バージョンアップは §22.3 のスキーマ追加と §22.10 の新規エクスポートを反映するものである。テーブル追加を反映して schema_version は 2 にインクリメントする。v0.7 の既存利用者は、これまで受け取っていたフィールドをすべて引き続き受け取る。FLOW-5 のフィールドは追加のみである。

22.13 Verification protocol22.13 検証プロトコル

FLOW-5 inherits the five-layer verification structure used for earlier FLOWs (ETL, Data, Frontend, Semantics, Researcher Reproducibility) but with treasury-specific checks. Verification runs against the snapshot produced by the daily ETL after FLOW-5 code is deployed; each layer is independently passable, and a failure at any layer blocks promotion of that day's archive from "candidate" to "verified."FLOW-5 は先行する FLOW で用いた五層検証構造(ETL、データ、フロントエンド、意味論、研究者による再現性)を継承するが、トレジャリー固有のチェックを伴う。検証は FLOW-5 コードがデプロイされた後の日次 ETL が生成するスナップショットに対して実行する。各層は独立に合格可能であり、いずれかの層で不合格があれば、その日のアーカイブを「候補」から「検証済み」へ昇格させない。

The full check list lives in METHODOLOGY.md §22.13 in the repository. The summary: Layer 1 verifies ETL correctness (tip alignment, pagination exhaustiveness, idempotency); Layer 2 verifies data integrity (no duplicate keys, no FK orphans, all amounts positive, mainnet stake1 prefix); Layer 3 verifies the frontend (recipient list and total displayed for TreasuryWithdrawals only; no withdrawal section for other action types; no editorial styling); Layer 4 verifies semantics (reconciliation residual computable from archive alone; pre-Conway epochs have null withdrawals; no editorial fields present); Layer 5 verifies researcher reproducibility (third-party can fetch and reconstruct from Koios; sha256.json covers both treasury files; archive immutability holds).完全なチェック一覧はリポジトリの METHODOLOGY.md §22.13 に置く。要約: 第1層は ETL の正しさ(チップとの整合、ページネーションの網羅性、冪等性)、第2層はデータ完全性(キー重複なし、FK 孤児なし、金額は正、メインネットの stake1 接頭辞)、第3層はフロントエンド(TreasuryWithdrawals に対してのみ受取人一覧と合計を表示。他のアクション種別には引き出しセクションを表示しない。編集的なスタイルを置かない)、第4層は意味論(突合残差はアーカイブのみから計算可能。Conway 以前のエポックでは引き出しが null である。編集的なフィールドが存在しない)、第5層は研究者による再現性(第三者が Koios から取得し再構成できる。sha256.json が両方のトレジャリーファイルをカバーする。アーカイブの不変性が保たれる)。

A FLOW-5 run that fails any check at any layer is flagged in the daily verification log. Failure does not silently degrade — the affected file stays in the archive in its existing state and the next successful run reconciles forward.いずれかの層のいずれかのチェックに失敗した FLOW-5 実行は、日次検証ログに記録される。失敗時に静かに劣化することはない。影響を受けるファイルはアーカイブ内の既存状態のまま残り、次の成功実行が前進方向で突合する。

22.14 Koios field availability addendum22.14 Koios フィールド可用性の付則

This addendum records a finding from the FLOW-5 verification run on 2026-06-01 and clarifies the reconciliation basis given the actual shape of the data Koios publishes today. No schema or code changes follow from it — only methodology language is adjusted.本付則は、2026-06-01 の FLOW-5 検証実行で得られた所見を記録し、Koios が現在公開しているデータの実形状に即して突合の基準を明確化する。スキーマ・コードの変更は伴わず、方法論の言語のみを調整する。

Finding. Three fields in the Koios /totals response — treasury_withdrawal, treasury_donation, and reserves_withdrawal — are present in the response schema but were observed as null for every one of the 426 epochs in the chain history at the time of verification (Cardano epochs 209–634, probed 2026-06-01). The fields are documented in the upstream API as per-epoch totals, but Koios does not currently populate them.所見。Koios /totals レスポンスの3つのフィールド — treasury_withdrawaltreasury_donationreserves_withdrawal — はレスポンス・スキーマには存在するが、検証時(2026-06-01 にプローブした Cardano エポック 209–634 の全 426 エポック)においていずれも null と観測された。これらのフィールドは上流 API ドキュメント上はエポック単位の合計値として記載されているが、Koios は現在これらを埋めていない。

Implication for §22.5 reconciliation. The observed treasury movement for an epoch N is observed_Δ(N) = treasury_lovelace(N) − treasury_lovelace(N−1), computed from successive rows of treasury_snapshot. It is not derived from the always-null treasury_withdrawal_epoch_total. The governance-attributed sum is SUM(treasury_withdrawals.amount_lovelace WHERE enacted_epoch = N). The residual is the difference, adjusted for protocol inflows (fees into treasury, reserves-to-treasury transfers, deposit refunds). Per §22.5 the residual is not interpreted as error.§22.5 の突合への含意。エポック N における観測されたトレジャリー変動は observed_Δ(N) = treasury_lovelace(N) − treasury_lovelace(N−1) であり、treasury_snapshot の連続行から計算する。常時 null である treasury_withdrawal_epoch_total から導出するのではない。ガバナンス帰属の合計は SUM(treasury_withdrawals.amount_lovelace WHERE enacted_epoch = N) である。残差は両者の差から、プロトコル流入(トレジャリーへの手数料、リザーブからトレジャリーへの移動、デポジット返還)を調整したものとなる。§22.5 に従い、残差を誤差として解釈することはない。

Why the three fields remain in the schema. The defensive capture is intentional. If Koios begins populating any of these fields in a future release, the next daily ETL run captures them automatically with no code change, no schema migration, and no risk of silent omission. Honest reporting of current Koios behavior in the methodology is sufficient — the schema does not need to mirror Koios's current sparsity.3 フィールドをスキーマに残す理由。防御的取り込みは意図したものである。Koios が将来これらいずれかのフィールドを埋め始めれば、次の日次 ETL がコード変更・スキーマ移行・暗黙的欠落のリスクを伴わずに自動で取り込む。Koios の現挙動を方法論で誠実に報告すれば十分であり、スキーマが Koios の現在の希薄性を映す必要はない。

methodology_version remains 0.8. This addendum is a clarification of the existing §22.5 and §22.13 language, not a new methodological commitment, so no version bump is warranted. schema_version remains 2.methodology_version0.8 のままとする。本付則は既存の §22.5 および §22.13 の言語の明確化であって、新たな方法論的コミットメントではない。バージョンアップは行わない。schema_version2 のままである。

12. v0.1 scope limitations12. v0.1 における対象範囲の制限

The site is deliberately narrow at v0.1. The following are out of scope for this version and disclosed here transparently rather than masked with synthetic or interpolated values:v0.1 では本サイトを意図的に狭く保つ。以下は本バージョンの対象範囲外であり、合成値や補間値で覆い隠すことなく、ここに透明性をもって開示する。

These limitations resolve over time. They are not concealed and are not approximated.これらの制限は時間とともに解消される。隠蔽もしないし、近似値で覆うこともしない。