從持倉概念到鏈上借貸
這次黑客松探索的是:如何用代幣表示股票持倉,並接進借貸應用。我負責應用層整合,把前端、後端、錢包與既有智能合約串成測試網原型。專案獲得 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,不是正式金融服務,也沒有承接客戶資金。沙盒帳戶回應與代幣發行,不代表已建立真實股票所有權或託管關係。上述研究筆記與學習練習,和前面列出的應用整合成果分開呈現。