OPEN-SOURCE OID4VCI ISSUER

請收下卡片

輕量化發行證件,支援數位皮夾

用一批虛構的測試資料,把「發卡 → 領卡 → 出示 → 查驗」整條流程在一頁裡走完,也讓你可以一鍵建立自己的發卡服務

給皮夾使用者

領一張測試卡,再出示回來

選一種常見卡片、選一位虛構持卡人,用有備而來掃描 QR Code 收下卡片。接著在同一頁把卡片出示回來,看見簽章、持有人綁定與選擇性揭露怎麼運作。

前往領卡

給服務提供者

用自己的網域建立發卡服務

從 Cloudflare 免費方案開始,部署獨立的 OID4VCI issuer:持久的 did:key、預授權碼流程、狀態清單,以及能直接驗回自己卡片的出示端點。

查看部署與整合方式

COLLECT A TEST CARD

建立一次領卡

每張卡片先列出會寫進去的欄位。皮夾收到後,欄位會以選擇性揭露的形式保存,出示時可以逐欄決定給不給。

1

選擇要領卡的皮夾

本站不在官方信任清單,所以只有開發測試版的有備而來會收下這裡的卡片。

2

選擇卡片種類

六種日常會遇到的卡片。欄位名稱盡量對齊皮夾已知的欄位表,卡面才會用中文顯示。

3

選擇一位虛構持卡人

六位不存在的人。任何人都可以領任何一位的卡片;這裡沒有真實身分驗證。

PRESENT IT BACK

把卡片出示回來

本站同時是一個只信任自己的查驗端:它用同一把 did:key 簽署查驗請求,收到出示後驗證發卡簽章、持有人金鑰綁定、nonce、audience 與狀態清單。這證明卡片是完整的,不代表其他人應該接受它。

1

選擇要出示的卡片種類

每種卡片只要求其中幾個欄位,皮夾會逐欄詢問是否揭露。

TRUST LIST

誰在官方信任清單上,本站又在哪裡

皮夾與查驗端都以數位發展部的 DID 清單決定「這張卡是誰發的、要不要收」。下表即時讀取官方 API;本站的 did:key 列在最上方,並誠實標示它不在清單上、又被誰接受。

機構登記端點DID鏈上紀錄
正在讀取官方信任清單…

發出去的東西ES256 簽章的 TWDIW 方言 SD-JWT、每欄一個 disclosure、cnf 綁定皮夾金鑰、StatusList2021 狀態清單
資料保存Durable Object 只在 10 分鐘內暫存卡種、虛構持卡人、預授權碼與 nonce;發卡完成即刪除,卡片不落地
標準範圍OID4VCI 預授權碼流程與 TWDIW 相容 profile;出示端使用 Presentation Exchange 加 DCQL 相容層

FOR DEVELOPERS

部署一套,或接進你原本的服務

公開 repo 包含 Cloudflare Worker、三個 Durable Objects、OID4VCI 端點、狀態清單、出示查驗端點、部署 skill 與可直接交給 coding agent 的 prompt。第一次啟動時會在自己的 Durable Object 產生 P-256 did:key

AGENT SKILL

交給開發代理部署

Skill 會先確認新部署或既有服務整合,再處理自訂網域、皮夾端的信任釘定、測試與真機驗收邊界。

開啟部署 skill

EMBED WITH API

接進既有網站或流程

讀取 GET /api/catalog,以 POST /api/offers 建立領卡 QR,再由一次性 WebSocket 得知皮夾何時收下。要換成自己的卡種與資料來源,改 src/catalog.ts

閱讀協定與信任說明

PAIRED VERIFIER

搭配「請出示皮夾」

同一組人維護的開源查驗端。它對政府卡只信任官方 DID API,所以會拒絕本站的測試卡;這是設計,不是缺陷。要驗自己的卡,請 fork 後明確加入信任政策。

開啟請出示皮夾

COPYABLE PROMPT

直接交給 coding agent

請使用 https://github.com/mashbean/twdiw-vc-issuer-lite,幫我把「請收下卡片」部署到 Cloudflare Workers。保留 Durable Object 內的 issuer did:key;只發行 src/catalog.ts 裡的虛構測試資料,不要接進任何真實個資來源。完成測試、typecheck、dry-run 與公開網址檢查後,回報新站的 did:key 與主機名稱,讓我釘進皮夾的信任例外;真實皮夾的跨裝置領卡與出示列為獨立驗收步驟。
開啟完整 prompt 與可填參數
標準與台灣相容層

發卡端實作 OpenID for Verifiable Credential Issuance 的預授權碼流程(credential offer by reference、token、credential,proof 為 openid4vci-proof+jwt)。卡片格式採台灣 TWDIW 現行方言:SD-JWT 包在 W3C vc 內,發行者與持有人都用 did:key(jwk_jcs-pub)。出示端與請出示皮夾相同,同時送出 Presentation Exchange 與 DCQL。這不代表已通過 OpenID Foundation conformance certification。

Q&A

開始前常見的問題

這些卡片可以拿去哪裡用?

只能用來測試。卡片上的人不存在,發卡機構也不存在。它們能讓你在皮夾裡看到卡面、練習出示與選擇性揭露,並在本頁的出示測試驗回來;任何真實服務都不應該接受它們。

為什麼官方數位憑證皮夾收不下?

官方皮夾與請出示皮夾都以數位發展部的 DID 信任清單決定發行者可不可信,本站刻意不在清單上。有備而來的開發測試建置以一條明確的沙盒例外釘住本站的 did:key 與主機名稱,Release 建置不包含這條例外。

領卡資料會被保存嗎?

不保存卡片。Durable Object 只在 10 分鐘內暫存這次領卡選了哪張卡、哪位虛構持卡人、預授權碼與 nonce;皮夾收下後立即刪除。發出去的卡片只存在皮夾裡,以及建立領卡的那個瀏覽器分頁。

我可以把自己的資料放進卡片嗎?

示範站不接受輸入。自行部署時可以改 src/catalog.ts 換成自己的卡種與資料來源;一旦接進真實個資,就要另外處理告知、合法事由、保存期限與撤銷,不在示範站的範圍內。

卡片會過期或被撤銷嗎?

每種卡片有自己的效期,寫在 expexpiry_date。每張卡都佔用 StatusList2021 狀態清單的一個位置,查驗端會讀取 /status/1;目前示範站沒有撤銷操作介面,所有位置都是有效。

這是數位發展部的官方服務嗎?

不是。這是獨立維護的開源實作,用於研究、測試與快速建立發卡服務,與數位發展部及各發卡機關沒有隸屬關係。

ECOSYSTEM

相關服務與技術資料