KyberSwap 是一個去中心化交易平台,其 DEX 聚合器已為超過 500 萬名使用者促成逾 1,500 億美元的交易量。當團隊將前端整合至 Wagmi v3 與 Viem 時,他們以 MetaMask Connect 官方的 metaMask() connector,取代了自行開發的 MetaMask 偵測程式碼。本案例研究將說明 KyberSwap 為何做出這項改變、行動版網頁有哪些轉變,以及 Connect 整合如何與 KyberSwap 另一項角色並行運作,也就是為 MetaMask 使用者提供兌換報價。
KyberSwap 的使命:為每筆交易提供最優報價
KyberSwap 的 DEX Aggregator 是一套去中心化交易解決方案,旨在為每筆交易提供最優報價與可靠的執行。它採用 Smart Settlement,這是一種智慧路由演算法,透過串接跨鏈的深度流動性,將成交數量最大化並將滑價降至最低。在這個核心之外,還有限價單、涵蓋 23 個網路的跨鏈兌換,以及提供收益機會的 Kyber Earn。
一個以執行品質為核心的平台,對於它的入口有一項很單純的要求:連接錢包應該毫不費力。
自行開發的錢包程式碼,是一筆維護成本
KyberSwap 先前的架構結合了 Wagmi v2、ethers.js 以及臨時拼湊的 injected connector 層,其中包含用來偵測並連接 MetaMask 的自訂程式碼。在遷移至 Wagmi v3 與 Viem 的過程中,團隊決定捨棄這些程式碼,改用 MetaMask Connect 的官方 connector。
有三個因素促成了這項決定。現在只需一個 connector,就能同時涵蓋桌面版瀏覽器擴充功能,以及行動版網頁的 deep link 與 relay 流程。需要維護的自訂錢包偵測程式碼也更少。此外,隨著 EIP-6963 與 MetaMask Wallet Protocol (MWP) 逐漸成為錢包與 dapp 相互發現的標準方式,沿用 MetaMask 支援的路徑,能讓 KyberSwap 持續保持一致。
導入前 | 使用 MetaMask Connect 後 |
Wagmi v2、ethers.js,以及臨時拼湊的 injected connector 架構 | Wagmi v3 與 Viem,搭配官方 metaMask() connector |
需要自行維護 MetaMask 偵測與連接的程式碼 | 偵測與連接皆由 connector 處理 |
行動版網頁依賴 WalletConnect QR code | 透過 MWP relay,以原生 deep link 連接至 MetaMask 應用程式 |
需要自訂程式碼來追蹤錢包探索標準 | 透過 MetaMask 支援的路徑,與 EIP-6963 和 MWP 保持一致 |
打造順暢的行動版切換體驗
在行動版網頁上,QR code 是一種不太順手的方式:使用者本來就在手機上。MetaMask Connect 為 KyberSwap 提供了 deep link 連接流程,可透過 MWP relay 開啟 MetaMask 應用程式,讓使用手機的交易者無需掃描任何內容即可完成連接。
KyberSwap 特別著重於 iOS 的切換流程。目標是讓使用者直接進入 MetaMask 的核准畫面,從點選連接到完成核准之間不需要任何額外步驟。無論交易者是透過桌面版擴充功能還是行動版應用程式進入,都能獲得相同的連接體驗。
技術堆疊
層級 | 元件 |
交易 | KyberSwap DEX Aggregator、Smart Settlement、限價單、跨鏈兌換(23 個網路)、Kyber Earn |
前端 | Wagmi v3、Viem |
錢包連接 | MetaMask Connect(connect-evm)、metaMask() connector |
探索與傳輸 | EIP-6963、MetaMask Wallet Protocol relay |
錢包 | MetaMask 瀏覽器擴充功能(桌面版)、MetaMask 行動應用程式 |
目前成效
自採用 MetaMask Connect 以來,KyberSwap 表示使用者連接錢包的過程一直十分穩定,上線首日就十分順利,也沒有收到任何抱怨或問題回報。
依 KyberSwap 的說法,對使用者而言的成果是:連接與交易如今感覺就像一個步驟。交易者透過 MetaMask 連接後,便能直接以最優報價進行兌換,中間不需要任何多餘的步驟。MetaMask Connect 負責這個流程的入口,其餘則交由 Smart Settlement 處理。
兩項整合,一段合作關係
Connect 整合是 KyberSwap 與 MetaMask 合作關係的其中一半。另一半則朝相反方向運作:KyberSwap Aggregator API 為 MetaMask 使用者提供跨鏈的兌換報價與執行。MetaMask Connect 將 MetaMask 使用者帶入 KyberSwap,而 Aggregator API 則將 KyberSwap 的路由能力帶進 MetaMask。
「MetaMask 在兩個面向上一直是我們重視的夥伴。MetaMask Connect 簡化了交易者連接 KyberSwap 的方式,無論使用擴充功能還是行動應用程式,都能享有穩定且一致的體驗。同時,KyberSwap Aggregator API 也為 MetaMask 使用者提供跨鏈上最優的兌換報價與執行。這段合作建立在我們最重視的同一項原則之上:讓每個人的 DeFi 交易都更簡單、更順暢、更有效率。」— Ken Tran,KyberSwap 商務開發經理
KyberSwap 給開發者的建議
以官方文件為準。這能讓您的整合方式與標準保持一致,也比參考舊範例或自訂串接方式更容易順利轉換。
將錢包連接遷移納入更大範圍的技術堆疊整理。KyberSwap 在升級至 Wagmi v3 與 Viem 的同時替換了 MetaMask 程式碼,因此更換 connector 只是整體規劃中整併工作的一環,而非獨立專案。
端對端測試行動裝置的跳轉流程。對使用者來說,關鍵在於點擊連接後會被帶到哪裡。KyberSwap 確認 iOS 使用者能直接進入 MetaMask 的核准畫面。
依據自身架構審慎評估。這次遷移對 KyberSwap 的架構來說相當順利,但每個團隊的技術堆疊各不相同,最適合的做法取決於您產品的需求。
使用 MetaMask Connect 進行開發:一次整合,即可支援所有使用者,無論他們選擇何種方式連接。