diff --git a/slides/README.md b/slides/README.md
new file mode 100644
index 0000000..c50bc4a
--- /dev/null
+++ b/slides/README.md
@@ -0,0 +1,19 @@
+# 簡報
+
+| 檔案 | 說明 |
+| --- | --- |
+| [`conssswars-weightless-memory.pdf`](conssswars-weightless-memory.pdf) | 5 頁,1280×720(16:9),給 0G 黑客松評審 |
+| `deck.html` | 產生上面那份 PDF 的原始檔,用瀏覽器打開就能看 |
+
+## 五頁的內容
+
+1. **封面** —— ConSSS Wars 目前釋出的兩個版本:鏈之迴響(已上線)與無重之憶(本次提交)
+2. **遊戲畫面** —— 標題 / 作戰簡報 / 戰鬥 / 結果,四張都是實機擷取
+3. **0G 技術表** —— 用了哪些 0G 技術、為什麼要用、在哪一行程式碼
+4. **連結** —— Play / Demo 影片 / GitHub / X / 鏈之迴響 的 QR code
+5. **交件時的真實狀態** —— 三條賽道各自驗證到什麼程度,照實標示
+
+## 重新產生
+
+改完 `deck.html` 之後用無頭瀏覽器印成 PDF 即可(1280×720、開啟背景列印)。
+截圖來自實際跑起來的遊戲,不是示意圖;QR code 由 URL 直接編碼,改連結記得重新產生並用手機掃過確認。
diff --git a/slides/conssswars-weightless-memory.pdf b/slides/conssswars-weightless-memory.pdf
new file mode 100644
index 0000000..d85c337
Binary files /dev/null and b/slides/conssswars-weightless-memory.pdf differ
diff --git a/slides/deck.html b/slides/deck.html
new file mode 100644
index 0000000..7558e4e
--- /dev/null
+++ b/slides/deck.html
@@ -0,0 +1,226 @@
+
+ConSSS Wars — 無重之憶
+
+
+
+
+
+
+
+
0G Hackathon · Consss Lab
+
鏈州英雄傳 ConSSS Wars
+
目前共釋出兩種版本
+
+
+
已上線
+
鏈之迴響
+
Echoes of Chainoa
+
play.conssswars.com
+
+
+
本次黑客松提交版本
+
無重之憶
+
Weightless Memory
+
conssswars-web.pages.dev
+
+
+
+ 1 / 5
+
+
+
+
+ Gameplay
+ 一分鐘打完的回合制策略戰
+
+
+
+
標題即時顯示 0G Galileo 區塊高度
與敵方 agent 的模型
+
+
+
戰鬥三條記憶迴廊、每回合 2 點算力
顧不了三條就是取捨
+
+
結果記憶碎片、0G 三賽道燈號
與「鏈上存證」對照表
+
+ 2 / 5
+
+
+
+
+ 0G Integration
+ 用了哪些 0G 技術 · 為什麼要用 · 在哪一行
+
+ 0G Compute 的 TEE agent 寫出戰報敘述
+ └─▶ 記憶碎片 ──算 merkle root、玩家錢包付費──▶ 存進 0G Storage
+ └─▶ 碎片的 SHA-256 ──合約建立交易──▶ 錨定 0G Chain ──讀回來逐欄比對──▶ ✓
+
+ | 0G 技術 | 為什麼要用它 | 程式碼位置 |
+
+ 0G Compute TEE 可驗證推論 |
+ 戰報要永久存檔,寫它的 agent 就不能是黑箱。金鑰在 pc.0g.ai 選 Private(TEE enclave),推論實際跑在 enclave 裡。 |
+ functions/api/narrate.js#L55-L134 |
+ 0G Storage 真實寫入 |
+ 「永久保存」就必須真的落地。官方 SDK 走完整協議:256-byte chunk 算 merkle root → Flow 合約 submit → segment 傳給 storage node。全程玩家錢包簽,伺服器不持有私鑰。 |
+ public/js/storage.js#L53-L85 |
+ 0G Storage indexer 唯讀查詢 |
+ 「上傳沒報錯」不等於存進去了。拿 root hash 回頭問 indexer,確認節點收下並 finalized 才敢標成已存檔。不需金鑰,評審可自行查證。 |
+ functions/api/og/storage.js#L76-L114 |
+ 0G Chain 錨定寫入 |
+ 戰報需要不可竄改、有時間戳的存在證明。40 bytes 結構化 calldata(魔術字 CSSW + 戰績 + SHA-256),用合約建立交易送出。 |
+ functions/api/og/shard.js#L62-L84
public/js/og.js#L174-L199 |
+ 0G Chain 鏈上回驗 |
+ 整個專案的重點:按了按鈕、錢包沒報錯,不代表資料真的在鏈上。用 eth_getTransactionByHash 讀回來、反解 calldata、逐欄比對,四項全對才打勾。 |
+ functions/api/og/verify.js#L19-L104 |
+
+
+ 3 / 5
+
+
+
+
+
+
0G Hackathon · Presenter: Consss Lab
+
ConSSS Wars 鏈州英雄傳
+
無重之憶 · Weightless Memory
+
+
Play
conssswars-web.pages.dev
+
Demo 影片
youtube.com/shorts/PV0HpkiGv24
+
GitHub
github.com/ConsssLab/web
+
+
+
+
@ConsssWars
+
+ 4 / 5
+
+
+
+
+ Status
+ 交件時三條賽道的真實狀態
+
+
+
0G Compute
● 線上實測通過
+
- 金鑰為 TEE enclave 模式
- 畫面顯示
deepseek-chat-v3-0324 · TEE - 敵方 agent 另走 OpenAI(低延遲)
+
0G Storage
◐ 部分驗證
+
- merkle root 可離線重現驗證
- indexer 唯讀查詢正常(6 節點)
- 瀏覽器直傳受節點端 CORS 限制,正解為經自架 Worker 轉發
+
0G Chain
● 線上實測通過
+
- 錨定交易已上鏈並取得區塊
- 從鏈上讀回 calldata 逐欄比對
- 四項(摘要/勝負/回合/核心)全部相符
+
+
+ 5 / 5
+
+
+
\ No newline at end of file