← 所有專案黑客松專案 — Web3 概念驗證

RWA 股票借貸 — Hackathon

以 Next.js 介面與後端串接錢包、身分流程及借貸合約的測試網應用,於 RWA 黑客松獲得 Honorable Prize。

角色Web3 應用整合
期間2025
階段測試網概念驗證
獎項Honorable Prize
BROWSER WALLETNEXT.JS APPIDENTITY / TOKENTEST LENDINGconnect · signinterface + backendERC-3643 · OnchainIDproject contractsMongoDB · tx recordsserver actionswallet-signed actionsAPPLICATION INTEGRATION · TESTNET PoC

從持倉概念到鏈上借貸

這次黑客松探索的是:如何用代幣表示股票持倉,並接進借貸應用。我負責應用層整合,把前端、後端、錢包與既有智能合約串成測試網原型。專案獲得 Honorable Prize。

設計使用券商沙盒帳戶與模擬資產資料;真實股票的託管、圈存與贖回,則是構想中的延伸,不是已完成的串接。

我實際整合的部分

  • 錢包與帳戶狀態:透過 Ethers.js 連接瀏覽器錢包,處理帳戶及網路切換,並將沙盒帳戶註冊流程接到 MongoDB 的應用資料。
  • 身分與代幣發行:將後端操作接上 ERC-3643/OnchainID client,串接身分註冊、聲明與 registry 檢查。鑄造流程檢查應用端前置條件,並保存交易雜湊與代幣化紀錄。
  • 借貸操作:串接專案借貸合約的抵押品存入、穩定幣供給、借款、還款與抵押品提領,讓介面呈現餘額、債務、可借額度及部位健康度。
  • 交易回饋:需要時先檢查代幣授權額度、完成授權交易;借貸操作等待交易確認後,再更新介面上的部位資料,並提供處理中與錯誤回饋。

身分、代幣與借貸合約由其他開發者實作,我負責應用端串接,不是底層協議邏輯。借貸部分是專案使用的 Compound-style 實驗合約,並非串接公開的 Compound III 市場。

一個介面,幾種不同的狀態

這次經驗讓我更清楚:錢包連線、應用資料與鏈上執行,是不同的狀態。 連接錢包不代表已完成身分檢查;拿到交易雜湊,也不等於交易已確認。

把合約 client 與應用層操作分開,有助於釐清這些邊界。在借貸介面中,流程是檢查額度、必要時授權、送出交易、等待確認,再刷新部位,讓使用者知道目前進行到哪一步。

相關研究與參考

RWA Creator:代幣如何對應鏈下資產

我的 RWA Creator 學習練習 參考 Patrick Collins 的原始範例。研究重點不是重新設計代幣標準,而是理解兩種模型的差別:

  • 資產支撐型:由鏈下持有的標的資產支撐代幣;需要釐清持倉資料、發行數量與贖回安排如何對應。
  • 合成資產型:以其他抵押品及價格資料建立標的曝險,不代表持有那檔股票;價格追蹤與抵押品管理是不同問題。

Oracle:請求、回傳,再更新鏈上狀態

當時研究的 Chainlink Functions 流程,可以概括為:合約送出請求 → 鏈下程式查詢 API → oracle 回傳結果 → 合約依結果處理後續狀態。這不是一次同步完成的資料庫交易,應用端需要呈現等待回應的階段。Chainlink 官方說明

對這次專案的啟發是把「價格參考」「持倉回報」「資產圈存」分開:收到 API 資料不等於股票已被鎖定,發出贖回請求也不等於款項已到帳。這是研究中的設計思考,不代表借貸原型已實作完整的券商結算。

這裡保留當時的研究脈絡;Chainlink 官方目前已將 Functions 標為棄用,並引導移往 CRE,若重新實作需依現行文件選型。

BUIDL:基金份額與退出管道

另一個研究對照是 BUIDL。Circle 公開的機制是讓持有人將基金份額轉讓給 Circle,以換取 USDC;不能簡化成「燒毀代幣,底層資產就會自動賣出」。這提醒我,代幣操作、基金贖回與資金交付需要分開理解。BUIDL 僅作外部案例參考,並非我的整合項目。Circle 原始公告

專案範圍

這是黑客松測試網 PoC,不是正式金融服務,也沒有承接客戶資金。沙盒帳戶回應與代幣發行,不代表已建立真實股票所有權或託管關係。上述研究筆記與學習練習,和前面列出的應用整合成果分開呈現。