本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
这段代码做什么。 在你选择的费用层级创建新的 CLMM 池,然后开启初始集中头寸。两笔交易,一个脚本。代码来自
raydium-sdk-V2-demo/src/clmm 中的官方演示,并适配为单个 Node 可运行的文件。准备工作
确保你已阅读 快速入门先决条件,拥有RPC_URL、KEYPAIR 和安装好的依赖项。
CLMM 池创建需要一次性费用,加上初始头寸的按 tick 数组租金。你还需要在钱包中拥有两种种子币种——当价格落在选择的范围内开启头寸时,需要两边都有流动性。
步骤 1 — config.ts
保存为 config.ts。形式与演示仓库的 src/config.ts.template 相同——disableFeatureCheck 被强制设置为 true(对于任何非平凡的集成都推荐这样做,这样 SDK 就不会在启动功能检测调用时阻塞):
步骤 2 — createPool.ts
与 config.ts 并排保存。源代码:src/clmm/createPool.ts。
步骤 3 — createPosition.ts
源代码:src/clmm/createPosition.ts。
步骤 4 — utils.ts
源代码:src/clmm/utils.ts。
运行
刚才发生了什么
交易 1 —raydium.clmm.createPool 初始化了:
- 位于
(mint1, mint2, ammConfig)的规范 PDA 处的池状态, token_0_vault和token_1_vault(按 mint 字节顺序排序),observation环形缓冲区,- 内联 tick 数组位图,
initialPrice 设置初始 sqrt_price_x64。
交易 2 — raydium.clmm.openPositionFromBase 开启了一个集中头寸:
- 向你的钱包铸造了头寸 NFT(NFT 就是 头寸;转移它就转移头寸),
- 在下界和上界分配了 tick 数组(首个头寸在这些范围内时需一次租金;tick 数组不会被程序关闭,所以后续头寸在同一数组中无额外租金),
- 存入了
mint1的inputAmount和匹配的mint2对应金额(由PoolUtils.getLiquidityAmountOutFromAmountIn计算), - 根据范围宽度赋予头寸相应流动性。
[0.000001, 100000])实际上是全范围;收紧范围来浓缩当前现货附近的手续费。
选择费用层级
clmmConfigs[0] 是最低费用层级。完整集合在 GET https://api-v3.raydium.io/main/clmm-config 发布:
| 索引 | tradeFeeRate | Tick 间距 | 用途 |
|---|---|---|---|
| 0 | 100(1bp) | 1 | 稳定币对稳定币,预期极低的无常损失 |
| 1 | 500(5bp) | 10 | 高度相关的资产(如流动性质押币对其基础资产) |
| 2 | 2_500(25bp) | 60 | 标准代币对,蓝筹币加稳定币 |
| 3 | 10_000(1.00%) | 120 | 高波动或薄流动性对,IL 风险高 |
user-flows/choosing-a-pool-type 了解完整决策矩阵。
常见错误
Pool already exists for this config— 此(mint1, mint2, ammConfig)组合已存在 CLMM 池。查找现有池 ID 并跳过第 2 步。Insufficient funds for amount B— 你的钱包有请求的mintA数量,但没有匹配的mintB。当价格在范围内开启头寸时需要两边都有流动性。Tick out of range— 你的lowerPrice或upperPrice超出了可表示的价格范围。相对于当前价格使用更合理的范围。- 价格过时 — API 的报价可能落后 5-60 秒。如果
executePosition因滑点失败,在createPosition.ts中取消注释getRpcClmmPoolInfo代码块,在签署前重新获取实时价格。
注意事项
- 头寸 NFT 是你的唯一句柄。 丢失 NFT 或转移它就会失去对头寸的访问权限。把它当作钥匙对待。
- 范围外头寸赚不了手续费。 如果价格移动到
[lowerPrice, upperPrice]之外,你的头寸完全停留在一种资产中,直到你重新平衡前一分钱也赚不到。 - Tick 数组租金是单向的。 首个接触从未初始化的 tick 数组的头寸需支付租金;程序不提供关闭 tick 数组的路径,所以租金是永久的。后续在同一数组中的头寸是免费的。
下一步
products/clmm/overview— 完整 CLMM 机制。products/clmm/ticks-and-positions— tick 的数学原理。algorithms/impermanent-loss— 量化 CLMM IL 放大。user-flows/create-clmm-pool— 通过 Raydium UI 的同一流程。

