> For the complete documentation index, see [llms.txt](https://docs.sat20.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sat20.org/kai-fa-zhe-zhong-xin/amm-pool-quickstart.md).

# 部署智能合约模板 AMM 池

AMM 模板是当前聪网公开测试网上线的智能合约模板之一。它用于验证 AMM 逻辑在聪网智能合约框架中的全网共识执行、canonical Result TX 和 contract state root。

注意：PWA `市场` 或 DEX 中的 AMM 是 L2 市场通道合约能力，不是本文讨论的智能合约模板 AMM。本文讨论的模板 AMM 只能从 PWA `工具 -> 智能合约` 入口交互。

## 当前状态

| 项目   | 状态                |
| ---- | ----------------- |
| 合约类型 | Template Contract |
| 模板   | AMM               |
| 可用环境 | 聪网公开测试网           |
| 主网状态 | 暂未开放              |
| 费用资产 | 测试 GAS            |
| 交互入口 | PWA `工具 -> 智能合约`  |

## 基本流程

1. 部署者选择交易资产。
2. 在 PWA `工具 -> 智能合约` 中选择 AMM 模板。
3. 设置初始资产数量、初始聪数量和常数 K。
4. 部署 AMM 模板合约。
5. 向合约添加初始流动性，使资产池、聪池和 `asset * sats >= K` 满足 ready 条件。
6. 调用 `swap` 买入或卖出。
7. 调用 `addliq` 或 `removeliq` 调整流动性。
8. 出块节点生成 canonical Result TX。
9. 钱包、Explorer 和 indexer 展示池子状态、交易结果和 LP 份额。

## 部署参数

AMM 模板部署内容至少包括：

| 参数     | 含义                 |
| ------ | ------------------ |
| 资产名称   | 池子交易资产，使用聪网资产名称格式  |
| 初始资产数量 | 进入池子的初始资产数量        |
| 初始聪数量  | 进入池子的初始 satoshi 数量 |
| K      | 初始常数乘积约束           |

测试网部署前应确认：

1. 钱包有测试 GAS。
2. 目标资产已经在聪网上可用。
3. 初始资产和初始聪能够进入合约地址。
4. 初始 K 与流动性规模匹配。
5. 部署者理解测试网可能重启或回滚。

## 调用接口

AMM 模板当前核心动作：

| 动作          | 说明     |
| ----------- | ------ |
| `swap`      | 买入或卖出  |
| `refund`    | 取回可退资产 |
| `addliq`    | 添加流动性  |
| `removeliq` | 移除流动性  |

输入金额以 Call TX 转入合约地址的 funding output 为准。调用参数只应表达方向、最小可接受输出、滑点约束、deadline 等不能从 funding output 推导的内容。

## 验证清单

1. Deploy TX 是否创建了 AMM 合约地址。
2. 初始流动性是否进入合约地址。
3. 合约是否进入 ready 状态。
4. Swap 调用是否生成预期 Result TX。
5. Result TX 是否把输出资产发给用户。
6. 添加或移除流动性后，LP 份额和池子余额是否变化。
7. Explorer / Indexer / 钱包展示是否一致。

## 风险边界

1. 当前 AMM 模板合约仅用于测试网。
2. 池子价格由测试资产和测试流动性决定，不代表真实市场价格。
3. 测试网确认、索引和 Result TX 展示可能延迟。
4. 缺少 Result TX 或状态证据时，不应把页面余额当作最终结果。

**页面状态：开发中（In Development）**
