自己做一個 PERP 交易所 APP
前情提要
這是我在 2025 年 9 ~ 12 月的專案,我花了 86 天完成了一個交易所的 App 並上架到 Google Play Store,包含中間去旅遊2個禮拜。
2025年,Perpetual Procol 面臨了很大的壓力,探索了幾個月但找不到明確可行的產品方向,我們嘗試做了一個跨鏈的現 貨交易所 Nekodex,但一直找不到 Product Market Fit,用戶數量上不去。
同時維護 Nekodex 也成為負擔。Nekodex 的目標用戶是那些不熟悉幣圈的新手用戶,為了讓這些用戶不用理解 Gas 的概念也能使用,我們使用了 AA Wallet 當作底層基礎建設。但實務上發現維護是個大坑,每個用戶在鏈上都有一個合約錢包,每次遇到合約需要升級,永遠都會有一部分的用戶還停留在最舊的版本。最近一次是2025 9月的時候,ZeroDev 回報說他們的 AA Wallet 合約有個漏洞需要升級才能繼續使用,我們花了將近一週才搞定這件事。
因此在2025年9月,我們決定先做一個更好維護的 PERP 交易 APP,並計畫之後下架 Nekodex,將用戶轉移到新的產品上,以減輕維護負擔,保留精力探索其他產品方向,這個產品叫做 PERP GO,一個 mobile 的 perp 交易 app。
但 12 月時,公司決定將 Perpetual Protocol 出售移交給另一個團隊。和老闆討論後,我們決定開源這個專案,身為 PERP GO 主要的開發者,我會在這篇文章分享開發與當時的決策細節。
整個 PERP GO App 的程式碼都已經 Open Source 放置在 github 並採用 CC 4.0 授權,您在移除 PERP GO 商標後可以自由使用。

怎麼決定背後的技術選型?
PERP GO 的目標是減少維護成本。因此直接以當前 PERP defi 市占率前最大 的 Hyperliquid 當做後端,會是最簡單的。
深入研究會發現,Hyperliquid 官方只維護前端和後端 API,但 Hyperliquid 本身並沒有跳下去做 mobile App,反而是在官方網站推薦了其他 App 的前端。

我們下載並研究了所有競品,最後的結論是:透過 Hyperliquid 官方提供的分潤機制可能是有利可圖的。
Builder Code 是 Hyperliquid 官方提供的分潤機制,開發者透過打造一個 Hyperliquid 前端介面來吸引用戶,如果使用者透過該前端介面下單,那開發者可以獲得分潤,最高可以拿到用戶交易金額的 0.1%。
最關鍵的數據是 Hyperliquid BuilderCode 的收益,DUNE 上可以查到當前常見最賺錢的 BuilderCode 有哪些,其中最賺錢的是黃色的 phantom 和粉紅色的 based(大約一天有4~5萬美金的收入)。

產品定位
一開始我們想,有沒有辦法引流平時會用 Hyperliquid 網頁版本的用戶?
Hyperliquid 官方網站上,有一個 Link Mobile Device 的按鈕,會提供一個 QR Code,允許用戶用手機打開 Hyperliquid 來交易。

是否有辦法做一個手機 App 來,直接掃描該 QR Code,我們就直接把該用戶綁定到我們的 PERP GO app 內呢?
結論是不行,不是技術上不行,而是商業上缺乏價值。
Hyperliquid 之所以能做到不用每次交易都簽名,是因為使用者在登入後,會授權另一個 Agent Wallet 代為操作用戶的資產。這個 Agent Wallet 可以下單,但不能存款與提款。
最重要的是:直接透過這個 Agent Wallet 下單,Builder 是沒辦法抽手續費的。
用戶必須用主要的錢包(master wallet)授權前端介面能夠抽手續費,最高不超過 0.1 %,前端交易介面才能夠在每次交易時,攜帶一個 builder code 到 Hyperliquid 後端 API,成交時抽 Builder Fee。
所以如果你研究了競品(based app, dexari, lootbase)會發現,所有的競品都在鼓勵用戶「在 app 上建立錢包」,原因是 app 上自建錢包就能夠替用戶簽 approve Builder Fee。
因此最終所有 hyperliquid 前端 app 會導向三種註冊方式的選擇
- 幫用戶產生 seed phrase 並保存在手機上、或是允許用戶匯入 seed phrase
- 讓用戶能夠用 email 註冊一個對應的錢包(使用 privy 或是 turnkey 之類的服務)
- 讓用戶能夠掃 Hyperliquid 官方 QR Code 但是賺不到錢
而我在訂定 PERP GO 規格時,考量到幫用戶產生 seed phrase 會有很高的資安風險,最終選擇是
- 對於初階用戶,使用 email 可以註冊一個錢包
- 對於進階用戶,可以使用 mobile wallet app 直接進行跨 App 的簽名授權與交易。
這麼一來,就可以保證交易過程都是自託管的(self-custody),用戶永遠 擁有錢包的控制權,我也不用承擔幫用戶保管 private key 的風險。另外因為知道用戶的 master wallet,所以用戶在使用前,可以請求用戶給予 Builder Fee 的授權。
技術選型與坑
- Mobile App Framework
- Expo,React Native Based 的跨平台 App 開發框架,能夠同時開發 iOS 與 Android App 並獲得近似原生的體驗,另外提供 Expo Update 能進行 Live update,小升級的情況下用戶不用重新到 App Store 重新安裝套件。
- TypeScript Hyperliquid SDK
- Hyperliquid 有兩個非官方的 SDK,@nktkas/hyperliquid 和 @nomeida/hyperliquid
- 雖然乍看之下,@nomeida/hyperliquid 的設計比較漂亮,但最終我會選擇使用 @nktkas/hyperliquid 。原因是 @nomeida/hyperliquid 只提供了透過 private key 來初始化 SDK 的方法。但能夠不碰到用戶的 private key 會是更好的選擇。而 @nktkas/hyperliquid 能夠提供了 viem 相容的 account 來初始化 SDK,這代表我們可以在不用知道用戶 private key 請用戶簽名授權與送出交易。
- 實務上,還是會遇到 @nktkas/hyperliquid 的一些內部設計問題,要記得刻意不使用某些 SDK 提供的功能。像是盡量不要使用 SymbolConverter,原因是雖然這個 helper method 方便,但其背後的實作是打另外一個 API 來取得當前的 Symbol,這個另外打的 API 會成為 Rate Limit 的破口,讓你沒辦法很好的掌握 API Rate Limit,另外你也很難確定 Symbol Converter 背後有沒有對市場做快取。
- privy
- 優點
- 優點