引言
Sui區塊鏈是一個高性能的Layer 1區塊鏈,以其並行執行和低延遲著稱。Cetus Protocol是Sui生態中的一個去中心化流動性協議,類似於Uniswap或Curve,專注於高效的AMM(自動做市商)機制。穩定池(Stable Pool)是Cetus中專為穩定幣設計的流動性池類型,它使用恒定和函數(Constant Sum)或混合模型來最小化無常損失,適合USDC、USDT等穩定資產的交易。
本教程將指導您在Sui主網上創建自定義的Cetus穩定池。這裡介紹2種方法,其一需要一些Sui開發知識和Move語言基礎;其二則是透過GTokenTool一鍵發幣平台,不需要專業的知識。注意:區塊鏈操作涉及風險,請確保備份錢包,並在測試網上練習。創建池子可能消耗Gas費,且提供流動性需謹慎評估。
前提條件
在開始之前,確保您具備以下條件:
Sui錢包:安裝Sui錢包(如Sui Wallet瀏覽器擴充功能)或使用Sui CLI。確保錢包中有足夠的SUI代幣(至少10-20 SUI用於Gas費)。
Sui CLI工具:安裝Sui CLI(版本1.0+)。透過以下命令安裝:
curl -fLJO https://github.com/MystenLabs/sui/releases/download/mainnet-v1.0.0/sui-mainnet-v1.0.0-ubuntu-x86_64.tgztar -xzf sui-mainnet-v1.0.0-ubuntu-x86_64.tgzsudo mv sui /usr/local/bin
驗證安裝:
sui --version。Node.js和npm(可選,如果使用腳本自動化):用於輔助工具。
Cetus SDK:克隆Cetus倉庫或透過npm安裝Cetus SDK。
npm install @cetusprotocol/cetus-sui-clmm-sdk
穩定幣資產:準備要添加到池子的穩定幣(如USDC on Sui),並確保有足夠的流動性(至少1,000 USD等值)。
開發環境:VS Code with Move插件,熟悉Sui Move語言。
網路:本教程針對Sui主網;測試時切換到Testnet。
警告:創建池子後,提供流動性前請檢查Cetus合約安全性。
方法1:使用開發者工具(需要技術背景)
步驟1: 設置Sui CLI和錢包
初始化Sui CLI:
sui client new-env --alias mainnet sui client switch --env mainnet sui client active-address # 顯示目前地址
導入或創建錢包:
如果使用CLI:sui keytool import ...(從助記詞導入)。
確保錢包連接到Sui Wallet擴充功能,並批准CLI訪問。驗證餘額:
sui client gas
如果SUI不足,請透過交易所轉入。
步驟2: 理解Cetus穩定池結構
Cetus穩定池使用CLMM(集中流動性做市商)變體,支援多資產穩定池(2-4個代幣)。關鍵參數包括:
Tick Spacing:控制價格範圍(穩定池通常為1-10)。
初始價格:基於錨定資產(如1 USDC = 1 USDT)。
費用率:穩定池推薦0.01%-0.05%。
步驟3: 準備Move合約(如果自定義)
Cetus提供現成SDK,但如果需要自定義池子,可以編寫Move模組:
創建新Sui Move專案:
sui move new my_stable_poolcd my_stable_pool
在
sources/目錄下創建stable_pool.move:module my_stable_pool::stable_pool { use sui::coin::{Self, Coin}; use sui::tx_context::TxContext; use cetus_clmm::pool::{Self, Pool}; use cetus_clmm::stable_pool; // 假設Cetus穩定池模組 const EInsufficientLiquidity: u64 = 0; public entry fun create_stable_pool<T1, T2>( coin1: Coin<T1>, coin2: Coin<T2>, tick_spacing: u64, fee_rate: u64, initial_price: u128, ctx: &mut TxContext ) { // 初始化池子 let pool = stable_pool::create<T1, T2>( coin1, coin2, tick_spacing, fee_rate, initial_price, ctx ); // 添加初始流動性 assert!(coin::value(&coin1) > 0 && coin::value(&coin2) > 0, EInsufficientLiquidity); pool::add_liquidity(&mut pool, ...); // 詳細參數參考Cetus SDK } }說明:這只是簡化範例。實際使用Cetus SDK的
createPool函數。編譯測試:sui move build。
步驟4: 使用Cetus SDK創建池子
安裝依賴並配置SDK:
// 在Node.js腳本中const { JsonRpcProvider, getFullnodeUrl, Ed25519Keypair } = require('@mysten/sui.js');const { initCetusSDK } = require('@cetusprotocol/cetus-sui-clmm-sdk');const provider = new JsonRpcProvider(getFullnodeUrl('mainnet'));const keypair = Ed25519Keypair.fromSecretKey(/* your private key */);const sdk = initCetusSDK(provider);編寫創建腳本
createPool.js:async function createStablePool() { // 資產類型:例如 USDC 和 USDT 的Object IDs const coinTypeA = '0x...::usdc::USDC'; // 替換為實際類型 const coinTypeB = '0x...::usdt::USDT'; // 參數 const tickSpacing = 1; // 穩定池緊湊間距 const feeRate = 100; // 0.01% = 100 basis points const initialSqrtPrice = Math.sqrt(1.0001); // 近似1:1價格 // 交易區塊 const tx = await sdk.Pool.createPoolTransaction({ coinTypeA, coinTypeB, tickSpacing, feeRate, sqrtPrice: initialSqrtPrice * 2**96, // Q64.64格式 }); // 簽名並執行 const result = await provider.signAndExecuteTransactionBlock({ signer: keypair, transactionBlock: tx, }); console.log('Pool created:', result.digest);}createStablePool();運行腳本:
node createPool.js
這將創建池子並返回Pool ID。
步驟5: 添加初始流動性
創建池子後,提供流動性以激活它:
使用SDK的
addLiquidity函數:// 延續上例const poolId = '0x...'; // 從結果獲取const amountA = 1000 * 1e6; // 1000 USDC (6 decimals)const amountB = 1000 * 1e6; // 1000 USDTconst liquidityTx = await sdk.Position.addLiquidityTransaction({ poolID: poolId, amountA, amountB, lowerTick: -100, // 價格範圍 upperTick: 100,});// 簽名執行類似上步批准代幣:確保錢包批准Cetus合約花費您的穩定幣。
驗證:使用Sui Explorer(https://suiexplorer.com)查看池子狀態。
步驟6: 測試和部署
測試網測試:切換到Testnet,重複步驟。從水龍頭獲取Testnet SUI。
主網部署:確認所有參數後,在主網執行。
監控:使用Cetus儀表板(https://app.cetus.zone)追蹤池子APR和交易量。
方法2:使用GTokenTool一鍵發幣平台(無需專業知識)
1. 連接錢包
進入創建流動性頁面:https://sui.gtokentool.com/zh-CN/LiquidityManagement/createPool
右上角選擇 Main 網路並連接錢包,建議使用 Suiet 錢包。
2. 選擇基礎代幣
選擇基礎代幣後,下面會顯示基礎代幣的餘額。
3. 選擇報價代幣
選擇報價代幣後,下面會顯示報價代幣的餘額。
4. 設置初始價格
5. 填寫加池的報價代幣數量
填寫好加池的報價代幣數量後,會自動計算出基礎代幣數量。
6. 點擊「創建」
彈出錢包後,點擊確認。交易成功下方會顯示交易雜湊,點擊雜湊可以跳轉區塊鏈瀏覽器查看交易。

常見問題排查
Gas不足:增加SUI餘額或優化交易。
合約錯誤:檢查Move編譯日誌。常見:類型不匹配或Tick越界。
流動性不平衡:穩定池要求初始比例接近1:1。
SDK版本:確保與Cetus最新版本匹配(
npm update)。如果失敗:查看交易日誌
result.effects。
結論
恭喜!您已在Sui上創建了Cetus穩定池。這將為您提供被動收入機會,透過交易費分成。繼續探索Cetus的激勵計劃(如農場)。
