> This is part 1 of 2 of the full documentation (pages 1–100 of 119).
> The content is paginated: fetch every part to see all of it.
> Next part: https://ch-docs.aftermath.finance/llms-full.txt/1
> Page index: https://ch-docs.aftermath.finance/llms.txt

# 关于我们

Aftermath 是构建在 Sui 区块链上的全链上交易所。交易、强制平仓（清算）与结算均由智能合约执行并在链上最终敲定，结果可独立验证。

### 为什么这很重要

中心化交易所托管您的资产。一旦交易所倒闭，您可能沦为无担保债权人。许多“链上”交易平台改善了托管方式，但撮合仍在链下完成——那是一个用户无法完全审计的黑箱。

我们认为，仅靠信任并不够。

在 Aftermath，区块链就是交易所：核心执行逻辑运行在链上，成交与清算可供审计，所有权限与参数都在链上一目了然。

不要信任。

去验证。


# 我们在构建什么？

Aftermath 正在打造一个快速、低成本、完全透明的一站式平台，集交易、投资与收益于一体。我们专注于在旗下所有市场提供直观的用户体验。我们制定了多年期路线图，新产品完成开发、测试与审计后将陆续上线。

## 流动性池

我们的恒定函数做市商（CFMM）支持创建最多包含 8 种资产、权重任意配置的流动性池，并同时支持恒定均值与稳定兑换两类不变量函数。指数池可用于投资组合管理、现货兑换和流动性挖矿。多资产池搭配稳定兑换不变量，将为稳定币、ETH、BTC 等经由 Sui 各跨链桥进入的资产提供滑点最低的交易。

## 交易

我们的智能订单路由会在任意两种资产之间寻找最优成交路径——无论交易经由 Aftermath 自有流动性池，还是路由已接入的任何其他 Sui DEX 完成。凡允许我们接入且流动性充足的 DEX，我们都会接入。

## **流动性质押衍生品**

我们的流动性质押衍生品（LSD）afSUI 是一种生息代币：SUI 代币既能质押以保障网络安全，又能保持流动，在 Sui 的 DeFi 生态中随处可用。通过 [SIP6 与 afSUI](https://docs.aftermath.finance/liquid-staking-afsui/afsui)，Aftermath 开创了 Sui 上的流动性质押。

## **永续合约**

我们的永续合约市场采用针对 Sui 的速度与吞吐量优化的订单簿执行层，交易者可以杠杆交易加密货币、外汇、大宗商品和 GameFi 资产等多类标的。通过 SDK 提供的交易机器人和 LP 金库，散户也能参与做市，为交易者带来深厚的流动性和极窄的价差。

## MEV

作为 Sui 上最早的建设者之一和创世验证者，Aftermath 构建了大量专为 Sui 量身打造的产品与基础设施，对 Sui 运作的每个环节都了如指掌。欢迎关注 [Concurrent Research](https://concurrentresearch.xyz/)，抢先了解即将到来的新动向。

## **借贷**

我们的货币市场采用隔离借贷池，Sui 网络资产的持有者可以借此赚取收益、获取杠杆或做空资产。这套借贷架构既能为 Sui 这样的新兴生态提供所需的流动性与安全性，又具备向 NFT 借贷等更多领域扩展的模块化设计。

## **结构化产品**

Aftermath 立足于 Sui 生态的长期发展。我们的产品路线图横跨多年，而且新的构想仍在不断涌现。从在订单簿上做市的金库、一键对冲策略，到跨链衍生品套利、利率互换……在我们的基础产品之上可以构建的策略不胜枚举。

## 共建 Sui 生态

我们始终乐于与其他开发者交流，探索合作方向、共同打造产品，或提供技术支持。如有任何问题或想法，欢迎通过社交渠道联系我们。


# 创建账户

了解如何通过以下方式创建钱包：

#### [zkLogin](/ru-men-zhi-nan/creating-a-sui-account-with-zklogin/zklogin)

#### [Sui Metamask Snap](/ru-men-zhi-nan/creating-a-sui-account-with-zklogin/sui-metamask-snap)

#### [原生 Sui 钱包](/ru-men-zhi-nan/creating-a-sui-account-with-zklogin/native-sui-wallets)


# zkLogin

zkLogin 让上手 Sui 变得轻而易举

如果您刚接触 Sui 生态、还没有 Sui 钱包，[Sui 原生的 zkLogin](https://sui.io/zklogin) 能让创建新账户变得非常简单。无需再抄写助记词，只要有 Google 或 Twitch 等现成的 Web2 账号，即可创建新钱包。这一切依托零知识证明实现：在不向链上暴露任何个人信息的前提下，确认用户就是账户所有者。

首先打开 [Aftermath dApp](https://aftermath.finance/)，点击屏幕顶部导航栏右侧的 Login / Connect 按钮。点击后会弹出钱包连接窗口。

菜单顶部是 Google 和 Twitch 的图标。点击任一图标，即可用您已有的 Google 或 Twitch 账号创建一个新的 Sui 钱包，用于 Aftermath。

如果尚未登录 Google 或 Twitch 账号，系统会先提示您登录。登录完成后会自动跳回 Aftermath，页面上会短暂显示 *Completing login...* 提示。zkLogin 创建好新钱包后，原先 Connect / Login 按钮的位置会显示您的 Sui 地址。钱包下拉菜单顶部会显示 Google 或 Twitch，提醒您当前使用的登录凭证。

至此，您已可以开始使用 Aftermath。最后一步是为新钱包充值：点击 Sui 地址（以 0x 开头）旁的剪贴板图标复制地址，然后[通过跨链桥](/ru-men-zhi-nan/navigating-aftermath/bridge)、从其他 Sui 钱包、或从支持 Sui 网络的中心化交易所向新钱包转入资金。


# 移除 zkLogin 账户

如需从 Aftermath 移除此前设置的 zkLogin 账户及其全部相关数据，按以下步骤操作即可：

1. 点击网站右上角的钱包下拉按钮。
2. 点击您想移除的地址所对应的登录方式（Google 或 Twitch）。
3. 点击"Forget all Google/Twitch wallets"

完成！注意此操作不可逆，请在继续前确认您确实要忘记该钱包。另外，zkLogin 也可以通过其他服务创建，比如其他 dApp 或钱包。此操作不会影响那些账户，只会移除您通过 Aftermath 创建的账户。如有任何疑问，欢迎在 Discord 联系我们，我们乐意提供帮助。


# Sui Metamask Snap

通过 Snaps 为您现有的 Metamask 钱包添加 Sui 网络

想在 Aftermath 上使用 Metamask 钱包，安装 Sui Metamask Snap 即可。Snaps 是由第三方开发者构建的应用，可为 Metamask 扩展功能，包括连接 Sui 这类非 EVM 网络。更多信息见 [Metamask Snaps FAQ。](https://support.metamask.io/hc/en-us/articles/18245938714395-MetaMask-Snaps-FAQ)

要将 Sui Snap 安装到 Metamask 钱包，先前往 Snaps 目录中的 Sui Snap 页面：[Sui Metamask Snap](https://snaps.metamask.io/snap/npm/kunalabs-io/sui-metamask-snap/)

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-a5c940c4d1369c385b9865123af8e67f87fa0355%2FScreenshot%202024-02-22%20at%205.19.54%20PM.png?alt=media" alt=""><figcaption><p>Sui Snap</p></figcaption></figure>

点击 Add to Metamask 按钮，会出现第三方软件提示。点击 Accept 后，Metamask 浏览器钱包窗口会弹出，提示您连接 Sui Snap。

<div align="left"><figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-cdf05a14fbecbe9d80269abf4dce8ff04113f635%2FScreenshot%202024-02-22%20at%205.22.50%20PM.png?alt=media" alt="" width="373"><figcaption><p>第三方软件提示</p></figcaption></figure> <figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-60711b63858ae3bd3ffe4888b9c347a94451ce04%2FScreenshot%202024-02-22%20at%205.24.47%20PM.png?alt=media" alt="" width="369"><figcaption><p>连接请求</p></figcaption></figure></div>

点击 Connect，随后会出现安装请求和确认页面。点击 Install，再点击 Confirm 继续。

<div align="left"><figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-e0dfdae38e6d9facf2fc91a4478092b4842f744b%2FScreenshot%202024-02-22%20at%205.32.38%20PM.png?alt=media" alt="" width="373"><figcaption><p>安装请求</p></figcaption></figure> <figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-a7d9ab2aa0fa1d768e294ee7160005d120c3cc8d%2FScreenshot%202024-02-22%20at%205.34.19%20PM.png?alt=media" alt="" width="375"><figcaption><p>确认 Sui 账户管理</p></figcaption></figure></div>

随后会出现确认提示，表明 Sui Snap 已安装完成。点击链接前往 [Suisnap.com](https://suisnap.com/)，将 Metamask 连接到 Sui。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-256efbac8d6d45225d615c82cf8854028ece39bb%2FScreenshot%202024-02-22%20at%205.43.36%20PM.png?alt=media" alt="" width="375"><figcaption><p>Sui Snap 安装完成</p></figcaption></figure>

进入 Sui Snap 主页后，系统会提示您连接 Metamask。点击 Connect，您的钱包就会在浏览器中显示。

<div align="left"><figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-00b31cc989c71f0c410d94b254fecc6ac1502ffe%2FScreenshot%202024-02-22%20at%205.47.46%20PM.png?alt=media" alt="" width="375"><figcaption><p>连接 Metamask Sui Snap</p></figcaption></figure> <figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-e254154d7c5c27b28589eb55d2958f10d39f1b46%2FScreenshot%202024-02-22%20at%205.48.29%20PM.png?alt=media" alt="" width="375"><figcaption><p>Metamask 已连接到 Sui</p></figcaption></figure></div>

现在就可以在 Aftermath 上使用 Metamask 钱包了。打开 Aftermath dAPP，点击屏幕顶部导航栏右侧的 Login / Connect 按钮。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-3558c0347b7b7e3ef1af8c5e2d7dec8f7d12dec2%2FScreenshot%202024-02-22%20at%205.55.22%20PM.png?alt=media" alt=""><figcaption><p>Aftermath 导航栏</p></figcaption></figure>

Login / Connect 钱包窗口会弹出，选择 Metamask Snap。随后 Metamask 浏览器扩展会提示您连接 Aftermath，点击 Connect 继续。

<div align="left"><figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-2deb9bad2a758aa4ec41b76853f30724e60d9d77%2FScreenshot%202024-02-22%20at%205.57.51%20PM.png?alt=media" alt="" width="370"><figcaption><p>Login / Connect 窗口</p></figcaption></figure> <figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-dc75b02837b88b15c51e899a2c28d3eddfbe4565%2FScreenshot%202024-02-22%20at%206.00.28%20PM.png?alt=media" alt="" width="375"><figcaption><p>连接请求</p></figcaption></figure></div>

您的 Metamask 现已连接到 Aftermath。点击屏幕顶部导航栏中原 Login / Connect 按钮位置显示的地址，即可在 Aftermath 上查看您的 Metamask。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-98ead4b52ff366f8426cf033dfe25b5295ccfbe7%2FScreenshot%202024-02-22%20at%206.05.53%20PM.png?alt=media" alt="" width="375"><figcaption><p>Metamask 已连接到 Aftermath</p></figcaption></figure>

现在就可以用 Metamask 钱包开始使用 Aftermath 了。


# Sui 原生钱包

为您的浏览器添加 Sui 钱包扩展

可添加到常用浏览器的原生 Sui 钱包有很多。这些钱包既安全又易用，选哪一款纯属个人偏好。我们推荐 Sui Wallet、Nightly 或 Phantom，兼顾易用性与安全性。

首先打开 Aftermath dApp，点击屏幕顶部导航栏右侧的 Login / Connect 按钮。

钱包连接界面会弹出，列出可在 Aftermath 上使用的钱包。点击任何标记为 Not installed 的钱包，会跳转到官方应用商店，您可以在那里将扩展安装到浏览器。

按照应用商店页面上的说明操作，即可完成钱包在浏览器中的安装。


# 动态 Gas

消除进入 Sui 生态的门槛

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2FU2pvTymqhLt1nwqvVSLZ%2FScreen%20Recording%202025-03-27%20at%2012.09.19%E2%80%AFPM.mp4?alt=media&token=1989f4f4-6a3b-464b-961c-50f792361ed8>" %}

初次进入一条新公链的生态，最让人头疼的环节之一就是先弄到原生代币来支付交易费。为了让刚接触 Sui 生态的用户获得顺畅体验，Aftermath 打造了动态 Gas。

动态 Gas 允许用户使用 SUI 以外的币种支付 Gas，在 Aftermath 上执行任何交易。这一功能依托 Sui 的两项原生特性实现：赞助交易（Sponsored Transactions）和可编程交易（Programmable Transactions）。其原理是：Aftermath 用 SUI 为交易垫付 Gas，再以用户选定的币种向其收取费用，整个过程在同一笔操作中完成，对用户完全透明无感。

动态 Gas 支持多种稳定币和 Sui 生态代币。要选择用哪种代币支付 Gas，点击屏幕顶部菜单栏右侧的加油泵图标。

现在即可选择用于支付交易费的币种。勾选"Show Zero Balance"可查看所有受支持币种的完整列表，包括钱包中没有余额的币种。

选择任意一种有余额的资产。若当前用作 Gas 的资产不是 SUI，界面上会出现相应图标提示。

选定 SUI 以外的币种作为 Gas 后，执行交易时您会看到该币种的余额流出，用于支付交易费。例如下图中，LBTC 被指定为动态 Gas 币种：

就这么简单！无论钱包里有没有 SUI，动态 Gas 都能让您在 Sui 上顺畅交易。


# Aftermath 导览

在哪里找到我们的各类产品并查看您的全部余额

首次进入 Aftermath.Finance 首页时，您会看到两个按钮，直达我们最常用的两项功能：用于兑换的智能订单路由，以及流动性质押衍生品 afSUI。首页顶部是我们的 Discord、Twitter 及 dApp 链接。

打开 dApp 后，屏幕最顶部有一条菜单栏，方便您在各类产品和功能之间快速切换。下面从左到右逐一介绍：

## Trade（交易）

点击 Trade 按钮进入智能订单路由（SOR），可在任意两种资产之间兑换。SOR 是一个 DEX 聚合器，接入了 Sui 上所有头部流动性来源。它还能发现经过多个 DEX 的复杂路径，甚至可以拆分订单，让一部分走一条路由、其余部分走其他路由。这一切确保您的每笔交易都拿到最优回报，无需手动比价多个交易所——SOR 替您完成。更多信息见文档的 [Trade](https://github.com/AftermathFinance/docs/blob/collin-aftermath/ts-sdk/getting-started/navigating-aftermath/broken-reference/README.md) 章节。

## Stake SUI（质押 SUI）

进入 Stake SUI 页面即可铸造我们的流动性质押衍生品（LSD）afSUI。使用原生 SUI 质押时，您通过维护 Sui 网络安全赚取奖励，但 SUI 代币会锁定在钱包中，无法再用于 DeFi 中的其他用途。而使用 afSUI，您在赚取同样质押奖励的同时，还会获得一个流动性代币，可用于多种其他场景。关于 afSUI 的更多信息，见文档的 [Liquid Staking](https://github.com/AftermathFinance/docs/blob/collin-aftermath/ts-sdk/getting-started/navigating-aftermath/broken-reference/README.md) 章节。

## Earn（赚取）

将鼠标悬停在 Earn 按钮上，会出现一个下拉菜单，包含 Pools 和 Farms 页面的链接。在 Pools 中，您可以成为 Aftermath 的流动性提供者（LP），从 AMM 的交易活动中赚取手续费。Farms 则允许您将存入资金池后获得的 LP 代币质押起来，赚取额外奖励。更多信息见文档的 [Pools ](https://github.com/AftermathFinance/docs/blob/collin-aftermath/ts-sdk/getting-started/navigating-aftermath/broken-reference/README.md)和 [Farms](https://github.com/AftermathFinance/docs/blob/collin-aftermath/ts-sdk/getting-started/navigating-aftermath/broken-reference/README.md) 章节。

## Portfolio（资产组合）

Aftermath 提供多种产品，而 Portfolio 页面让您在一处跟踪所有资产。无论您是 LP、已质押到 Farm、铸造了 afSUI，还是想查看自己在 Aftermath 上的活动记录，都能在 Portfolio 中一览无余。更多信息见文档的[查看资产组合 ](/ru-men-zhi-nan/navigating-aftermath/viewing-your-portfolio)章节。

## 钱包

菜单栏的下一个按钮用于操作您的钱包。如尚未连接钱包，此处显示"Connect Wallet"；已连接时则显示当前所用钱包的 Sui 地址。更多信息见文档的[操作您的钱包 ](/ru-men-zhi-nan/navigating-aftermath/interacting-with-your-wallet)章节。

## 设置

为了给用户提供最佳体验，Aftermath 支持高度个性化配置。用哪种币支付 Gas、浅色或深色模式、页面布局等参数都可以在这里修改。更多信息见[更改设置](/ru-men-zhi-nan/navigating-aftermath/changing-your-settings)页面。


# 与钱包交互

Aftermath 内置钱包界面，可在多个浏览器扩展钱包和账户之间切换，并查看您的代币与活动记录。

## 连接钱包

应用最右上角有一个"Connect Wallet"按钮。点击后即可连接您偏好且已安装的任意钱包。如尚未安装 Sui 钱包，点击您想用的钱包即可跳转到对应的安装页面。

## 在钱包和账户之间切换

如果安装了多个钱包或拥有多个账户，想切换到其他钱包或账户，可通过钱包下拉菜单完成。点击显示您地址的绿色按钮即可打开菜单。

## 查看持仓与活动记录

通过钱包窗口，您可以查看自己的代币、仓位以及在 Aftermath 上的全部活动。连接后打开钱包下拉菜单，会看到 Portfolio 和 History 两个标签页。Portfolio 标签页显示您当前持有的代币和 NFT、进行中的 DCA 订单，以及 Pool 和 Farm 仓位。History 标签页显示您过往的兑换、DCA、Pool 和 Farm 活动。

点击每笔交易对应的链接，即可在区块浏览器中查看该交易的详情。

## 发送代币

您也可以通过 Aftermath 钱包界面轻松向其他 Sui 地址发送代币。SUI 代币余额下方有一个 Send 按钮，点击即可打开发送代币菜单。随后可选择任意有余额的代币，发送到其他 Sui 地址。

选定要发送的代币后，系统会提示您输入目标地址和发送数量。填好后点击下一步，会出现确认页面。核对无误后点击 Send，转账即完成。

## 查看您的 NFT

在 Aftermath 钱包下拉菜单中，点击 Portfolio 标签页下的 NFTs 即可查看您的 NFT。选中某个 NFT 后，可查看其名称、描述、创作者和 Object ID。点击 Object ID 会在您设定的区块浏览器中打开该 NFT，点击 View Project 按钮则可访问项目官网。

## 转移 NFT

您也可以点击 NFTs 标签页底部的 Transfer 按钮来转移 NFT。将接收方的 Sui 钱包地址粘贴进去，点击 Next 核对交易。确认要转移的 NFT 和目标地址无误后，点击 Transfer 完成交易。


# 查看投资组合

轻松跟踪您的全部资产与活动

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2FpYT4NZFGCeM79P1IAN4P%2FPortfolio.mp4?alt=media&token=1364e4a5-3444-443c-91af-64a5f69cc812>" %}

通过 Aftermath 应用内钱包窗口，您可以轻松跟踪自己的全部资产与活动。点击屏幕顶部导航栏右侧显示您地址的绿色按钮，即可打开钱包。

在已连接账户和总余额下方，有 Portfolio 和 History 两个标签页。Portfolio 跟踪您的全部资产与仓位，History 记录您在 Aftermath 上的交易。

Portfolio 标签页下设 Holdings、Trade、Earn 三个子标签。点击 Holdings 可查看您的代币和 NFT；Trade 子标签显示进行中的 DCA 订单；Earn 显示您在 Aftermath 的 Pool 和 Farm 中的活跃仓位。

History 标签页显示您在 Aftermath 上的交易记录，下设 Trade 和 Earn 两个子标签。Trade 显示您在 Aftermath 聚合器上的兑换活动，以及已完成的历史 DCA 订单；Earn 显示您与 Pool 和 Farm 相关的交易，如存入、重新锁定或领取奖励。


# 更改设置

屏幕顶部菜单栏最右侧有一个齿轮图标。点击它可以自定义 Aftermath Finance dApp 的显示与交互方式。

设置菜单中可按您的偏好配置以下参数：

Theme（主题）：在浅色和深色模式之间选择

Explorer（区块浏览器）：在 Aftermath 上任何可以查看交易历史的地方，都有一个跳转到区块浏览器的按钮，方便您查看交易详情。不同用户偏好不同的浏览器，因此我们提供 SuiVision、Suiscan 和 Sui Explorer 三种选择。在此设定偏好后，点击这类链接时将始终使用您选定的浏览器。

Network（网络）：在主网和测试网之间切换。

Sui RPC Endpoint（Sui RPC 端点）：按需切换 RPC 端点。

Notification Display（通知位置）：指定通知出现的位置。


# 跨链桥

一个流程。一个界面。全链跨链。

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2FRlC9UxnpAzi3g4HDCRhd%2FScreen%20Recording%202025-04-17%20at%209.21.24%E2%80%AFAM.mp4?alt=media&token=86b9ecbc-cf76-4722-8ac2-3efd4f012fc5>" %}

得益于我们与 [Mayan](https://x.com/MayanFinance) 的原生集成，将资产跨链到 Sui 从未如此简单：您可以轻松地把 B 链上的代币 A 兑换成 Sui 上的代币 C，反向亦然。开始使用前，先从屏幕顶部导航栏进入 Bridge 页面。

进入 Bridge 页面后，会看到一个与 Swap 页面十分相似的交易窗口，但多了几项功能。在 **Pay** 和 **Receive** 字段旁各有一个下拉菜单，用于指定从哪条链发送资产、在哪条链接收资产。

首先，连接您要从中跨链到 Sui（或从 Sui 跨出）的那条链的钱包。点击 Login / Conect 后，系统会提示您连接钱包（Metamask、Phantom 等）。选好要用的钱包后，会提示您连接到 Aftermath，点击 Connect。

连接完成后，流程与在 Sui 上进行普通代币兑换完全相同，只是需要指定发送链和接收链。通过 **Pay** 和 **Receive** 字段中的下拉菜单，可选择多条不同的链。如需更换已连接的钱包，点击其地址并选择断开连接，然后连接您想用的其他钱包即可。

确定好兑出的链与资产、以及兑入的链与资产后，点击 **Confirm and Bridge** 即可发起兑换。

就这么简单！借助由 Mayan 驱动的 Aftermath 跨链兑换，进出 Sui 的跨链与兑换从未如此轻松。


# 推荐计划

好东西值得分享

通过推荐功能，用户可以邀请他人加入 Aftermath 社区，在我们的 dApp 上交易、质押或提供流动性。推荐涉及两方：推荐人和被推荐人。推荐人是现有的 Aftermath 用户，负责生成推荐链接并分享给朋友；被推荐人则是通过推荐链接来到 Aftermath 并开始使用 dApp 的一方。

您的专属推荐链接位于 Trade 和 Stake 页面底部的 Share and Earn Rewards 横幅中。点击 Copy Referral Link 按钮，即可将专属推荐链接复制到剪贴板，然后通过社交媒体分享。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-875249da40f3aa4160540f80ec060ebd4bba0d12%2FScreenshot%202024-02-26%20at%207.58.17%20PM.png?alt=media" alt=""><figcaption></figcaption></figure>

被推荐人点击您的链接时，URL 中会携带您的推荐信息。被推荐人在 Aftermath 上执行任意一笔交易后，您的推荐关系就会存储在链上，该用户之后的所有交易都会计入您的名下。

被推荐人只需通过推荐链接执行一笔交易，推荐人即与其账户绑定。此后的所有交易都会视同通过推荐链接执行，无论实际是否如此（例如该用户用同一地址在另一台设备上通过非推荐链接访问）。

由于推荐关系存储在链上，除非被推荐人使用新的推荐链接执行交易，否则该关系将永久有效。一旦使用了新的推荐链接，新推荐关系将取代旧的。

推荐关系绑定推荐人的 Sui 地址，并在 Aftermath 的所有产品中通用。例如，就推荐而言，从 Trade 页面生成的推荐链接与从 Stake 页面生成的完全等效。

目前，被推荐人可享受 Aftermath 协议费用 5% 的折扣。推荐人的活动会被记录，但暂无返佣。


# 自动确认

自动确认（也称自动批准或自动签名）让您无需在钱包中逐笔手动确认，即可批准交易。对于在 Aftermath 永续合约上高频操作的活跃交易者来说，这一功能尤其有用——速度就是一切。

自动确认目前尚未在 Sui 协议层获得原生支持。不过，以下方式支持自动确认：

* [zkLogin](/ru-men-zhi-nan/auto-confirmation/zklogin) - 内置自动确认，无需任何设置。
* [Nightly 钱包](/ru-men-zhi-nan/auto-confirmation/nightly-wallet) - 内置自动批准开关
* [Backpack 钱包](/ru-men-zhi-nan/auto-confirmation/backpack-wallet) - 通过设置开启自动批准

在下方选择您的钱包或登录方式，查看详细说明。


# zkLogin

如果您通过 zkLogin（Google、Apple、Facebook 等）登录，自动确认默认开启，无需任何配置。

zkLogin 的原理是生成一个短期有效的临时密钥，直接在浏览器中代表您签署交易。整个过程不涉及钱包扩展，因此不会有确认弹窗。

您提交的每笔交易都会即时自动签名。

> 注意：会话会定期过期，届时需要重新通过 OAuth 提供方（如 Google）验证身份。这是正常现象，可确保您的临时密钥安全。


# Nightly 钱包

[Nightly 钱包](https://chromewebstore.google.com/detail/nightly/fiikommddbeccaoicoejoniammnalkfa)原生支持自动确认。

### 开启方法

1. 打开 Nightly 钱包扩展，进入 Settings
2. 点击 Trusted apps
3. 在列表中找到或添加 aftermath.finance，然后展开该条目
4. 选择时长（如 15m、30m、1h、24h 或 ∞），并打开自动确认开关

开启后，在 Aftermath 上的交易将自动签名，无需每笔操作都弹窗确认。

> 注意：随时可以关闭同一开关来停用自动确认。


# Backpack 钱包

[Backpack 钱包](https://chromewebstore.google.com/detail/backpack/aflkmfhebedbjioipglgcbcmnbpgliof)会在您首笔交易时显示自动批准弹窗。

### 开启方法

1. 在 Aftermath 上发起任意一笔交易（如兑换或交易）
2. Backpack 会弹出"Auto-approve transaction signing"提示
3. 打开开关，即可启用 24 小时自动批准

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-212eb32fb2962cbebbaf49ac04f2d9bd35e687e4%2Fphoto_2026-02-10%2022.21.37.jpeg?alt=media" alt=""><figcaption></figcaption></figure>

开启后，在 Aftermath 上的交易将自动签名，无需每笔操作都弹窗确认。

> 注意：随时可以关闭同一开关来停用自动确认。


# 概览

Aftermath Perpetuals 是 Sui 上完全链上的永续合约交易所。每一笔订单、撤单、成交和清算都在链上透明执行。

### 技术概览

协议在链上运行永续合约的中央限价订单簿（CLOB）。与依赖链下排序器的混合架构不同，Aftermath 的全部撮合逻辑都直接在 Move 智能合约中执行。这保证了可验证的执行，并消除了中心化组件带来的交易对手风险。

保证金资产存放在用户自己控制的账户中，而非集中托管，并可在逐仓模式下用于所有市场。清算是无许可的，任何参与者都可以清算资不抵债的仓位并赚取费用。

### 核心特性

afLP 金库为做市提供社区共有的流动性。存款人分享交易费用和金库的 PnL（盈亏），无需主动管理，也无需特殊准入。

价格来自预言机聚合器，支持 Pyth、Stork 和 Switchboard 的数据源。标记价格取盘口价格、资金价格和 TWAP（时间加权平均价格）的中位数，防止价格操纵触发清算。

清算系统采用四层损失缓释级联：部分清算、保险基金兜底、损失分摊和自动减仓。这既保护了健康的交易者，也确保系统始终保持偿付能力。


# afLP 金库

afLP 金库是社区共有的做市金库，从 Aftermath 永续合约交易所的交易活动和清算中赚取费用，并与存款人分享 PnL。

### 工作原理

金库向订单簿提供被动流动性。存款人获得 afLP 代币，代表其在金库资产中的份额。收益来自金库订单成交时收取的交易费用，以及做市活动产生的交易 PnL（盈亏）。

与私下的做市安排不同，afLP 是无许可的。任何人都可以存入资金、分享金库的业绩表现，无需特殊准入或单独协商条款。

### 存入与提取

存款目前有 4 天的锁定期。锁定期结束后即可申请提取。这可以防止存款人在预期亏损前抢先撤资，或利用短期波动套利。

提取申请挂起 1 天后，您可以从 afLP 强制提取流动性。这确保您**始终**有能力从 afLP 取回自己的资金。

### 风险

如果做市仓位出现亏损，金库价值可能下降。存款人承担金库交易 PnL 的盈利与亏损两个方向。这不是无风险的收益产品。


# 交易

在 Aftermath Perpetuals 上交易的运作方式

本节涵盖在 Aftermath Perpetuals 上交易所需了解的一切——从可交易的市场、可下的订单，到价格、费用、保证金和清算的底层机制。

### 市场

Aftermath 同时提供加密资产和代币化现实资产市场。各上线市场的参数（包括 24/7 与 24/5 交易时段的区别）见[市场规格](/yong-xu-he-yue/architecture/market-specifications)。

### 订单

[订单类型](/yong-xu-he-yue/architecture/order-types)逐一介绍交易所支持的每种订单——市价单、限价单、止损触发单、阶梯订单、OTO 和 TWAP 订单。[SL/TP](/yong-xu-he-yue/architecture/sl-tp)讲解如何为仓位挂载止损和止盈订单，[自成交预防](/yong-xu-he-yue/architecture/self-trade-prevention)说明当您自己的订单可能互相成交时会发生什么。

### 价格与资金费率

每个市场都通过[预言机](/yong-xu-he-yue/architecture/oracle-prices)和多头与空头之间定期交换的[资金费率](/yong-xu-he-yue/architecture/funding)锚定其标的资产。

### 费用

交易成本和费率等级见[费用](/yong-xu-he-yue/architecture/fees)。第三方前端和集成商可以通过 [集成商代码（前端费用）](/yong-xu-he-yue/architecture/builder-codes-front-end-fee) 从其路由的订单流中赚取费用。

### 保证金与风险

[保证金](/yong-xu-he-yue/architecture/margin)讲解保证金资产、杠杆和保证金要求。跌破维持保证金的仓位由[清算](/yong-xu-he-yue/architecture/liquidations)处理。

### 账户

[账户](/yong-xu-he-yue/architecture/account)涵盖链上账户模型、代理钱包、子账户和免 Gas 交易。[自动确认](/yong-xu-he-yue/architecture/auto-confirmation)让您交易时无需逐笔弹出钱包确认。专业交易者还应参阅[做市商](/yong-xu-he-yue/architecture/market-makers)。


# 清算

## 概览

我们的永续合约交易所实现了一套稳健的多层清算与损失缓释系统，旨在有效处置资不抵债的仓位，同时把对健康交易者的影响降到最低。清算人可以自由选择在订单簿上卖出，或自己持有被清算的头寸。当盘口价格优于强制平仓（清算）价格时，清算人自然有动力在订单簿上卖出被清算的头寸。

缓释策略由三层递进级联组成：<br>

* 保险基金兜底
* 损失分摊
* 自动减仓（ADL）

当仓位的保证金跌破**维持保证金要求**时进入清算。可能的原因包括：

* \*\*价格变动：\*\*指数价格向不利于用户的方向变动，未实现 PnL（盈亏）侵蚀保证金。
* \*\*资金费用：\*\*如果账户处于资金费率的支付方，持续的资金费用会减少保证金资产余额。

{% hint style="info" %}
如果提取保证金资产或下单会突破初始保证金要求，系统会直接阻止这些操作，因此它们本身不会触发清算。
{% endhint %}

***

## 标记价格

为防止市场操纵（例如在单一交易所“插针”），我们使用标记价格而非现货指数价格来判定清算触发。\
其中：

$$
{\small
\begin{align\*}
\small
& MarkPrice = median(BookPrice, FundingPrice, TwapPrice)
\\
\&FundingPrice = IndexPrice + \text{TWA}*{1m,1h}(BookPrice - IndexPrice) \cdot \frac{\text{Time to next Funding}}{ \text{Funding Period}}
\\
\&TwapPrice = IndexPrice + \text{TWA}*{5s,5m}(BookPrice - IndexPrice)
\end{align\*}
}%
$$

*（TWA 的详细定义见*[*资金费率*](/yong-xu-he-yue/architecture/funding)*一章。）*

***

## 清算流程

我们的系统是**无许可**的，任何参与者都可以清算资不抵债的仓位。流程以恢复仓位健康为优先，而非全部平掉。

### 部分清算

与整仓平掉不同，我们只清算恢复仓位健康所需的最小数量。

* **目标：将仓位削减至回到该市场的最大初始杠杆**（例如把 50 倍的仓位恢复到 10 倍）。
* \*\*清算人角色：\*\*清算人按标记价格立即接手被清算的部分，之后可根据自身策略选择立即平掉或继续持有。

### 清算费用

清算事件中会收取三种费用，用于激励 Keeper（执行机器人）并保护协议。这些费用由市场管理员配置：

| 费用类型      | 接收方  | 说明                                        |
| --------- | ---- | ----------------------------------------- |
| **清算费**   | 清算人  | 执行清算的激励。                                  |
| **强制撤单费** | 清算人  | 当被清算仓位存在挂单时收取，按被撤销数量的一定百分比计，通常比清算费低一个数量级。 |
| **保险基金费** | 保险基金 | 一笔较小的费用，直接流入该市场的独立保险基金。                   |

***

## 系统安全与坏账

如果清算无法及时完成，仓位跌破破产价格并产生坏账，系统会通过**三层安全机制**的递进级联来化解。

{% stepper %}
{% step %}

#### 第一层：保险基金

这是第一道防线。

* **结构：每个市场维护自己的独立**保险基金。
* \*\*来源：\*\*由正常清算中收取的保险基金费注入。
* \*\*影响：\*\*如果坏账能由该基金覆盖，**其他交易者不受任何影响**。
  {% endstep %}

{% step %}

#### 第二层：损失分摊

如果保险基金耗尽，但坏账仍在既定阈值之内，损失将被**分摊**。

* \*\*机制：\*\*损失按比例分配给市场对手方向上的所有仓位。
* **结算：坏账金额被加入对手方仓位的资金费率**，在这些仓位触发资金费率更新时结算。
* \*\*安全性：\*\*阈值设计确保健康仓位不会因承担过多分摊债务而自身沦为可清算状态。
  {% endstep %}

{% step %}

#### 第三层：自动减仓（ADL）

在极端场景下（例如疑似操纵或大规模资不抵债），系统会触发\*\*自动减仓（ADL）\*\*作为最终手段。

* \*\*机制：\*\*对手方向上盈利最高的仓位会按破产价格自动与该坏账仓位对冲平仓。
* \*\*为什么用 ADL？\*\*相比把巨额损失分摊给整个市场，平掉特定的高盈利仓位被认为更加公平。
* \*\*许可模式：\*\*ADL 由市场管理员执行，以便在复杂的边缘情况下做出判断，但执行结果在链上完全可验证。

{% hint style="info" %}
注意：即使损失分摊仍可用，市场管理员也可以随时触发 ADL 以维护市场健康。
{% endhint %}

完整细节见 [ADL](/yong-xu-he-yue/architecture/liquidations/adl) 文档。
{% endstep %}
{% endstepper %}


# ADL

ADL 是一项许可制功能，只有市场管理员（或其委托方）可以执行。

### 执行流程

执行采用链下计算、链上执行的混合模型：

1. 排名（链下）：根据盈利率、杠杆和仓位规模等因素对盈利仓位进行排名。
2. 选择：选取排名最靠前的仓位来覆盖特定金额的坏账（例如 2、3 或 4 个仓位）。
3. 执行（链上）：坏账仓位与选中的对手方对冲平仓。
   * PnL 零影响：平仓按对手方的平均开仓价格进行，确保对手方在这笔交易中实现的 PnL（盈亏）为 0。
   * 保证金资产：坏账仓位的保证金资产分配给各对手方。

### 可验证性

虽然 ADL 的执行是许可制的，且依赖链下决定的因素，但由于全程在链上进行，ADL 的结果始终完全可验证。

#### 执行后验证：

* ADL 发生时的所有仓位数据都存在于链上。
* 任何人都可以重建 ADL 那一时刻的仓位排名。
* 社区可以核验管理员是否按照公开的排名标准选择了恰当的仓位。
* 透明性：指数价格、仓位状态及所有相关数据都不可篡改地记录在链上。
* 问责性：虽然用户无法实时阻止 ADL，但任何偏离公开排名算法的行为事后都可以被举证发现。社区可以重建排名并对不当执行提出质疑。<br>

### 技术实现

ADL 排名算法考虑多个因素：

* 盈利率：未实现 PnL 越高，排名越靠前。
* 杠杆：有效杠杆越高，排名越靠前。
* 仓位规模：较大的仓位可能在排名中获得加权。

对盈利仓位：$$\text{ADL Ranking} = \text{PNL%} \times \text{Effective Leverage}$$

对亏损仓位：$$\text{ADL Ranking} = \frac{\text{PNL%}}{\text{Effective Leverage}}$$

其中：$$\text{PNL%} = \frac{\text{Unrealized PnL}}{|\text{Position Size} \times \text{Mark Price}|}$$

$$\text{Effective Leverage} = \frac{1}{\text{Position Margin Ratio}}$$

#### 损失分摊阈值配置

决定使用损失分摊还是 ADL 的坏账阈值是可配置的。

```
If bad_debt > max(M, open_interest × mark_price x α):
    Trigger ADL
Else:
    Use Socialized Losses
```

#### 验证流程

要验证某次 ADL 执行是否恰当：

* 查询 ADL 执行时区块高度的链上状态。
* 重建所有仓位状态（规模、开仓价格、未实现 PnL、杠杆）。
* 套用文档中公开的排名算法。
* 将被选中执行 ADL 的仓位与重建出的排名进行比对。
* 确认选中的仓位与覆盖所需坏账金额的最高排名仓位一致。


# 订单类型

所有订单按价格-时间优先原则撮合。同一价格档位上，先到的订单先成交。

* \_**市价单：**\_用户选择交易数量，订单按订单簿当前提供的最优价格全部成交。
* \_**限价单：**\_用户选择交易数量和成交价格。根据限价单类型的不同，行为也不同：
  * \_标准：\_在所选价格以内尽量成交，未成交部分作为挂单留在订单簿上。
  * \_全部成交或撤销（FOK）：\_订单必须在所选价格以内全部成交，否则交易中止。
  * \_只挂单 (Post Only)：\_确保订单只挂到订单簿上、不产生任何成交。如果订单会立即与现有流动性撮合，交易中止。用它来确保享受挂单方 (Maker) 费率。
  * \_立即成交并撤销（IOC）：\_订单在所选价格以内尽量成交，未成交部分被撤销并退回账户。
* \_**止损市价单：**\_当触发价格穿越您设定的止损价时触发一笔市价单。触发价格来源可按订单选择：指数（预言机）价格、盘口价格或[标记价格](/yong-xu-he-yue/architecture/liquidations#mark-price)。
* \_**止损限价单：**\_当触发价格穿越您设定的止损价时触发一笔限价单，触发价格来源的选项相同。
* \*\*阶梯订单：\*\*将总数量拆分为多笔限价单，在起始价与结束价之间均匀分布。适合在单笔交易中构建订单网格、DCA 式建仓或流动性阶梯。可选的数量偏斜参数控制分布是均匀的，还是向价格区间的某一端加权。
* \*\*一单触发另一单（OTO）：\*\*下限价单时同时挂载 SL/TP（止损/止盈）。该 SL/TP 与限价单绑定，只有在限价单撮合成交、仓位开立后才会生效。这与直接在已有仓位上设置 SL/TP 是两回事。
* \*\*TWAP 订单：\*\*将大额订单拆分为等量的小块，按固定时间间隔执行，跟踪时间加权平均价格并降低市场冲击。每一块都以立即成交并撤销（IOC）订单的形式执行，并以标记价格附近的最大滑点为界，因此各块只吃流动性，绝不会留在订单簿上。某一块未能成交的数量会顺延到后续执行中。订单的详情——数量、方向和执行计划——在链上仅以加盐哈希存储，执行前始终保密。TWAP 订单可以设置到期时间，随时撤销会退还为其执行预留的未用 Gas。

#### 附加选项

* 只减仓：启用后，订单只能减少或平掉现有仓位，绝不会加仓或开新仓。在平仓或分批离场时可作为安全措施使用。
* 到期时间：为订单设置时间限制。如果订单在到期时间前未全部成交，将被自动撤销。适合对时效敏感、担心陈旧订单带来风险的策略。


# SL/TP

止损（SL）和止盈（TP）是条件订单，当触发价格到达指定水平时自动平仓或减仓。它们是控制下行风险、锁定收益的主要工具。

## 工作原理

SL/TP 订单监控一个**触发价格**——默认是指数价格（标的资产的预言机价格）。当触发价格穿越您设定的触发水平时，系统会代您执行订单。

* \*\*止损：\*\*价格向不利方向变动时平掉仓位。对多头仓位，触发价格跌至止损价或更低时触发；对空头，则在价格升至止损价或更高时触发。
* \*\*止盈：\*\*价格向有利方向变动时平掉仓位。对多头仓位，触发价格升至目标价或更高时触发；对空头，则在价格跌至目标价或更低时触发。

触发后，订单默认以**市价单**执行。您也可以选择附加一个**限价**，使其在触发时改为下限价单，用可能不成交的代价换取对成交价格的控制。

{% hint style="info" %}
SL/TP 订单默认按**指数价格**触发，可降低订单簿瞬时错位造成误触发的风险。每笔订单也可以改选盘口价格或[标记价格](/yong-xu-he-yue/architecture/liquidations#mark-price)作为触发来源。
{% endhint %}

## 隐私

SL/TP 触发价格在**链上加密**存储。虽然止损触发单对象存在于 Sui 区块链上，但扫描账本无法读出其触发水平。只有下单钱包的所有者才能取回这些数据，方式是签署一条证明所有权的认证消息。

这可以防止**猎杀止损**——即其他市场参与者探测到密集的止损位后，推动价格触发它们以牟利。在 Aftermath 上，您的止损位除了您自己，任何人都看不到。

{% hint style="info" %}
查看自己的止损触发单需要钱包签名。Aftermath 界面会自动处理这一步。
{% endhint %}

## 设置 SL/TP 订单

SL/TP 有三种用法：

* \*\*在已有仓位上：\*\*直接为某个市场的当前仓位挂载 SL、TP 或两者。订单数量默认为整个仓位规模。
* \*\*在待成交限价单上（OTO）：\*\*下限价单时即可同时挂载 SL/TP。该 SL/TP 只有在限价单撮合成交、仓位开立后才会生效。这被称为一单触发另一单（OTO）订单。
* \*\*独立止损触发单：\*\*通用条件单，在触发价格到达指定水平时执行。独立止损触发单支持只减仓标志，确保只会减少敞口。

## 修改与撤销

您可以随时修改现有止损触发单的触发价格、数量和限价参数。撤销止损触发单会将其从链上移除，并退还为其执行预留的 Gas。

## 到期时间

止损触发单支持可选的到期时间戳。如果订单在指定时间前未触发，将被自动撤销。


# 预言机

所有市场的指数价格和保证金资产价格都来自可信数据源。

价格通过我们的预言机聚合器获取，该聚合器从多家提供商收集数据。目前支持的外部预言机包括 [Stork](https://www.stork.network/)、[SEDA](https://seda.xyz/)、[Pyth](https://www.pyth.network/price-feeds) 和 [Switchboard](https://switchboard.xyz/)。


# 资金费率

## 什么是资金费率？

资金费率是交易者之间直接交换的周期性付款，主要作用是让永续合约价格贴近标的资产的现货价格。

与交易手续费不同，资金费用是点对点的。交易所不收取这笔费用；它在持有多头仓位和持有空头仓位的用户之间直接划转。

### 工作原理

资金费率根据订单簿价格（永续合约价格）与预言机价格（资产的真实世界价格）之间的偏离计算。

* 正资金费率（看涨行情）：永续合约价格\_高于\_预言机价格时，多头向空头支付。这会激励交易者卖出，推动价格向现货价格回落。
* 负资金费率（看跌行情）：永续合约价格\_低于\_预言机价格时，空头向多头支付。这会激励交易者买入，推动价格向现货价格回升。

因此，资金费用是一种激励机制，促使永续合约价格与其标的保持一致。

{% hint style="info" %}
Aftermath 不对这些付款收取任何费用。
{% endhint %}

#### 资金费率间隔与折算

资金费用**按小时支付**，但界面显示和计算的费率基于 **8 小时周期**。

* \*\*显示费率：\*\*8 小时费率（例如 0.01%）。
* \*\*每小时支付：\*\*用户每小时支付/收取计算所得费率的 1/8。

{% hint style="info" %}
资金费率因市场而异。请在前端对应市场核实各自的资金费率频率和周期。
{% endhint %}

### 与中心化交易所的区别

在中心化交易所，资金费用每 8 小时结算并重置一次——所有仓位从那一刻重新开始计算。Aftermath 采用累计模型：资金费率永不重置，每个仓位从开仓那一刻起持续累计资金费用。

界面上显示的市场资金费率是对下一周期的估计，由过去 8 小时的价格偏离计算得出，并不代表您的具体仓位当前正在累计的费率。

每个仓位都存储着其上次结算时的累计资金费率（CF）。您的未实现资金费用按该存储值计算——而不是按当前的市场估计值。这意味着可能出现这种情况：市场显示多头向空头付费，而一个在空头向多头付费时期开立的仓位却显示相反方向。两个数值在数学上都正确：市场费率是对下一周期的前瞻估计，而您的仓位反映的是实际的历史累计。

## 未实现资金费用

未实现资金费用是指已在仓位上累计、但尚未结算的资金费用。这一机制让合约能够高效地跟踪累计的资金费用义务。

为了节省 Gas 和计算量，协议不会每秒更新每个用户的余额，而是跟踪一个全局累计资金费率（$$CF$$）值。您的个人义务通过比较当前的全局 $$CF$$ 值与您的仓位上次被触及（结算）时的值来计算。

仓位未实现资金费用的公式为：

$$
UnrealizedFundings(p) = BaseAmount(p) \* (CF - LCF(p)),
$$

其中 𝐶𝐹 ∈ 𝑅 是市场当前的累计资金费率，𝐿𝐶𝐹 ( 𝑝 ) ∈ 𝑅 是该仓位上次在该市场结算资金费用时的累计值。

换句话说，合约维护一个累计资金费率，每当某个仓位结算资金费用时，就把当时的累计值存入该仓位。

## 资金费率的计算

资金费率决定多头与空头之间付款的速度，由盘口价格（市场价格）与指数价格（预言机价格）之差驱动。

一个市场的资金费率为：

$$
Funding =
\text{TWA}\_{\nu,\omega}(BookPrice - IndexPrice)
\frac{ f }{ \rho }
$$

*TWA* 𝜈 , 𝜔 ( 𝑋 ) ∈ 𝑅 是时间加权平均值（见下文 TWA 一节）。参数 𝜈 和 𝜔 在市场创建时设定，之后也可由协议管理员调整。资金费率的常用取值为 𝜈=1 𝑚 和 𝜔=1 ℎ 。

资金费率频率 𝑓 是两次资金费率更新之间的时间跨度，例如 1 小时。换言之，前述某市场的累计资金费率（𝐶 𝐹）每隔 𝑓 更新一次。

资金费率周期 𝜌 是资金费用（盘口价格与指数价格之差）被支付所覆盖的时间段。

资金费率周期设得过长，可能导致永续合约价格严重偏离指数——因为基差套利者需要承担更长时间的基差风险，把价格拉回的动力就更弱。周期设得过短，则可能导致没人愿意交易该永续合约——一旦资金费率翻转方向，代价过于惩罚性。

{% hint style="info" %}
我们还默认把差值 𝐵𝑜𝑜𝑘 𝑃𝑟𝑖𝑐𝑒 − 𝐼𝑛𝑑𝑒𝑥 𝑃𝑟𝑖𝑐𝑒 限制在 𝐼𝑛𝑑𝑒𝑥 𝑃𝑟𝑖𝑐𝑒 的最多 5%（按绝对值计）——该上限是每个市场单独的参数。这是为了避免资金费率过于惩罚性。
{% endhint %}

采样资金费率后（每个 𝑓 间隔一次），市场的累计资金费率简单地更新为：

$$
CF \gets CF + Funding
$$

{% hint style="info" %}
𝐶 𝐹 在市场创建时初始化为 0
{% endhint %}

实际上市场会跟踪两个累计资金费率——多头一个、空头一个。常规资金费率更新会让两者移动相同的量，因此它们平时表现得就像上文描述的单一 $$CF$$。只有当清算产生的坏账被分摊时它们才会分叉——分摊通过对手方向的累计资金费率施加。详情见[清算](/yong-xu-he-yue/architecture/liquidations)。

## TWA（时间加权平均值）

时间加权平均（TWA）机制确保用于资金费率的价格数据平滑且抗操纵。TWA 采用惰性（按需）更新，而不是每个区块都更新。

上文使用的 TWA 会在用户于某市场执行以下任一操作时更新：

* 开启交易会话（任何下单或清算都会开启会话，因此常规交易活动会让 TWA 保持新鲜）
* 触发止损触发单的执行
* 显式调用 `update_funding` 函数
* 显式调用 `update_twaps` 函数

`update_funding` 和 `update_twaps` 都是无许可的——任何人可以随时调用。

TWA 更新公式是一个加权平均：

$$
(TWA\_{\nu,\omega}(X), t\_{\text{last}}) \leftarrow \left( \frac{X\_t \cdot (t - t\_{\text{last}}) + TWA\_{\nu,\omega}(X) \cdot (t\_{\text{last}} - (t - \omega))}{\omega}, t \right) \quad \textbf{if } t \ge t\_{\text{last}} + \nu
$$

𝑡 是当前时间戳，由链上的 `Clock` 对象提供。𝑡 last 是上一次计算 TWA 的时间戳。𝑋 𝑡 是在时间 𝑡 观测到的随机变量，例如经过限幅的盘口价格与指数价格之差。

𝜔 是 **TWAP 周期**，控制 TWA 的平滑程度：𝜔 越大，历史观测值的权重越高。

𝜈 是 TWAP 频率，控制 TWA 的更新频率。例如若 𝜈=5 𝑠，则 TWA 更新后，接下来 5 秒内的交易都会使用同一个值。\\

{% hint style="info" %}
TWA 总是在资金费率之前更新
{% endhint %}


# 费用

费率基于您过去 14 天的滚动交易量，在每天结束时按 UTC 评定。子账户的交易量计入主账户，所有子账户共享同一费率等级。

推荐佣金和折扣按被推荐人的总交易量分级：

* 交易量 $0 - $100M：推荐人获得 10% 佣金，被推荐人享受 5% 费用折扣。
* 交易量 $100M 以上：推荐人获得 5% 佣金，被推荐人享受 2% 费用折扣。

{% hint style="success" %}
\*\*Growth 模式已上线！\*\*所有等级的 Maker 费率统一为 **-0.5 bps（-0.005%）**。[公告](https://x.com/aftermathfi/status/2041254810528501779)
{% endhint %}

| 等级 | 14 天交易量要求         | Maker 费率 (%) | Taker 费率 (%) |
| -- | ----------------- | ------------ | ------------ |
| 0  | >= $0             | -0.005       | 0.045        |
| 1  | >= $5,000,000     | -0.005       | 0.040        |
| 2  | >= $10,000,000    | -0.005       | 0.038        |
| 3  | >= $25,000,000    | -0.005       | 0.035        |
| 4  | >= $50,000,000    | -0.005       | 0.033        |
| 5  | >= $100,000,000   | -0.005       | 0.030        |
| 6  | >= $250,000,000   | -0.005       | 0.029        |
| 7  | >= $500,000,000   | -0.005       | 0.028        |
| 8  | >= $1,000,000,000 | -0.005       | 0.027        |
| 10 | >= $2,000,000,000 | -0.005       | 0.026        |

## 费用类型

* \_**交易费：**\_协议收取挂单方 (Maker) 与吃单方 (Taker) 费用。为激励流动性供给，Maker 费率可以为负，即挂单被撮合时 Maker 获得返佣。这些返佣由 Taker 支付，因为 Taker 是实际发起交易的一方。Taker 与 Maker 费率之间的价差就是使用 Aftermath Perpetuals 所支付的服务性交易费。例如，若 Maker 费率为 -0.015%、Taker 费率为 0.025%，协议收取的价差为 0.01%。
* ***清算费***：协议对被强制平仓（清算）的仓位按清算数量的一定比例收取费用，并直接记入清算人仓位的保证金资产。该费用从被清算用户的保证金资产中扣取，出现坏账时则由保险基金承担。清算发生时，对被清算仓位的挂单还会收取一笔较小的费用（*强制撤单费*）。详见[清算](/yong-xu-he-yue/architecture/liquidations)。
* [RGP](/yong-xu-he-yue/architecture/fees/reference-gas-price)

### 挂单返佣

14 天加权市场份额达到以下门槛的合格 Maker，将按其 Maker 交易量获得直接费用返还。返还每 2 周发放一次，在推荐页面领取。

| 等级 | 市场份额  | 直接返还             |
| -- | ----- | ---------------- |
| T1 | ≥0.5% | 0.001% (0.1 bps) |
| T2 | ≥1.5% | 0.002% (0.2 bps) |
| T3 | ≥3%   | 0.004% (0.4 bps) |
| T4 | ≥5%   | 0.008% (0.8bps)  |


# 参考 Gas 价格

参考 Gas 价格（RGP）是从 DeepBook 借鉴来的一种基于费用的有害性过滤机制。它对有害订单流施加经济上的反向激励，且无需在协议层改动交易优先级排序。

### 背景

在订单簿市场中，当速度快或掌握信息优势的吃单方 (Taker) 系统性地利用做市商的陈旧报价时，就形成了有害订单流。这迫使做市商扩大价差或缩小报价规模，使包括散户在内的所有人面对的流动性质量下降。

中心化交易所通过撤单优先来应对：撤单请求先于新订单处理。但这种方式需要排序器级别的控制，而 Sui 这样的通用 L1 在不更新协议的前提下无法提供。RGP 提供了一个在现有链约束内可行的替代方案。

### 工作原理

在 Sui 上，每笔交易都会声明一个 Gas 价格，验证者集合每个 Epoch（纪元）发布一个全网**参考 Gas 价格**。钱包默认按参考价格提交，因此出价高于参考价格就是对排序优先权的明确竞价——通常是为了抢先交易或利用做市商的陈旧报价。RGP 把这种 Gas 溢价用作有害性信号。

系统运作如下：

1. 订单交易执行时，合约将其 Gas 价格与当前 Epoch 的参考 Gas 价格比较
2. 如果 Gas 价格严格高于参考 Gas 价格，则该笔交易中的每一次 Taker 成交都会在常规 Taker 费用之上加收一笔**优先 Taker 费**（默认 0.10%；为每个市场单独的参数）
3. 挂单方 (Maker) 交易量不受影响——附加费只针对 Taker 成交

市场也可以完全禁止优先 Gas：若未配置优先 Taker 费，出价高于参考 Gas 价格的交易会直接中止而不成交。

由 Keeper（执行机器人）执行的条件订单——止损触发单、SL/TP 和 TWAP 执行——必须严格按参考 Gas 价格提交，因此这类交易根本无法购买排序优先权。

### 关键特性

RGP 不会拖慢散户，也不会惩罚常规交易流：钱包默认按参考 Gas 价格提交，所以只有刻意为排序优先权加价的交易——最有害的一类订单流——才会支付附加费。该机制完全透明，全部在链上执行逻辑内运作。

罚金与所有其他交易费用一起进入市场的费用池，也就是支撑挂单返佣的那个池子。这形成了正向反馈：有害行为越激进，流向流动性提供者的费用就越多，从而激励持续供给流动性，帮助维持更紧的价差。

与撤单优先不同，RGP 可以在通用链上实现而无需协议更新。它对所有订单操作（下单、撤单、挂单）一视同仁，且优先 Taker 费是每个市场可调的参数，可根据观察到的市场行为调整。

### 为什么不用撤单优先？

撤单优先系统会引入它自己的一种有害性：逆向撤单。当撤单被优先处理时，做市商可以先观望价格走向，再撤掉那些会造成不利成交的订单。这相当于做市商以吃单方 (Taker) 的代价免费获得了期权性。


# 集成商代码（前端费用）

构建您自己的定制前端并赚取费用

集成商代码 (Builder Codes) 允许第三方集成商无许可地对代用户提交的订单收取费用。交易平台、推荐计划和白标方案由此可以将自己的用户流量变现，同时为 Aftermath 生态注入订单流。

### 概览

**Builder Codes** 为基于 Aftermath Perpetuals 构建的集成商提供灵活的费用分成机制。系统运作如下：

1. **集成商注册**：集成商全局注册一次，获得一个数字 `integratorId`
2. **用户授权**：用户批准特定集成商，并设定自己愿意支付的费用上限
3. **订单提交**：集成商代用户提交订单，并指定收取的费用（不超过已批准的上限）

与推荐码不同，Builder Codes 作为链上费用逻辑的一部分实时生效。

{% hint style="info" %}
\*\*变更：\*\*集成商现在以数字 `integratorId` 标识，而非地址，且注册是一次性的全局步骤。之前的按市场费用金库模型——为每个市场创建金库并领取累计费用——已被移除。
{% endhint %}

### 工作原理

#### 对用户

用户对哪些集成商可以从其订单中收费拥有完全控制权：

* 批准集成商，并为每个集成商设置费用上限
* 随时撤销授权
* 为不同集成商设置不同的费用上限

#### 对集成商

集成商在开始收费前完成一次性全局设置：

1. 注册为集成商——全局一次，无需按市场注册
2. 让用户批准自己，每位用户设定一个费用上限
3. 提交携带 `integratorId` 和收费金额的订单

无需创建金库，也没有领取步骤。注册只是把集成商的全局地址记录到永续合约注册表之下，该地址可以随时更新而不丢失 `integratorId`。

#### 费用结构

* 集成商费用在常规交易费**之外**加收——用户批准的上限只约束这笔附加费用
* 费用按成交的名义价值计收，并跟随订单：订单立即作为吃单方 (Taker) 成交时适用，**且**订单挂在订单簿上、之后作为挂单方 (Maker) 成交时同样适用
* 费用以小数形式表示：`0.0005` 即 0.05% 的费率
* 单笔订单的费用不得超过用户为该集成商批准的 `maxIntegratorFee`——携带更高费用的订单，或来自用户未批准的集成商的收费订单，会在链上被拒绝
* 协议对任何集成商费用强制执行 **1.00%** 的硬性上限

### 面向开发者

\*\*TypeScript。\*\*我们已将全部所需的 Builder Codes 功能集成进 TypeScript SDK，并在文档中详细说明了所有函数。

{% embed url="<https://docs.aftermath.finance/for-developers/typescript-sdk/products/perpetuals/perpetuals#builder-code-integration-methods>" %}

\*\*API。\*\*关于如何通过 API 使用 Builder Codes 的更多信息，请查阅我们的 API 参考。

{% embed url="<https://v2-preview.aftermath.finance/docs>" %}

#### API 端点

所有 Builder Codes 端点都接受携带 JSON 请求体的 POST 请求。基础 URL：`https://v2-preview.aftermath.finance`

读取注册信息和按账户的授权：

* `/api/perpetuals/builder-codes/integrator-registration` — 将 `integratorId` 解析为其注册的 `integratorAddress`
* `/api/perpetuals/builder-codes/integrator-config` — 接收 `accountId` 和 `integratorId`，返回 `{ exists, maxIntegratorFee }`

构建用于设置和授权的交易：

* `/api/perpetuals/builder-codes/transactions/create-integrator-registration` — 一次性全局注册，由集成商签名
* `/api/perpetuals/builder-codes/transactions/create-integrator-config` — 用户批准某集成商并设置费用上限
* `/api/perpetuals/builder-codes/transactions/remove-integrator-config` — 用户撤销某集成商

示例：注册为集成商

```
## Request
POST https://v2-preview.aftermath.finance/api/perpetuals/builder-codes/transactions/create-integrator-registration
Content-Type: application/json

{}

## Response
{
  "txKind": "<base64-encoded TransactionKind>",
  "sponsorSignature": null
}
```

集成商的身份在链上取自交易发送方，因此请求体中不需要地址。每个 Builder Codes 交易路由上，`txKind`（用于扩展已有交易）和 `sponsor`（用于 Gas 池代付）均为可选。

示例：用户以 0.05% 的上限批准某集成商

```
## Request
POST https://v2-preview.aftermath.finance/api/perpetuals/builder-codes/transactions/create-integrator-config
Content-Type: application/json

{
  "accountId": "123n",
  "integratorId": 1,
  "maxIntegratorFee": 0.0005
}
```

批准后，在为该用户提交的每笔订单上附加 Builder Code：

```json
{
  "builderCode": { "integratorId": 1, "integratorFee": 0.0005 }
}
```

SL/TP 和止损触发单接受各自独立的 `builderCode`，与父订单的互不影响。

#### 交易流程

所有交易端点都返回序列化的交易类型（transaction kind）。链上执行步骤：

1. 携带参数调用交易端点
2. 从 JSON 响应中读取 `txKind`
3. 使用 Sui SDK 从 `txKind` 构建 `Transaction`
4. 用您的钱包签署交易
5. 提交到 Sui 网络

如果传入了 `sponsor`，响应还会携带 `sponsorSignature`。此时 `txKind` 存放的是 base64 BCS 编码的 `Transaction` 字节，Gas 支付已附加——签署这些字节并与代付方签名一起提交即可。

#### 集成方式

集成 Builder Codes 有三种方式：

* 原生 API（`/api/perpetuals/*`）— 推荐。功能最全，涵盖注册、授权和交易构建器。
* TypeScript SDK（`@aftermath-finance/sdk`）— 为 Builder Codes 操作提供类型化辅助方法。最适合 TypeScript 应用。
* CCXT 兼容 API（`/api/ccxt/*`）— 交易所风格的端点，适合遵循 CCXT 标准的机器人集成。


# 保证金

Aftermath Perpetuals 的保证金系统保障协议的偿付能力，并规定开仓与持仓所需的保证金资产要求。

保证金是交易者为覆盖仓位和潜在亏损而存入的保证金资产。在 Aftermath 上，保证金用于支撑您的杠杆。如果账户价值跌破要求的保证金水平，您的仓位可能被强制平仓（清算）。

## 保证金率公式

保证金率是衡量账户健康度的首要指标，计算方式为**账户价值**（权益）与**仓位敞口**（按 `MaxNetBase` 调整）之比。

$$
{\small
\begin{align\*}
MarginRatio(p) &= \frac{
Collateral(p) \cdot CollateralPrice + UnrealizedFundings(p) + Pnl(p)\
}{
MaxNetBase(p) \cdot BasePrice
}
\end{align\*}
}%
$$

#### 理解 MaxNetBase

仓位的敞口由 `MaxNetBase` 决定。

$$
\small MaxNetBase(p) = \max { | BaseAmount(p) + PendingBids(p) | , | BaseAmount(p) - PendingAsks(p) | }
$$

{% hint style="info" %}
𝑀𝑎𝑥𝑁𝑒𝑡𝐵𝑎𝑠𝑒(𝑝) 的设计动机如下：我们取上式中的最大值而非 |𝐵𝑎𝑠𝑒𝐴𝑚𝑜𝑢𝑛𝑡(𝑝) + 𝑃𝑒𝑛𝑑𝑖𝑛𝑔𝐵𝑖𝑑𝑠(𝑝) − 𝑃𝑒𝑛𝑑𝑖𝑛𝑔𝐴𝑠𝑘𝑠(𝑝)|，否则用户可以挂出等量的买单和卖单而不增加杠杆，从而人为加深订单簿。
{% endhint %}

## 初始与维持保证金率（IMR/MMR）

**IMR**（初始保证金率）和 **MMR**（维持保证金率）是市场创建时设定的基础风险参数，代表杠杆的倒数：

* **IMR（初始）：决定开仓**时的最大杠杆。
  * \_示例：\_IMR 为 **0.1** 时，最大杠杆为 **10 倍**（$1 / 0.1$）。
* \*\*MMR（维持）：\*\*决定清算阈值。
  * \_示例：\_MMR 为 **0.05** 意味着仓位的有效杠杆达到 **20 倍**（$1 / 0.05$）时将被清算。

#### 治理

`AdminCapability` 的持有者可以调整这些参数以适应市场状况。但为保护用户：

1. 智能合约先将新值存储在链上。
2. 更新是**延时生效**的：需经过足够长的等待期（数天）才会生效，确保用户有时间调整仓位。

## 仓位保证金要求

特定仓位所需的绝对保证金计算如下：

$$
{\small
\begin{align}
MarginRequirements(p) &= MaxNetBase(p) \cdot BasePrice \cdot IMR\
\end{align}
}%
$$

#### 偿付能力检查

要验证仓位具备偿付能力（即保证金率健康），协议检查保证金率是否大于 IMR。这在数学上等价于检查**权益**是否覆盖**要求**：

$$
{\small
\begin{align}
MarginRatio(p) &> IMR
\\
&\equiv
\\
\frac{
Coll(p) \cdot CollPrice + UF(p) + Pnl(p)\
}{
MaxNetBase(p) \cdot BasePrice
} &>
\frac{
MaxNetBase(p) \cdot BasePrice \cdot IMR\
}{
MaxNetBase(p) \cdot BasePrice
}
\\
&\equiv
\\
\underbrace{
Coll(p) \cdot CollPrice + UF(p) + Pnl(p)
}*{\text{margin}(p)}
&>
\underbrace{
MaxNetBase(p) \cdot BasePrice \cdot IMR
}*{\text{margin\_requirements}(p)}
\end{align}
}%
$$

{% hint style="info" %}
要得到仓位的\_**维持保证金要求**\_，把 𝐼𝑀𝑅 替换为 𝑀𝑀𝑅 即可。
{% endhint %}


# 账户

## 创建账户

用户在 Aftermath Perpetuals 上创建账户时，会有一个 `Account` 对象转移到用户地址。该对象可用于在任何可用市场开仓。`Account` 对象标识各市场中的仓位，用户可以将其自由转移到另一个 Sui 地址。失去对 `Account` 对象的访问权，意味着永久失去对各市场仓位的访问权。同一地址下可以持有多个 `Account` 对象。

## 存入保证金资产

用户可以随时向账户存入保证金资产。存入的保证金资产会一直留在账户中，直到用户决定将其分配到某个市场开仓。此时，保证金资产会从账户中取出并存入该市场的金库，作为仓位的保证金。

## 提取保证金资产

用户可以随时提取账户中所有未分配的保证金资产。若要提取已分配到市场中的保证金资产，需要先解除分配。解除分配受仓位状态限制。仓位（*p*）的\_可用保证金资产\_计算公式为：

$$
{\small
\begin{align\*}
\small
& FreeCollateral(p) = \frac{CappedMargin(p) - MarginRequirements(p)}{CollateralPrice}
\\\\
\&CappedMargin(p) =  Collateral(p) \cdot CollateralPrice + UnrealizedFundings(p) + \min{Pnl(p), 0}
\end{align\*}
}%
$$


# 代理钱包

在不转移账户所有权的前提下委托交易权限

代理钱包 (Agent Wallet) 允许您将永续合约账户的交易权限委托给另一个钱包，而无需交出账户本身的所有权。这适用于机器人、自动化交易，或在组织内部分配权限，同时让主钱包始终保留账户的管理员身份。

### 工作原理

每个永续合约账户都由一个管理员权限凭证控制。借助代理钱包，管理员钱包可以向第二个钱包（即代理）授予助理级权限。每次授权都会铸造一个由接收方钱包持有的权限凭证对象，一个账户最多可同时拥有 10 个有效代理钱包（协议参数）。此后，代理钱包即可代表该账户执行受支持的交易操作。**代理可以执行除提取保证金资产之外的所有操作**，但不能授予或撤销其他代理钱包，也不能撤销[集成商代码 (Builder Codes)](/yong-xu-he-yue/architecture/builder-codes-front-end-fee) 的授权（代理可以添加授权，但只有管理员能移除）。

### 为什么使用代理钱包

* 用专用钱包运行自动化策略
* 分离签名密钥，便于风险管理
* 让长期资金库/管理员钱包与交易执行隔离
* 需要时可立即撤销权限

{% hint style="warning" %}
任何形式的自动化都应使用代理钱包。不要将资金库/管理员钱包复用于机器人执行。
{% endhint %}

### 授予代理钱包

从账户管理员钱包提交一笔交易，指定：

* `accountId`
* `recipientAddress` — 接收代理权限的钱包

链上确认后，接收方即可以助理级权限代表该账户交易。

**接口：** `POST /api/perpetuals/account/transactions/grant-agent-wallet`

### 撤销代理钱包

从账户管理员钱包提交一笔交易，指定：

* `accountId`
* 要撤销的助理权限凭证的 `accountCapId`

确认后，被撤销的钱包立即失去其委托权限。

代理也可以随时销毁自己的权限凭证以放弃权限，无需管理员钱包参与。

**接口：** `POST /api/perpetuals/account/transactions/revoke-agent-wallet`

{% hint style="info" %}
在运行机器人？代理钱包无需持有 SUI。参见[无 Gas 交易 (GasPool)](/yong-xu-he-yue/architecture/account/gasless-trading)，从中央资金池代付 Gas。
{% endhint %}


# 子账户

在同一费率等级下运行多套策略

一个钱包可以拥有多个永续合约账户。每个额外账户都作为子账户使用，让您隔离策略、独立管理风险、分开存放保证金资产，同时所有交易量都汇总到同一个费率等级。

## 为什么使用子账户

* **策略隔离**：在一个账户上运行 Delta 中性策略，在另一个账户上运行方向性策略，各自拥有独立的保证金资产和保证金。
* **风险分隔**：一个账户被强制平仓（清算）不会影响其他账户。
* **共享费率等级**：同一钱包拥有（或通过同一主钱包关联）的所有账户共享同一个 14 天滚动交易量，用于计算费率等级。
* **团队运营**：与[代理钱包](/yong-xu-he-yue/architecture/account/agent-wallets)配合使用，让不同团队成员或机器人在不同子账户上交易，主钱包始终保留管理员控制权。

## 创建子账户

创建子账户与创建普通账户完全相同。用拥有主账户的同一钱包调用创建账户接口：

**接口：** `POST /api/perpetuals/transactions/create-account`

```json
{
  "walletAddress": "<your-wallet>",
  "collateralCoinType": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"
}
```

每次调用都会创建一个拥有独立 `accountId` 的新账户，数量不限，按需创建即可。

## 在账户之间划转保证金资产

无需先提取再重新存入，即可在您的账户之间划转保证金资产：

**接口：** `POST /api/perpetuals/account/transactions/transfer-collateral`

```json
{
  "walletAddress": "<your-wallet>",
  "fromAccountId": 100,
  "toAccountId": 101,
  "amount": "50000000"
}
```

这在跨策略再平衡或将保证金资产归集回主账户时很有用。

## 查询您的账户列表

获取您的钱包持有的全部账户权限凭证：

**接口：** `POST /api/perpetuals/accounts/owned`

```json
{
  "walletAddress": "<your-wallet>",
  "collateralCoinType": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"
}
```

返回您的钱包控制的所有账户，包括管理员和代理两类权限凭证。

## 费率等级汇总

所有子账户的交易量都计入主钱包的 14 天滚动交易量。同一钱包下的所有账户共享同一个[费率等级](/yong-xu-he-yue/architecture/fees)。无需把交易量集中到单个账户即可达到更高等级。


# 免 Gas 交易（GasPool）

从中央资金池为代理钱包代付 Gas

如果您在运行机器人或程序化策略，无需为每个代理钱包充值 SUI 作为 Gas。您可以使用 **GasPool**，从一个预付余额为代理钱包的交易代付 Gas。

可以把 GasPool 理解为一张预付 Gas 卡。您从主钱包向其中充入 SUI（或 USDC），此后代理钱包每次执行交易，协议都会自动从池中扣除 Gas 费用。代理钱包只需持有 USDC 保证金资产。

## 工作原理

主钱包创建一个 GasPool，向其中存入资金，并将代理钱包加入白名单。此后，代理钱包调用任何交易接口时都带上一个指向主钱包的 `sponsor` 字段。API 构建交易，从池中提取 Gas，并返回 `txKind` 和 `sponsorSignature`。代理钱包对交易签名后，连同两个签名一起提交。

代理钱包完全不用碰 SUI。余额不足时，从主钱包给 GasPool 充值即可。

## 设置

### 第 1 步：创建 GasPool

从主钱包出发，在一笔交易内完成 GasPool 的创建和注资：

**接口：** `POST /api/gas-pool/transactions/create`

```json
{
  "walletAddress": "<your-primary-wallet>",
  "deferShare": false,
  "initialDepositAmount": 1000000000
}
```

`initialDepositAmount` 以 MIST 计（1 SUI = 1,000,000,000 MIST）。也可以之后再存入。

### 第 2 步：存入（可选充值）

**接口：** `POST /api/gas-pool/transactions/deposit`

直接存入 SUI：

```json
{
  "walletAddress": "<your-primary-wallet>",
  "amount": 500000000
}
```

或存入 USDC（或任何其他代币）。该接口会先通过 Aftermath 路由自动将其兑换为 SUI，再存入池中：

```json
{
  "walletAddress": "<your-primary-wallet>",
  "coinType": "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",
  "amount": 5000000,
  "slippage": 0.01
}
```

也就是说，您完全不需要持有 SUI 就能为 GasPool 注资，用手头已有的任何代币存入即可。

### 第 3 步：为代理钱包授权

**接口：** `POST /api/gas-pool/transactions/grant`

```json
{
  "walletAddress": "<your-primary-wallet>",
  "targetWalletAddress": "<your-agent-wallet>"
}
```

### 第 4 步：执行代付交易

代理钱包调用任何 `/api/perpetuals/account/transactions/...` 接口时，加入 `sponsor` 字段：

```json
{
  "walletAddress": "<your-agent-wallet>",
  "accountId": 424,
  "sponsor": {
    "walletAddress": "<your-primary-wallet>"
  }
}
```

API 返回：

* `txKind` — base64 编码的交易，供代理钱包签名
* `sponsorSignature` — Gas 代付方的签名

代理钱包对 `txKind` 签名后，连同两个签名一起提交交易。

## 管理您的 GasPool

| 操作       | 接口                                         |
| -------- | ------------------------------------------ |
| 查询余额和白名单 | `POST /api/gas-pool/pool`                  |
| 追加存入资金   | `POST /api/gas-pool/transactions/deposit`  |
| 提取 SUI   | `POST /api/gas-pool/transactions/withdraw` |
| 授予访问权限   | `POST /api/gas-pool/transactions/grant`    |
| 撤销访问权限   | `POST /api/gas-pool/transactions/revoke`   |

## 替代方案：本地代付

如果不想使用 GasPool，也可以自行代付：在提交前，由主钱包作为 Gas 代付方对交易载荷进行共同签名。这样无需经过 GasPool 基础设施，即可完全掌控代付流程。


# 做市商

Aftermath 永续合约做市商集成指南——重报价循环、数据格式、实时行情与风控。

Aftermath 永续合约没有指定做市商计划，没有特殊返佣，也没有延迟优势。任何人都可以在这里做市。

技术集成问题请加入我们的 [Discord](https://discord.gg/VFqMUqKHF3)，或在 [X](https://x.com/AftermathFi) 上私信我们。

## API 基础信息

| 资源           | URL                                                                                                                        |
| ------------ | -------------------------------------------------------------------------------------------------------------------------- |
| API 前缀       | `https://v2-preview.aftermath.finance/api/...`                                                                             |
| Swagger UI   | [`https://v2-preview.aftermath.finance/docs`](https://v2-preview.aftermath.finance/docs)                                   |
| OpenAPI 规范   | [`https://v2-preview.aftermath.finance/api/openapi/spec.json`](https://v2-preview.aftermath.finance/api/openapi/spec.json) |
| Agent skills | [`github.com/AftermathFinance/skills`](https://github.com/AftermathFinance/skills)                                         |

OpenAPI 规范是字段名和类型的唯一权威来源。请从规范生成类型定义，不要手写请求体。

{% hint style="info" %}
Agent skills 仓库把这些集成模式打包给了编码智能体。如果您用 Claude Code、Codex 或 Cursor 开发，请在智能体编写任何请求体之前先让它读取该仓库。
{% endhint %}

## 推荐的集成方式

我们推荐使用永续合约原生 REST 接口（`/api/perpetuals/account/transactions/*`），而非 CCXT 层。原生接口让您完全掌控 Gas 管理，并可使用 PTB（可编程交易块）等 Sui 原生特性。

所有原生接口都返回一个 `TxKindResponse`，其中包含 base64 编码的 `TransactionKind`。您需要将其解码、包装成完整的 `Transaction`、用钱包签名，再通过您的 Sui 客户端提交。

### 核心接口

**取消并下单**（`POST /api/perpetuals/account/transactions/cancel-and-place-orders`）

这是做市商的主力接口。它在单个 PTB 内原子性地取消现有订单并放置新订单，比分开发送取消和下单交易省下可观的 Gas。两个操作之间不存在中间状态，重报价过程中盘口深度永远不会归零。刷新报价或管理订单网格，就用这个接口。

**放置限价单**（`POST /api/perpetuals/account/transactions/place-limit-order`）

用于单笔下单。支持在同一笔交易中内联附加 SL/TP（止损/止盈）。

**放置市价单**（`POST /api/perpetuals/account/transactions/place-market-order`）

以市价立即成交，同样支持内联 SL/TP。

**放置阶梯订单**（`POST /api/perpetuals/account/transactions/place-scale-order`）

在单笔交易中把仓位规模分布到一个价格区间上。适合 DCA（定投）式建仓、流动性阶梯，或把风险分散到多个价位。

**TWAP（时间加权平均价格）订单**（`POST /api/perpetuals/account/transactions/create-twap-orders`、`edit-twap-orders`、`cancel-twap-orders`）

将一定规模的成交安排在一段时间内分批执行。已排期和已处理的数量可通过 `POST /api/perpetuals/account/twap-order-datas` 读取。适合逐步消化累积的库存，而不必一次性付出价差成本。

{% hint style="info" %}
上述每个账户交易路由在 `/api/perpetuals/vault/transactions/*` 下都有对应的金库版本，包括 `cancel-and-place-orders`。如果您从金库而非个人账户报价，请求结构完全相同——把 `accountId` 换成 `vaultId` 即可。
{% endhint %}

## 重报价循环

`cancel-and-place-orders` 是您每天要调用几千次的接口，值得把每个字段都弄清楚。

| 字段                               | 说明                                                     |
| -------------------------------- | ------------------------------------------------------ |
| `accountId`                      | 数字账户 ID，以 BigInt 字符串发送（`"123n"`）。从金库报价时改用 `vaultId`。   |
| `accountCapId`                   | 可选，授权该交易的账户权限凭证对象 ID。                                  |
| `walletAddress`                  | 必填。接收退回的 Gas 币。                                        |
| `marketId`                       | 必填。报价所在的清算所。                                           |
| `orderIdsToCancel`               | 链上分配的订单 ID，以 BigInt 字符串表示。省略则不取消任何订单。                  |
| `clientOrderIdsToCancel`         | 按**您自己的** ID 取消，而非链上 ID。可与 `orderIdsToCancel` 组合使用。    |
| `shouldAbortOnMissingId`         | 默认为 `false`。见下文——这个默认值正是您想要的。                          |
| `ordersToPlace`                  | `{ side, price, size, clientOrderId? }` 数组。省略则不下任何单。   |
| `orderType`                      | 整批订单的执行类型。见下表。                                         |
| `reduceOnly`                     | 若为 `true`，所下订单永远不会增加仓位规模。                              |
| `hasPosition`                    | 必填。账户当前在该市场是否持有仓位。                                     |
| `expiryTimestamp`                | 可选，所下订单的到期时间（毫秒时间戳）。                                   |
| `leverage`                       | 可选，为所下订单覆盖杠杆设置。                                        |
| `shouldDeallocateFreeCollateral` | 若为 `true`，在同一笔交易内把未支撑仓位的保证金清扫回钱包。                      |
| `sponsor`                        | `{ walletAddress }`，用于 Gas 池代付。                        |
| `builderCode`                    | `{ integratorId, integratorFee }`——仅当您以集成商身份路由订单流时才需要。 |
| `txKind`                         | 已有的 base64 `TransactionKind`，在其基础上扩展，把重报价合入您自己更大的 PTB。 |

### 订单类型

`orderType` 作用于 `ordersToPlace` 中的每一笔订单：

| 值   | 类型        | 行为                              |
| --- | --------- | ------------------------------- |
| `0` | GTC       | 挂在订单簿上，直到成交或被取消。                |
| `1` | FOK       | 必须一次全部成交，否则整单取消。                |
| `2` | Post-Only | 仅在不会立即撮合的情况下才加入订单簿；若会吃掉流动性则被拒绝。 |
| `3` | IOC       | 立即成交能成交的部分，其余取消。                |

做市商应使用 `2` 报价。它保证您永远不会跨越盘口，也永远不用付吃单方 (Taker) 费用。

### 客户端订单 ID

每笔订单都可携带可选的 `clientOrderId`——由您自选的 `u64`，以 BigInt 字符串发送。给报价打上自己的 ID，就能通过 `clientOrderIdsToCancel` 取消，全程不必读回链上分配的 ID。

这从重报价循环中省去了一次往返。不再是下单 → 读回订单 ID → 按链上 ID 取消 → 再下单，而是始终针对策略已知的 ID 报价。客户端订单 ID 也会出现在仓位状态的 `pendingOrders` 和订单数据流中，因此可以直接用自己的账本核对成交。

`place-limit-order` 接受 `clientOrderId`；`place-scale-order` 以 `clientOrderIds` 形式接受。

### ID 缺失默认不算错误

您准备取消的订单，可能在决策与交易上链之间的窗口里已经成交或过期。`shouldAbortOnMissingId: false`（默认值）时，交易会容忍缺失的 ID：其余取消操作和所有新订单照常执行。

只有当"部分生效的重报价"对您来说比"完全不重报价"更糟时，才设为 `true`。对大多数报价策略而言并非如此——交易中止会把过期报价留在订单簿上，而那正是您想解决的问题。

### 示例请求

```json
POST /api/perpetuals/account/transactions/cancel-and-place-orders

{
  "accountId": "123n",
  "accountCapId": "0x...",
  "walletAddress": "0x...",
  "marketId": "0x...",
  "clientOrderIdsToCancel": ["1001n", "1002n", "1003n"],
  "ordersToPlace": [
    { "side": 0, "price": "7250000000000n", "size": "100000000n", "clientOrderId": "1004n" },
    { "side": 0, "price": "7249000000000n", "size": "100000000n", "clientOrderId": "1005n" },
    { "side": 1, "price": "7260000000000n", "size": "100000000n", "clientOrderId": "1006n" },
    { "side": 1, "price": "7261000000000n", "size": "100000000n", "clientOrderId": "1007n" },
    { "side": 1, "price": "7262000000000n", "size": "100000000n", "clientOrderId": "1008n" }
  ],
  "orderType": 2,
  "reduceOnly": false,
  "hasPosition": true,
  "shouldAbortOnMissingId": false
}
```

`side` 为 `0` 表示买单，`1` 表示卖单。

## 数据格式规则

大多数首次集成失败都出在这四条规则上。

**BigInt 字段需要尾缀 `n`。** 原生 BigInt 字段是带 `n` 后缀的 JSON 字符串——`"123n"`。纯数字 `123` 和 `"123"` 都会失败。响应也以同样的格式返回。并非所有数字都是 BigInt：普通计数器和毫秒时间戳仍是普通 JSON 数字，请遵循各接口的 schema，不要全局转换。

**`accountId` 是数字，不是对象 ID。** 原生接口接收数字账户 ID。CCXT 写入接口在同名字段下接收账户权限凭证对象 ID（`0x...`），CCXT 读取接口则使用 `accountNumber`。在应填数字 `accountId` 的地方传入 `0x...` 权限凭证 ID，是最常见的集成故障。

**预览响应是"成功或错误"联合体。** `/api/perpetuals/account/previews/*` 可能返回 HTTP `200`，但响应体是 `{ "error": "..." }` 并带有响应头 `X-Error-Message: true`。读取成功字段前先检查错误结构——单看 `200` 并不代表预览成功。

**响应是确定性排序的。** 市场按交易对符号排序，仓位按市场 ID 排序，挂单中的买单和卖单各自按订单 ID 排序。您可以对相邻两次账户快照按位置做差异比对，不必每次轮询都重建映射。

## 实时行情数据

所有实时数据流——订单簿、预言机、市场状态、账户更新和 K 线——都复用同一个 WebSocket：

`wss://v2-preview.aftermath.finance/api/perpetuals/ws/updates`

连接 `open` 后，按数据流逐个发送 JSON 帧订阅：

```json
{
  "action": "subscribe",
  "subscriptionType": {
    "topOfOrderbook": {
      "marketId": "0x...",
      "priceBucketSize": 0.0001,
      "bucketsNumber": 10
    }
  }
}
```

报价机器人通常需要的数据流：

| 数据流                     | 用途                                       |
| ----------------------- | ---------------------------------------- |
| `topOfOrderbook`        | 分桶的前 N 档快照。每帧都是完整快照，无需 REST 初始化，也无需维护增量。 |
| `orderbook`             | 全深度增量，用于分桶盘口快照不够用的场景。                    |
| `oracle`                | 该市场的预言机价格更新。                             |
| `userOrders`            | 您账户的订单更新，包含 `clientOrderId`。             |
| `userCollateralChanges` | 您账户的保证金资产变动。                             |
| `marketCandles`         | `1m` … `1mo` 各周期的 OHLCV 更新。              |

完整的帧 schema、错误帧和客户端示例见 [WebSockets](https://github.com/clawd-aftermath/aftermath-docs-translations/tree/zh/for-developers/api/websockets.md) 页面。

{% hint style="warning" %}
**重连后先重新同步，再恢复处理。** 重新拉取快照，原子性地替换本地状态，然后再继续应用增量。绝不要从断连前的内存状态继续。
{% endhint %}

如果您更习惯 SSE（Server-Sent Events），可使用 `/api/ccxt/stream/*` 下的 SSE 数据流。

## 风险控制

**发送前先校验规模。** `POST /api/perpetuals/account/max-order-size` 返回给定 `marketId` 和 `side`（`0` 买、`1` 卖）下，账户在当前风险限额内可下的最大订单。放大报价规模或调整杠杆前先调用它，不要靠交易失败来发现限额。

**没有"死人开关"。** API 不提供定时取消或断连自动过期的接口。进程挂掉后，您的报价会一直留在订单簿上。请构建一个心跳终止开关，在策略循环停滞时取消全部挂单，并同时挂接到 `SIGINT`/`SIGTERM` 和心跳超时。退出前确认取消操作已上链。

**账户状态会立即过期。** 任何成交、取消、存入、提取或杠杆变更之后，先刷新账户和仓位状态，再计算下一次报价。

**串行化一切触及同一 coin 对象的操作。** 并发的已签名交易可能在同一个 USDC coin 或 Gas coin 上竞争，因版本冲突或 equivocation 错误而失败。请串行化保证金资产操作，并给并行提交者各自独立的 Gas coin。

## Gas 优化

最大的 Gas 节省来自交易结构。用 `cancel-and-place-orders` 原子性执行，而不是分开调用，每次订单更新可将 Gas 降低约 7 倍。

**低效：分开的交易**

```
TX 1: cancel_orders              → ~0.0016 SUI
TX 2: place_limit_order (×1)     → ~0.0023 SUI
────────────────────────────────────────────────
Total: ~0.004 SUI for 1 order update
```

**高效：原子化取消并下单 + 批量**

```
TX 1:
  cancel_orders                  ← cancel stale quotes
  place_limit_order (×5)         ← 5 new orders
────────────────────────────────────────────────
Total: ~0.002 SUI for cancel + 5 orders
Gas per order: ~0.0004 SUI
```

### 实用建议

* **始终使用 `cancel-and-place-orders`**——绝不把取消和下单作为两笔交易分开发送。
* **每次调用批量提交 5 笔以上订单**——`ordersToPlace` 数组接受多笔订单。单笔交易订单越多，每笔订单的 Gas 越低。
* **一笔交易报双边**——买单和卖单放进同一个 `ordersToPlace` 数组。
* **使用 Post-Only（`orderType: 2`）**——保证以挂单方 (Maker) 身份成交，避免 Taker 费用。
* **用 `clientOrderId` 标记订单**——按自己的 ID 取消，省去读回环节。
* **使用代理钱包**——通过 `grant-agent-wallet` 把签名委托给代理钱包，主密钥保持冷存储。代理钱包可以交易，但无法提取保证金资产。
* **使用 Gas 池代付**——预先注资 Gas 池（`/api/gas-pool/*`），并传入 `sponsor: { walletAddress }`，让 Gas 成本可预测。
* **用 `txKind` 组合交易**——传入已有的 `TransactionKind`，把重报价折叠进更大的 PTB，而不是发两笔交易。
* **不要自行添加预言机更新**——API 在内部处理预言机数据的新鲜度。
* **不要为插队而多付 Gas**——高优先级 Gas 交易会被加收额外的 Taker 费用（市场参数中的 `priorityTakerFee`），该参数未设置时此类交易会被直接拒绝。参见[参考 Gas 价格](/yong-xu-he-yue/architecture/fees/reference-gas-price)。

### CCXT

如果贵司已运行在 CCXT 基础设施上，我们同样支持 CCXT 标准接口，参见 [CCXT 文档](https://github.com/clawd-aftermath/aftermath-docs-translations/tree/zh/for-developers/api/ccxt.md)。注意 CCXT 接口返回的是 `transactionBytes` 和 `signingDigest`，而非原始 `TransactionKind`，因此您对 Gas 和 PTB 组合的控制会更少。请对 `signingDigest` 而非 `transactionBytes` 签名，并提交 `signatures[]`——当发送方与 Gas 拥有者不同时，两个签名都放进该数组。

CCXT 的 `OrderRequest` 也比原生接口更窄：`/api/ccxt/build/createOrders` 不支持 `timeInForce` 和 `postOnly`，即使发送也会被忽略。如果只挂单 (Post Only) 报价对您很重要——对做市商来说理应如此——请使用原生接口。

完整 API 参考见 [Swagger 文档](https://v2-preview.aftermath.finance/docs)。


# 做市商经济学

Aftermath 永续合约做市商的成本构成、费用结构与运营要点。

本页介绍在 Aftermath 永续合约做市的总成本，包括交易费用、Gas 成本，以及 Sui 的 PTB（可编程交易块）如何降低开销。

## 每笔订单的总成本

下单或刷新订单的总成本由两部分构成：

1. **交易费用**（成交时收取，下单不收）
2. **Gas 成本**（每笔交易都收取，无论是否成交）

### 交易费用

费用按 14 天滚动交易量分级。挂单方 (Maker) 的费率显著低于吃单方 (Taker)，且在较高等级可享受**负费率（返佣）**——即挂单被成交时您反而获得收益。

**Growth Mode 已上线**——所有等级的 Maker 费率统一为 **-0.5 bps（-0.005%）**。挂单被成交时您获得收益。[公告](https://x.com/aftermathfi/status/2041254810528501779)

| 等级 | 14 天交易量 | Maker 费率 | Taker 费率 |
| -- | ------- | -------- | -------- |
| 0  | $0+     | -0.005%  | 0.045%   |
| 1  | $5M+    | -0.005%  | 0.040%   |
| 2  | $10M+   | -0.005%  | 0.038%   |
| 3  | $25M+   | -0.005%  | 0.035%   |
| 4  | $50M+   | -0.005%  | 0.033%   |
| 5  | $100M+  | -0.005%  | 0.030%   |
| 6  | $250M+  | -0.005%  | 0.029%   |
| 7  | $500M+  | -0.005%  | 0.028%   |
| 8  | $1B+    | -0.005%  | 0.027%   |
| 10 | $2B+    | -0.005%  | 0.026%   |

**关键点：** 交易费用只在订单**成交**时收取，下单和取消都不收。报价（放置/取消挂单）只消耗 Gas。

### 直接挂单返佣

在上述费率等级之外，持续保持一定市场份额的 Maker 还可获得每两周发放一次的直接返佣：

| 等级 | 市场份额   | 直接返佣             |
| -- | ------ | ---------------- |
| T1 | ≥ 0.5% | 0.001% (0.1 bps) |
| T2 | ≥ 1.5% | 0.002% (0.2 bps) |
| T3 | ≥ 3%   | 0.004% (0.4 bps) |
| T4 | ≥ 5%   | 0.008% (0.8 bps) |

### Gas 成本

Aftermath 永续合约运行在 Sui 上，Gas 成本极低。基于链上实测数据：

| 操作   | 平均成本 (SUI)  | 平均成本 (USD) | 说明           |
| ---- | ----------- | ---------- | ------------ |
| 下单   | \~0.002 SUI | \~$0.002   | 包含计算费 + 存储押金 |
| 取消订单 | \~0.001 SUI | \~$0.001   | 存储返还抵消大部分成本  |

Sui 的存储返还模型意味着**取消订单会退回下单时支付的一部分 Gas**。对于持续刷新报价的做市商，这项返还显著降低了报价的实际成本。

未成交订单的下单、取消和刷新，唯一的成本就是 Gas。

## 可编程交易块（PTB）

PTB 是 Sui 区块链的核心特性，允许把多个操作组合成**单笔原子交易**。这对做市商至关重要，因为您可以：

* **在一笔交易内取消旧订单并放置新订单**——订单簿上不会出现无报价的空窗
* **原子性地更新多个价位的报价**——整个报价网格一次刷新
* **只付一次 Gas**，完成在其他链上需要多笔交易的工作

### 取消并下单接口

Aftermath 提供专门的接口，构建一个 PTB 在单笔交易内原子性地取消现有订单并放置新订单：

`POST /api/perpetuals/account/transactions/cancel-orders`（可与下单调用组合进同一个 PTB）

这消除了取消过期报价与挂出新报价之间的"裸奔"窗口——在其他平台上，这一窗口正是逆向选择风险的来源。

### 实际意义

| 操作              | 其他链             | Aftermath（通过 PTB） |
| --------------- | --------------- | ----------------- |
| 取消 5 单 + 新下 5 单 | 10 笔交易，10 倍 Gas | 1 笔交易，1 倍 Gas     |
| 无报价暴露时间         | 数秒到数分钟          | 零（原子切换）           |
| 失败模式            | 部分执行风险          | 全部成功或全部失败         |

## 逆向选择保护（RGP）

RGP（参考 Gas 价格）是 Aftermath 保护 Maker 免受有害订单流侵害的机制。在多数交易所，速度快、信息占优的 Taker 会通过支付更高的 Gas 换取排序优先权，来收割 Maker 的过期报价。

RGP 将每笔订单交易的 Gas 价格与当前 Epoch（纪元）的全网参考 Gas 价格比较。Gas 价格严格高于参考值的交易，会在常规 Taker 费用之外被加收一笔**高优先级 Taker 费用**（默认 0.10%；按市场设置的参数）。这些罚金与其他所有交易费用一起进入该市场的费用池——也就是为 Maker 返佣提供资金的那个池子。

这意味着：

* 有害订单流越是针对您的报价，流向流动性提供者的费用就越多
* 按参考 Gas 价格交易的散户 Taker 不受影响
* 无需取消优先权机制——在 Sui 现有执行模型内即可运作

完整机制见 [RGP](/yong-xu-he-yue/architecture/fees/reference-gas-price)。

## 运营配置

### 代理钱包

做市商应使用**代理钱包 (Agent Wallet)** 将签名密钥与账户管理员钱包分离。代理钱包可以执行全部交易操作（下单、取消、修改订单），但**无法提取保证金资产**。即使机器人密钥泄露，损失范围也受到限制。

* 授予：`POST /api/perpetuals/account/transactions/grant-agent-wallet`
* 撤销：`POST /api/perpetuals/account/transactions/revoke-agent-wallet`

### 子账户

子账户的交易量汇总到主账户计算费率等级。可在多个子账户上运行多套策略，同时享受单一费率等级。

### 集成方式

| 方式             | 适合场景            | 文档                                                                                                                                           |
| -------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| REST API       | 完全掌控、自定义策略      | [API 参考](https://v2-preview.aftermath.finance/docs)                                                                                          |
| CCXT           | 已有 CCXT 基础设施的机构 | [CCXT 文档](https://github.com/clawd-aftermath/aftermath-docs-translations/tree/zh/for-developers/api/ccxt.md)                                 |
| TypeScript SDK | 最快的集成路径         | [SDK 文档](https://github.com/clawd-aftermath/aftermath-docs-translations/tree/zh/for-developers/typescript-sdk/products/perpetuals/README.md) |

## 小结

| 成本项目     | 收取时点         | 典型成本                             |
| -------- | ------------ | -------------------------------- |
| Gas（下单）  | 每笔交易         | ~~0.002 SUI (~~$0.002)           |
| Gas（取消）  | 每笔交易         | ~~0.001 SUI (~~$0.001)，存储返还可抵消部分 |
| Maker 费率 | 仅成交时         | -0.005%（Growth Mode——全部等级）       |
| Maker 返佣 | 每两周发放        | 最高返还 0.008%（按市场份额）               |
| RGP 附加费  | 由有害 Taker 支付 | 默认 0.10%，进入市场费用池                 |

**结论：** Growth Mode 生效期间，Maker 每笔成交赚取 -0.5 bps——报价的唯一经常性成本是 Gas（每单约 $0.002，取消时经由 Sui 存储返还部分退回）。额外的返佣计划可叠加。PTB 消除了在其他链上让做市变得昂贵的多交易开销和执行风险。


# 自动确认

自动确认让您无需在钱包中逐笔手动确认即可批准交易，为 Aftermath 永续合约的活跃交易者大幅改善交易体验。

各钱包的设置步骤见[新手入门中的自动确认指南](/ru-men-zhi-nan/auto-confirmation)。


# 市场规格

Aftermath 全部永续合约市场的合约规格、交易时段、预言机详情与风险参数。

Aftermath 永续合约市场按标的资产类型和预言机报价的可用性分组。

### 全部市场

| 类别              | 交易时段      |
| --------------- | --------- |
| 24/7 加密货币与代币化资产 | 全天开放      |
| 24/5 大宗商品       | 相关交易所交易时段 |
| 24/5 股票         | 相关交易所交易时段 |

完整的合约规格、预言机详情和交易时段安排见各子页面

### 标记价格与清算边界

Aftermath 用于所有清算计算的标记价格由三部分推导而来：预言机价格与订单簿价格之间的 TWAP（时间加权平均价格）、盘口价格本身，以及资金价格（按资金费率贡献调整后的指数价格）。

由于资金费率被**限制在 ±5% 以内**，无论订单簿以什么价格成交，标记价格与预言机指数价格的偏离永远不会超过 **5%**。这为所有市场——无论 24/7 还是 24/5——提供了内在的清算边界。

> **对交易者意味着什么：** 订单簿价格可以随供需自由波动，但偏离预言机超过 5% 的价格错位不可能触发强制平仓（清算）。这对 24/5 大宗商品市场的非交易时段尤为重要——预言机数据停更期间，仓位不会因盘口价格的暂时偏离而被不公平清算。

### 说明

* 各市场可能设有**未平仓合约上限**，并会随流动性状况变化而调整。
* 所示**费用**为基础费率。高波动或低流动性时期可能启用动态费用调整。
* **杠杆**上限可能根据流动性深度和风险评估按市场调整。当前上限以交易界面为准。
* 所有参数均可能通过治理更新。


# 24/7 代币化与加密货币市场

全天候交易的加密原生与代币化资产永续合约规格。

这些合约的标的是拥有持续链上定价的加密原生或代币化资产。市场**每周 7 天、每天 24 小时**开放，没有时段休市或周末停盘。

### 合约规格

| 市场          | 交易对           | 结算   | 最高杠杆 | MMR  | 清算杠杆 | 保证金模式 | 合约面值        |
| ----------- | ------------- | ---- | ---- | ---- | ---- | ----- | ----------- |
| Bitcoin     | BTC/USD:USDC  | USDC | 20×  | 2.5% | 40×  | 逐仓    | 0.000000001 |
| Ethereum    | ETH/USD:USDC  | USDC | 20×  | 2.5% | 40×  | 逐仓    | 0.0000001   |
| Solana      | SOL/USD:USDC  | USDC | 10×  | 5%   | 20×  | 逐仓    | 0.00001     |
| Sui         | SUI/USD:USDC  | USDC | 10×  | 5%   | 20×  | 逐仓    | 0.00001     |
| Tether Gold | XAUT/USD:USDC | USDC | 20×  | 2.5% | 40×  | 逐仓    | 0.0000001   |
| Hyperliquid | HYPE/USD:USDC | USDC | 5×   | 10%  | 10×  | 逐仓    | 0.00001     |
| Monad       | MON/USD:USDC  | USDC | 5×   | 10%  | 10×  | 逐仓    | 0.000001    |
| Zcash       | ZEC/USD:USDC  | USDC | 10×  | 5%   | 20×  | 逐仓    | 0.00001     |
| BNB         | BNB/USD:USDC  | USDC | 5×   | 10%  | 10×  | 逐仓    | 0.00001     |

**MMR**（维持保证金率）是仓位为避免强制平仓（清算）必须保有的最低保证金。当实际杠杆超过**清算杠杆**（1 / MMR）时，仓位即可被部分清算——只平掉将其恢复到最高初始杠杆所需的部分，而非整个仓位。详见[保证金](/yong-xu-he-yue/architecture/margin)和[清算](/yong-xu-he-yue/architecture/liquidations)。参数可通过治理配置，链上生效带有时间延迟。

### 关于 XAUT/USD

**XAUT/USD** 的标的是 [Tether Gold (XAUT)](https://gold.tether.to/)，一种由存放在瑞士金库的实物黄金 1:1 支持的代币化黄金产品。由于 XAUT 是拥有持续链上流动性的 ERC-20 代币，其预言机数据始终可用——尽管跟踪的是实物大宗商品价格，它仍是 24/7 市场。

这与 XAG/USD（白银）等原生大宗商品永续合约有本质区别：后者的预言机数据反映的是现实世界大宗商品交易所的定价，因此必须跟随交易所的时段安排。


# 24/5 大宗商品市场

大宗商品永续合约的规格、交易时段与预言机详情。

大宗商品永续合约通过反映现实世界交易所定价的预言机数据跟踪现货商品价格。由于标的商品市场并非全天开放，这些永续合约跟随相关交易所的交易时段安排。

### 合约规格

| 市场    | 交易对            | 说明                                                           | 结算   | 最高杠杆 | MMR    | 清算杠杆 | 保证金模式 | 预言机                                                                           |
| ----- | -------------- | ------------------------------------------------------------ | ---- | ---- | ------ | ---- | ----- | ----------------------------------------------------------------------------- |
| 白银    | XAG/USD:USDC   | 跟踪 1 金衡盎司白银的价格。                                              | USDC | 10×  | 5%     | 20×  | 逐仓    | [Stork (XAG)](https://data.stork.network/assets/XAGUSD)                       |
| WTI   | WTI/USD:USDC   | 跟踪西德克萨斯中质原油价格。见下文"预言机移仓"一节。                                  | USDC | 3×   | 16.67% | 6×   | 逐仓    | [Pyth (WTI)](https://pythdata.app/explore/Commodities.WTIJ6%2FUSD)            |
| 天然气   | NG/USD:USDC    | 跟踪 Henry Hub 天然气价格。见下文"预言机移仓"一节。                             | USDC | 3×   | 16.67% | 6×   | 逐仓    | [Pyth (NATGAS)](https://pythdata.app/explore/Commodities.NGDJ6%2FUSD)         |
| AF100 | AF100/USD:USDC | 跟踪由某美国顶级交易所上市的 100 家规模最大、交投最活跃的非金融类股票构成的修正市值指数。见下文"预言机移仓"一节。 | USDC | 10×  | 5%     | 20×  | 逐仓    | [Pyth (NMM6)](https://insights.pyth.network/price-feeds/Equity.US.NMM6%2FUSD) |

**MMR**（维持保证金率）是仓位在被强制平仓（清算）前必须保有的最低保证金；**清算杠杆** = 1 / MMR。清算为部分清算——只平掉将仓位恢复到最高初始杠杆所需的部分。参见[保证金](/yong-xu-he-yue/architecture/margin)和[清算](/yong-xu-he-yue/architecture/liquidations)。参数可通过治理配置，链上生效带有时间延迟。

### 交易时段

| 参数         | 值                                                                                                                           |
| ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| **外部交易时段** | 美东时间周日 6:00 PM 至周五 5:00 PM                                                                                                  |
| **内部交易时段** | 每日维护窗口：周一至周四，美东时间 5:00–6:00 PM（市场暂停）。交易同时遵循 [CME 假日休市安排](https://www.cmegroup.com/tools-information/holiday-calendar.html)。 |

### 预言机移仓（WTI）

WTI 原油永续合约按有到期日的期货合约定价（如 2026 年 3 月的 CLJ6、2026 年 4 月的 CLK6）。当近月合约临近到期时，若预言机在两个数据源之间一次性切换，会形成可预测的价格断崖，极易被抢先交易。

Aftermath 的解法是每个区块在链上计算的连续线性混合：

#### 混合公式

$$
P\_{blended} = w\_{front\_month} ⋅
P\_{front\_month} + w\_{next\_month} ⋅ P\_{next\_month}
$$

其中恒有 w₁ + w₂ = 1。权重由 d（距近月合约到期的日历天数）决定：

* 若 d > 10：w₁ = 1.0（100% 近月，尚未开始混合）
* 若 d ≤ 3：w₁ = 0.0（100% 次月，移仓完成）
* 其余情况：w₁ = (d − 3) / (10 − 3)，即在 7 天内线性插值

移仓窗口在到期前 10 天开始，到期前 3 天结束，实现平滑连续的过渡，不存在可被抢先交易的价格跳变。

#### 关键特性

* 每笔交易都在**链上**计算
* 消除了一次性预言机切换所带来的抢先交易机会
* 两路原始 Pyth 数据均在链上可见，任何人都能验证
* WTI 期货每月移仓；混合机制每个周期自动启动

#### 使用中的 Pyth 数据源

预言机同时消费两路 Pyth Network 数据：

* 近月：最近到期的 WTI 期货合约（如 2026 年 3 月的 CLJ6/USD）
* 次月：下一个合约（如 2026 年 4 月的 CLK6/USD）

每次移仓完成后（d ≤ 3），次月合约成为新的近月合约，并为下一个到期周期启用新的次月数据源。合约代码遵循 CME 惯例：F=1 月，G=2 月，H=3 月，J=4 月，K=5 月，M=6 月，N=7 月，Q=8 月，U=9 月，V=10 月，X=11 月，Z=12 月。


# 24/5 股票市场

股票及股指永续合约的规格、交易时段与预言机详情。

股票类永续合约通过取自美国交易所定价的预言机数据跟踪个股和股指价格。由于标的股票市场并非全天开放，这些永续合约跟随相关交易所的交易时段安排。

### 合约规格

| 市场       | 交易对            | 说明                                                    | 结算   | 最高杠杆 | MMR | 清算杠杆 | 保证金模式 | 预言机                                                                             |
| -------- | -------------- | ----------------------------------------------------- | ---- | ---- | --- | ---- | ----- | ------------------------------------------------------------------------------- |
| NVIDIA   | NVDA/USD:USDC  | 跟踪在 NASDAQ 上市的 NVIDIA Corporation (NVDA) 普通股价格。       | USDC | 5×   | 10% | 10×  | 逐仓    | [Pyth (NVDA)](https://insights.pyth.network/price-feeds/Equity.US.NVDA%2FUSD)   |
| Intel    | INTC/USD:USDC  | 跟踪在 NASDAQ 上市的 Intel Corporation (INTC) 普通股价格。        | USDC | 5×   | 10% | 10×  | 逐仓    | [Pyth (INTC)](https://insights.pyth.network/price-feeds/Equity.US.INTC%2FUSD)   |
| Alphabet | GOOGL/USD:USDC | 跟踪在 NASDAQ 上市的 Alphabet Inc. (GOOGL) A 类普通股价格。        | USDC | 5×   | 10% | 10×  | 逐仓    | [Pyth (GOOGL)](https://insights.pyth.network/price-feeds/Equity.US.GOOGL%2FUSD) |
| Marvell  | MRVL/USD:USDC  | 跟踪在 NASDAQ 上市的 Marvell Technology, Inc. (MRVL) 普通股价格。 | USDC | 5×   | 10% | 10×  | 逐仓    | [Pyth (MRVL)](https://insights.pyth.network/price-feeds/Equity.US.MRVL%2FUSD)   |
| US500    | US500/USD:USDC | 跟踪由 500 家美国领先上市公司构成的市值加权指数。                           | USDC | 10×  | 5%  | 20×  | 逐仓    | [Pyth (US500)](https://insights.pyth.network/price-feeds/Equity.US.EMM6%2FUSD)  |

**MMR**（维持保证金率）是仓位在被强制平仓（清算）前必须保有的最低保证金；**清算杠杆** = 1 / MMR。清算为部分清算——只平掉将仓位恢复到最高初始杠杆所需的部分。参见[保证金](/yong-xu-he-yue/architecture/margin)和[清算](/yong-xu-he-yue/architecture/liquidations)。参数可通过治理配置，链上生效带有时间延迟。

### 交易时段

| 参数         | 值                                                                                                                           |
| ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| **外部交易时段** | 美东时间周日 6:00 PM 至周五 5:00 PM                                                                                                  |
| **内部交易时段** | 每日维护窗口：周一至周四，美东时间 5:00–6:00 PM（市场暂停）。交易同时遵循 [CME 假日休市安排](https://www.cmegroup.com/tools-information/holiday-calendar.html)。 |

### 说明

* 股票类永续合约通过 [Pyth Network](https://pyth.network/) 预言机数据定价，反映美国股票交易所的实时报价。
* 非交易时段预言机数据停更期间，Aftermath 的标记价格机制会保护仓位免遭不公平清算——标记价格与预言机指数价格的偏离永远不会超过 **5%**。


# 自成交预防

当新进订单将与同一地址的挂单撮合时，撮合引擎会取消该挂单而不产生成交。不收取任何费用，取消操作也不会出现在成交记录中。

在中心化交易所，这种行为通常称为"expire maker"（挂单过期）。挂单方 (Maker) 订单被作废，让主动进攻的吃单方 (Taker) 订单可以继续吃掉其后方的流动性，直至其限价。

### 为什么采用 Expire Maker？

这是做市算法首选的处理方式。如果您的主动订单撮合到了自己在对手方向的挂单，说明该挂单已经过期失效。引擎将其移除，让主动订单继续穿过订单簿成交。


# 金库

Aftermath 永续合约的无许可链上流动性管理

金库是完全构建在链上、直接集成进 Aftermath 永续合约的无许可流动性原语。它让主理人——无论是个人交易者、算法做市商还是专业交易机构——能够用汇集的资金部署复杂策略，同时让存款人轻松参与由专人管理的永续合约交易策略。

### 金库如何运作

任何人都可以创建金库并自定义参数，包括锁定期、费用结构和元数据。主理人管理金库在 Aftermath 各永续合约市场上的仓位，执行的策略可以包括做市、方向性交易、清算等。

存款人向金库注入保证金资产，获得代表其份额比例的 LP 代币。金库盈利时，存款人按份额分享扣除主理人费用后的收益；反之，金库亏损时，存款人也按份额承担损失。

### 核心特性

**无许可创建。** 任何人只需锁定最低数量的保证金资产并设置所需参数，即可创建金库。无需 KYC，也无需事先审批。整个流程直接在我们的前端提供，最快 5 分钟就能建好自己的金库。

**灵活的策略。** 金库可以跨多个永续合约市场交易、下限价单和市价单、管理保证金资产分配并执行清算。将这些操作组合起来，就能在 Aftermath 永续合约上实现任意数量的链上交易策略。

**透明。** 金库完全在链上。所有参数——费用结构、锁定期、强制提取延迟、主理人信息——均公开可查。每一笔交易、仓位变动和提取都记录在链上，存款人可以完整审计金库的活动和业绩。

**提取有保障。** 在可配置的锁定期和强制提取延迟结束后，存款人始终可以取回资金——即便主理人失联或作恶。

### 风险披露

**金库并非没有风险。** 存款人面临以下风险：

* **策略风险**：金库表现完全取决于主理人的交易策略。过往业绩不代表未来收益。
* **市场风险**：永续合约交易本身即有风险。行情剧烈波动时，仓位可能被强制平仓（清算）。
* **智能合约风险**：尽管金库合约在设计上注重安全，存款人应当了解自己是在与链上智能合约交互。
* **主理人风险**：主理人掌控金库资金的运用方式。尽管存在强制提取机制，策略执行不佳或恶意行为仍可能造成损失。

存款前，请仔细评估金库的历史业绩、主理人声誉和策略说明。

### 参数与限制

{% hint style="info" %}
这些参数由协议配置，上线后可能调整。
{% endhint %}

| 参数         | 限制        |
| ---------- | --------- |
| 主理人费用上限    | 利润的 20%   |
| 最长锁定期      | 60 天      |
| 强制提取延迟上限   | 1 天       |
| 最低存款额      | 等值 $1 USD |
| 主理人最低锁定流动性 | 等值 $1 USD |
| 单个金库市场数量上限 | 12        |
| 单个仓位挂单数量上限 | 70        |


# 面向策展人

在 Aftermath 永续合约上创建和管理金库的指南

### 为什么要创建金库？

金库主理人可从其策略产生的利润中抽取业绩费。该费率由主理人自行设置，在存款人盈利提取时自动收取。

金库为主理人带来：

* **更大的资金规模。** 在自有资金之外获得汇集资金，执行更大规模的策略。
* **费用收入。** 按利润比例赚取收入，且不承担额外风险。
* **社群建设。** 金库是交易者与社群分享策略、积累追随者的有力工具。

### 如何创建金库？

金库创建完全无许可：**任何人都可以直接通过我们的前端创建金库**。创建时需提供以下信息：

1. 金库名称和描述
2. \[可选] 主理人名称、Logo 和自定义链接（如个人网站）
3. 业绩费
4. 存款锁定期：存款锁定多久后用户才能申请提取
5. 强制提取延迟：用户提交提取申请后，需等待多久才能强制提取

{% hint style="info" %}
建议金库主理人填写全部可选元数据，为潜在存款人提供尽可能完整的背景信息
{% endhint %}

### 如何管理我的金库？

在永续合约页面，点击导航栏左上角的账户选择器，会弹出包含两个标签页的窗口：**Accounts** 和 **Vaults**。

选择 **Vaults** 标签页查看您的金库，点击要代其交易的金库。选中后，您的所有交易都将作用于该金库，交易页面上的一切也会反映该金库的仓位、权益和可用保证金资产。

要切回个人账户，再次打开账户选择器，进入 **Accounts** 标签页并选择您的账户。

### 处理提取申请

存款人提交提取申请后，您需要在 `force_withdraw_delay` 到期前处理。自行处理提取的好处：

* 按您的策略以最优方式再平衡仓位
* 避免不理想的被动平仓
* 为留存的存款人维持预期的仓位规模

如果未在强制提取延迟到期前处理，存款人（或代表其行事的 Aftermath）可以强制提取，届时可能不顾您的策略、按市价平掉仓位。

{% hint style="info" %}
建议金库主理人在待处理的提取申请变为可强制提取之前将其全部处理完毕
{% endhint %}


# 常见问题

常见问题

#### **创建金库需要多少资金？**

至少需要等值 $1 USD 的保证金资产作为初始锁定资金。金库运行期间，这笔锁定流动性无法提取。\<br>

#### **创建后可以修改金库的名称或描述吗？**

可以。使用您的金库所有者权限凭证，可以随时更新所有元数据字段（名称、描述、主理人信息、Logo URL 等）。\<br>

#### **未及时处理提取申请会怎样？**

如果提取申请的强制提取延迟到期，存款人（或代表其行事的 Aftermath）可以执行强制提取。这会不顾您的策略、按市价平掉仓位，可能导致所有金库参与者的执行结果都不理想。\<br>

#### **可以关闭我的金库吗？**

没有专门的"关闭金库"功能。但您可以平掉全部仓位，将存款上限设为零以阻止新存款，并让现有存款人提取资金。\<br>

#### **我的金库可以交易哪些市场？**

金库可以交易 Aftermath 永续合约上的任何市场，最多可同时交易 12 个不同市场。\<br>

#### **可以提取我的锁定流动性吗？**

不可以。金库运行期间，您的初始锁定流动性永久留在金库中。这确保您与金库利益绑定，与存款人利益一致。\<br>

#### **如何领取已赚取的费用？**

存款人盈利提取时，主理人费用会在金库中累积。您可以随时通过我们的前端提取累积的费用。\<br>

#### **强制提取时挂单会怎样？**

强制提取处理前，该仓位的所有挂单都会被取消。这是准确计算仓位价值并执行提取所必需的。\<br>

#### **如果某位存款人的强制提取会导致仓位保证金不足怎么办？**

强制提取机制内置了保障措施，确保仓位维持足够的保证金率。系统可能部分平仓以释放保证金资产，同时保持剩余仓位健康。\<br>

#### **存款人亏损提取时我能赚到费用吗？**

不能。主理人费用只针对利润收取。如果存款人的提取价值小于或等于其存入价值，则不收取任何费用。


# 面向存款人

评估金库、存入资金与提取资金的指南

### 为什么要向金库存款？

向金库存款后，您无需亲自管理仓位，即可参与管理人（Curator）的永续合约交易策略，并按持有份额比例分享金库的盈利（与亏损）。

金库为存款人提供：

* **被动参与。** 由经验丰富的交易者或算法代您管理仓位。
* **分散配置。** 金库可同时在多个永续合约市场交易。
* **退出保障。** 强制提取机制确保即使管理人失联，您也始终能取回资金。

### 评估金库

所有可用金库都列在金库页面：<https://aftermath.finance/perpetuals/vaults>

存款前，请仔细评估：

* **管理人声誉。** 金库由谁管理？过往业绩如何？
* **策略说明。** 金库是否清楚说明了其交易思路？您是否理解其中的风险？
* **历史表现。** 查看过往回报，但请记住，过往表现并不代表未来结果。
* **费用结构。** 管理人抽取多少比例的利润？费用越高，就需要越强的业绩才划算。
* **锁定期。** 资金会被锁定多久？请确保锁定期与您的投资周期相符。
* **强制提取延迟。** 如果管理人失联，需要等多久才能强制提取？
* **当前仓位。** 金库目前持有哪些仓位？您能否接受这样的风险敞口？

### 如何向金库存款？

进入您想存款的金库，输入要存入的抵押品数量，点击"Deposit"。

存款后，您会收到代表金库份额的 LP 代币。LP 代币的数量取决于金库当时的价值——按您的存款金额相对金库总价值的比例分配。

{% hint style="warning" %}
资金一经存入，将按该金库设定的锁定期锁定，期满前无法提取
{% endhint %}

### 如何从金库提取资金？

提取分为多个步骤，目的是给管理人留出时间以最优方式调配流动性。提取有两条路径：

1. 首选路径是**管理人处理的提取**：管理人按其策略重新平衡仓位并处理您的提取请求，以获得最优执行。
2. 后备路径是**强制提取**——如果管理人未处理您的提取请求，且强制提取延迟已到期，您（或 Aftermath 代表您）可以强制从金库提取流动性。仓位可能按市价平掉，执行结果未必理想，但该机制确保无论管理人是否响应，您都始终能取回资金。

提取处理完成后，您将按比例收到金库份额对应的资金，并扣除相应的管理人费用。

### 费用

管理人费用只对利润收取：

* 若亏损提取（当前价值 < 存款价值），不收取任何费用
* 若盈利提取，管理人费用仅从利润部分扣除
* 管理人费用上限为利润的 20%

**以 10% 管理人费用为例：**

| 情形 | 存入金额   | 提取价值   | 利润    | 管理人费用 | 实际到手   |
| -- | ------ | ------ | ----- | ----- | ------ |
| 盈利 | $1,000 | $1,500 | $500  | $50   | $1,450 |
| 亏损 | $1,000 | $800   | -$200 | $0    | $800   |
| 持平 | $1,000 | $1,000 | $0    | $0    | $1,000 |


# 常见问题

常见问题

#### **已经在某个金库存款，还能追加吗？**

可以，但每笔新存款都会为该部分份额重新开始一个锁定期。<br>

#### **如果管理人平掉了所有仓位会怎样？**

您在金库中的份额仍由 LP 代币记录，您依然可以发起并收到提取。<br>

#### **管理人会卷走我的资金吗？**

管理人可以用金库资金交易，因此糟糕的决策或蓄意的不当操作都可能造成亏损。不过，强制提取机制确保在强制提取延迟到期后，您始终能取回金库中剩余的价值。<br>

#### **应该多久查看一次金库仓位？**

这取决于金库的策略和您的风险承受能力。请定期关注仓位，市场剧烈波动时尤其如此。<br>

#### **如果管理人一直不处理我的提取请求怎么办？**

强制提取延迟到期后，您（或 Aftermath 代表您）即可强制提取资金。这确保您的资金永远不会被永久锁死。<br>

#### **管理人费用是按整笔提取金额收取的吗？**

不是。管理人费用只对利润收取。亏损或持平提取时不收任何费用。费用按提取价值与原始存款价值之差的一定比例计算。<br>

#### **如果金库被清算，我的仓位会怎样？**

如果金库仓位因保证金不足被清算，亏损将由全体 LP 代币持有人按比例分担。这是向金库存款的主要风险之一。


# 推荐计划

为激励用户推荐他人来 Aftermath 交易，我们设计了一套简明的推荐计划：任何用户都可以创建推荐码 （Referral Code）并分享给他人。

当新用户使用现有交易者提供的推荐码在 Aftermath 开始交易后，被推荐用户所付全部手续费的 10% 将作为佣金返还给推荐人。返佣按固定频率发放：每周一次。此外，被推荐用户的所有交易还可享受 5% 的手续费折扣。

| **用户** | **类型** | **交易量 $0-$100m** | **交易量 $100m 以上** |
| ------ | ------ | ---------------- | ---------------- |
| 推荐人    | 佣金     | 10%              | 5%               |
| 被推荐人   | 折扣     | 5%               | 2%               |

被推荐用户的前 $100M 交易量内，推荐人可获得通过其推荐码所付全部手续费的 10% 作为佣金；超过该门槛后，佣金降为 5%。同样，被推荐用户在 $100M 交易量以内享受 5% 的手续费折扣，之后终身享受 2%。

推荐码可在[推荐页面](https://aftermath.finance/referrals)生成，并按以下格式分享到社交媒体：<https://aftermath.finance?ref=\\><code>。\
\
\
**所有推荐均可获得积分与流动激励。**


# 积分与奖励

积分计划已于 2025 年 12 月 8 日正式启动。积分旨在奖励为 Aftermath 的成功 作出实际贡献的用户。

#### 要点

* 发放：已于 2/18 向 afLP 预存款用户发放 100 万积分。
* 更新：积分与流动 $SUI 每 2 周发放一次。

## 奖励机制

**afLP 金库：** afLP 金库的运作方式类似生息代币。存入后您会收到金库份额；随着金库赚取永续合约交易手续费，每份份额的价值会自动上涨。无需领取任何东西——余额会随时间增长。页面显示的 APR（年化收益率）是该份额增值的年化速率，并非保证收益。

**交易奖励：** 如果您在积极交易（挂单方 (Maker)/吃单方 (Taker)），SUI 激励奖励需要在 Rewards 页面手动领取。

### Epoch 周期与激励

积分与激励系统按双周（2 周）为一个周期运行。积分与激励根据每个 Epoch（纪元）内的协议活动计算，新一轮激励每隔一个周一部署。

#### 双周切换时间表

Epoch 切换每两周的周一进行一次，自 2026 年 3 月 2 日起，时间安排如下：

| 事件          | 美东时间 (ET)     | UTC 时间     |
| ----------- | ------------- | ---------- |
| Epoch 截止与快照 | 周一 @ 12:00 AM | 周一 @ 05:00 |
| 新激励与发放      | 周一 @ 12:00 PM | 周一 @ 17:00 |

***

> 免责声明：Aftermath 保留自行酌情调整既往积分发放的权利。


# 教程

分步操作指南：

[创建账户](/ru-men-zhi-nan/creating-a-sui-account-with-zklogin)

[选择市场](/yong-xu-he-yue/tutorials/selecting-a-market)

[创建市价单](/yong-xu-he-yue/tutorials/creating-a-market-order)

[创建限价单](/yong-xu-he-yue/tutorials/creating-a-limit-order)

[监控仓位](/yong-xu-he-yue/tutorials/maintaining-your-positions)


# 创建账户

进入永续合约交易页面后，点击 Login/Connect 按钮。连接完成后，点击屏幕左上角的 Create Account 按钮，在钱包中批准交易，屏幕右侧的交易面板中会出现 Mint USDC 按钮。点击该按钮并在钱包中确认交易，即可铸造测试网 USDC。铸造完成后，点击 Deposit 将抵押品存入账户。

账户创建并注资后，点击屏幕左上角的 Account 按钮，即可打开账户弹窗。在这里可以快速查看各账户的状态，并执行多项操作：您可以重命名账户，点击右侧箭头即可一览未平仓位数量、总保证金（Total Margin）和未实现盈亏（Unrealized PnL）。

您还可以创建更多账户、在账户之间划转抵押品，甚至可以把整个账户转移到另一个完全不同的钱包地址。


# 选择市场

账户创建并注资后，即可开始交易。第一步，从下拉菜单中选择市场。

屏幕顶部显示总保证金（Total Margin）、未实现盈亏（Unrealized PnL）和未实现资金费用（Unrealized Funding）等指标，方便您监控账户当前持仓的健康状况。下方的信息栏则显示所选市场的各项指标，悬停在条目上可查看每项指标的说明。从 Markets 下拉菜单按钮起，自左向右依次为：

**标记价格（Mark Price）：** 该市场当前的成交价格，由订单簿的中间价决定，即在无滑点的前提下市价单的成交价格。

**指数价格（Index Price）：** 资产的参考价格，由预言机聚合器提供。目前指数价格来自 Pyth 和 Switchboard 预言机。

**24h 涨跌：** 资产价格在过去 24 小时内的变动幅度。

**24 小时交易量：** 该市场过去 24 小时的交易活跃程度。

**未平仓量（Open Interest）：** 当前所有未平仓合约的总和，以该市场交易的资产计价。

**1 小时资金费率：** 过去一小时内，维持永续合约仓位所需支付的费用，按仓位名义价值的百分比计。为正时，多头仓位向空头仓位付费；为负时，空头仓位向多头仓位付费。

**下次资金结算（Next Funding）：** 距离下一轮资金费用结算的剩余时间。

在市场下拉菜单中，可以查看各市场的标记价格、资金费率、24 小时交易量和未平仓量等信息，还可以按资产类型筛选：加密货币、大宗商品和股票。

选定市场后，可在屏幕右下角查看市场详情（Market Details），其中列出了该市场的全部相关参数和费用。

\*\*最大杠杆（Max Leverage）、初始保证金率（Initial Margin Ratio）**和**维持保证金率（Maintenance Margin Ratio）\*\*表示开仓和维持仓位所需的抵押品，按仓位总名义价值的百分比计。

\*\*最小交易单位（Lot Size）**和**最小价格变动（Tick Size）\*\*指订单簿上每一档的最小变动量，分别以该市场资产和美元计价。

\*\*资金结算周期（Funding Period）\*\*是资金费用支付的频率。\*\*资金更新频率（Funding Frequency）\*\*是资金费率两次更新之间的时间间隔。

\*\*Taker 费用（吃单费用）\*\*是从订单簿获取流动性（即使用市价单）需支付的费用

\*\*Maker 费用（挂单费用）\*\*是您的订单为订单簿提供了流动性并被其他交易者吃单时收取的费用

\*\*清算费用（Liquidation Fee）\*\*是仓位低于维持保证金而必须被部分强制平仓（清算）时收取的费用；该费用支付给清算人，作为其维护市场健康的报酬

\*\*强制撤单费用（Force Cancel Fee）\*\*是限价单因抵押品不足而必须从订单簿移除时收取的费用

\*\*保险基金费用（Insurance Fund Fee）\*\*在每次清算时收取，用于积累储备金，以应对可能出现的坏账。

市场详情会因市场类型而异，以便在为用户提供最佳交易体验的同时确保市场安全稳健地运行。请务必查看每个市场的详情，以便妥善管理您在该市场的仓位。


# 创建市价单

选定市场后，即可开始交易。最简单的方式是使用市价单：只需指定期望的杠杆和想买入或卖出的资产数量，订单就会按订单簿提供的最优价格成交。下面逐步演示：

1. 设置期望的杠杆

最大杠杆因市场而异，一般来说波动性越低的资产最大杠杆越高。提高杠杆有两个效果：一是开立同等名义价值的仓位所需抵押品更少；二是强制平仓（清算）价格会更接近开仓价格。简言之，杠杆越高，风险和收益都越大。高杠杆仓位必须密切监控，以免被清算。若仓位跌破维持保证金，将被部分清算，直至其抵押品重新满足该市场维持保证金的要求。

注意，开仓之后，您可以随时通过在同一方向（多头或空头）再下市价单或限价单来加仓。您随时可以提高杠杆，但无法通过交易面板降低杠杆；不过可以通过追加抵押品来降杠杆。具体操作详见[监控仓位](/yong-xu-he-yue/tutorials/maintaining-your-positions)。

2. 设置好杠杆后，即可下市价单。选择 Buy 或 Sell，订单类型选择 Market，并指定想交易的资产数量。

指定买卖数量时，可以直接输入数值，也可以用滑杆决定将多少可用抵押品分配给这个新仓位。交易面板正下方会显示下单后新仓位的预览，字段包括：

**执行价格（Execution Price）：** 市价单的开仓价格，也是计算 PnL（盈亏）的基准价。

**未实现盈亏（Unrealized PnL）：** 开仓瞬间的预估盈亏。

**预估滑点（Est. Slippage）：** 视订单大小和订单簿流动性深度而定，订单可能吃掉不止一个价格档位。此时会产生滑点，并显示在这里。

**清算价格（Liquidation Price）：** 仓位跌破维持保证金并被部分清算的价格。

**费用（Fees）：** 下这笔订单需支付的 Taker（吃单）费用。

**仓位大小（Position Size）：** 将买入或卖出的资产数量及其名义价值。

**已分配抵押品（Allocated Collateral）：** 用于开立并维持这个新仓位的可用抵押品数量。

**仓位健康度（Position Health）：** 仓位的保证金率，即杠杆的倒数。它随盈亏波动，反映您为该仓位分配的抵押品相对仓位名义价值的比例。

**杠杆（Leverage）：** 第 1 步中指定的杠杆倍数。

确认交易预览无误后，点击 Buy 或 Sell 即可执行交易。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-9d61e185a1e3eaf8cf25ef9e6cbe73067d25af98%2FScreenshot%202024-10-30%20at%2012.30.18%20PM.png?alt=media" alt=""><figcaption><p>下市价单后图表上的标记</p></figcaption></figure>

下单后，图表上会出现标记，显示开仓的时间与价格，以及清算价格。您可以在图表下方的 Positions 标签页中监控仓位。有关仓位监控的更多信息，请参阅[监控仓位](/yong-xu-he-yue/tutorials/maintaining-your-positions)。


# 创建限价单

限价单是以指定价格买入或卖出一定数量资产的报价。市价单会立即按订单簿最优价格自动成交，而限价单会挂在订单簿上，直到与其他交易者的订单撮合。限价单有多种用法：

**只按指定价格买卖：** 比如您想买入 BTC，但只在价格下跌 $1,000 时才买。此时可按期望的价格和数量挂一笔 Buy 订单，只有条件满足时才会成交。

**止损/止盈：** 如果您在某市场持有仓位，当标记价格逼近清算价格时，您可能希望平掉仓位——这就是止损（Stop Loss），可避免被强制平仓（清算）。反之，若仓位 PnL（盈亏）为正，您可能希望在达到某些目标位时逐步止盈、锁定利润。这两件事都可以用限价单完成。

**做市：** 基于订单簿的交易所依赖做市商在指数价格附近挂出买卖报价。做市商不断地挂单、撤单、重新挂单，由此形成的买卖盘构成了让市场高效运转的流动性。这些都通过限价单实现。

下限价单时，必须预留订单成交时所需的抵押品，以确保订单簿上的所有报价在任何时刻都能真实成交吃单订单。下限价单的流程与市价单非常相似，只是多了几个选项，下面逐一说明。

1. 设置期望的杠杆

与市价单一样，第一步是指定仓位的杠杆倍数。杠杆越高，下限价单需要预留的抵押品越少，但清算价格也会离您的限价更近。

2. 选择 Buy 或 Sell，订单类型选择 Limit。
3. 指定限价。这是您希望订单成交的价格，只有当买盘或卖盘能与之部分或全部撮合时订单才会成交。
4. 指定订单大小，即想买入或卖出的资产数量。可以直接输入，也可以用滑杆将一定比例的可用抵押品分配给这笔新限价单。
5. 指定订单类型，并可选勾选只减仓（Reduce Only）：

可下的限价单有多种类型：

**标准（Standard）：** 订单会挂在订单簿上，直到成交或被您撤销。若能部分成交，撮合成功的部分会开立新仓位或加到现有仓位上。

**全部成交或撤销（Fill or Kill，FOK）：** 订单必须立即全部成交，否则将被撤销。FOK 订单与市价单类似，都会立即执行；区别在于市价单按订单簿最优价格自动成交，而 FOK 订单只按您指定的确切价格成交，无法成交时订单即被删除。

**只挂单（Post Only）：** 确保您的订单只会作为 Maker（挂单方）订单成交。换言之，它只向订单簿添加流动性、等待吃单订单来撮合，而不会消耗订单簿上已有的流动性。Post Only 用于做市，可确保最多只支付 Maker 费用（如有）。

**立即成交或撤销（Immediate or Cancel，IOC）：** IOC 订单与 FOK 类似，但允许部分成交。若订单部分成交，未能撮合的剩余部分将被撤销。

除了多种限价单类型，还有\*\*只减仓（Reduce Only）\*\*选项。当您已持有仓位、正在用限价单做止损或止盈时，这个选项很有用。只减仓确保订单规模不会超出现有仓位、不会反向开出新仓位，最多只会把现有仓位完全平掉，订单的剩余部分（如有）将被撤销。

完成以上步骤后，即可下单。下单前，可在 Buy/Sell 按钮下方的窗口中预览订单详情。交易预览的参数包括：

**预估滑点（Est. Slippage）：** 限价单按您指定的价格成交，因此没有滑点。

**清算价格（Liquidation Price）：** 订单成交前清算价格没有意义；成交后可在图表下方的 Positions 标签页中查看。

**费用（Fees）：** 为订单簿提供流动性的限价单在与吃单订单撮合时不收取费用。

**仓位大小（Position Size）：** 显示为零，表示仓位不会立即开立。

**待成交买单（Pending Bids）：** 您所有未成交 Buy 订单之和，包括正在下的这笔（如适用）

**待成交卖单（Pending Asks）：** 您所有未成交 Sell 订单之和，包括正在下的这笔（如适用）

**已分配抵押品（Allocated Collateral）：** 为这笔订单预留的可用抵押品数量

**仓位健康度（Position Health）：** 订单的保证金率

**杠杆（Leverage）：** 第 1 步中指定的杠杆倍数

注意，如果您下的限价单会立即撮合成交，界面会显示执行价格和未实现盈亏：

如果希望订单挂在订单簿上，可以调整价格，直到不再显示执行价格为止。

确认交易无误后即可下单。所有待成交的限价单都可在图表下方的 Orders 标签页中查看。

注意，若您的任何持仓跌破维持保证金而必须被清算，您的未成交订单可能会被撤销。请务必密切关注仓位的健康状况。


# 管理仓位

开仓后，图表上会出现多个标记，帮助您监控仓位的健康度和状态。

首次开仓时，图表上对应的时间和价格处会出现一个标记。上图中可以看到，28 日在 $66,920.9 开了一个多头仓位；下方的黄线表示该仓位的强制平仓（清算）价格；当前价格为 $71,557.7，另有一笔限价卖单设定在 $75,000 触发。借助这些标记，图表可以作为仓位及所有挂单状态的一览参考。

图表下方有一排标签页：\*\*Positions（仓位）、Orders（订单）、Order History（订单历史）\*\*和 **Margin History（保证金历史）**。

您可以在这里通过各项指标监控持仓状态，并执行多项操作。参数包括：

**市场（Market）：** 仓位的基础资产与计价资产。可通过屏幕左上角的下拉菜单跳转到该市场，查看图表和订单簿。

**方向（Direction）：** 仓位是多头（Buy）还是空头（Sell），同时显示仓位的杠杆。注意，开仓后可以通过交易面板提高杠杆，但不能降低杠杆。要降低杠杆，可以为仓位追加抵押品，具体操作见下文**已分配抵押品**部分。

**健康度（Health）：** 反映保证金率，即您为该仓位分配的抵押品相对仓位总名义价值的比例，也就是杠杆的倒数。健康度会随 PnL（盈亏）和未实现资金费用变化。追加抵押品总能提高仓位健康度。

**大小（Size）：** 交易的基础资产数量，同时以资产单位和名义（美元）价值显示。

**平均开仓价（Avg. Entry Price）：** 开仓价格。若开仓后又加过仓，这里显示的是平均价格。

**清算价格（Liquidation Price）：** 仓位不再满足维持保证金要求、将被部分清算的价格。通过为仓位追加抵押品，随时可以上调（空头）或下调（多头）清算价格。

**未实现盈亏（Unrealized PnL）：** 仓位当前的盈亏。仓位未平时，该盈亏是未实现的；要锁定利润，必须部分或全部平仓，利润才会划入您的账户。

如果某个仓位让您格外自豪，点击分享图标会生成一张图片，可以分享到您的社交媒体！

**未实现资金费用（Unrealized Funding）：** 资金费率是维持永续合约仓位需支付或收取的费用，是让标记价格锚定资产指数（预言机）价格的机制。未实现资金费用是下次资金结算时您将支付或收到的金额。

**下次资金结算（Next Funding）：** 距资金费率更新的剩余时间。届时显示的数值会计入未实现资金费用，并在资金结算周期结束时结算。

**已分配抵押品（Allocated Collateral）：** 每个仓位为维持开仓状态所占用的抵押品数量。注意，每个仓位都是\*\*逐仓（Isolated）\*\*的：仓位之间不共享抵押品，账户中的可用抵押品也不会自动分配给仓位。点击铅笔图标可调整分配给各仓位的抵押品数量：

分配抵押品会降低杠杆并提高仓位健康度。分配抵押品的前提是交易账户中有可用抵押品；余额显示在弹窗右上角。在输入框中填入数值或点选按钮后，界面会显示追加抵押品带来的变化。

弹窗中会显示\*\*账户（Account）**和**仓位（Position）**的**当前（Current）**与**调整后（After）\*\*指标。**账户**显示分配抵押品前后的总保证金。

**仓位**显示仓位当前和调整后的已分配抵押品，以及健康度和清算价格，方便您在分配抵押品前确认变化。

若仓位盈亏为正、您想落袋部分利润，也可以点击弹窗顶部对应的标签页**取回抵押品（Deallocate Collateral）**。这样做会提高杠杆并降低仓位健康度，请务必先确认\*\*取回后仓位（Position After Deallocation）\*\*指标符合预期，再执行交易。

注意，只有当仓位当前杠杆低于开仓时的杠杆，才能取回抵押品。可以通过交易面板提高仓位允许的杠杆，操作方式与下单时设置杠杆相同：先选中要调整杠杆的仓位所在市场（如 SUI/USDC、BTC/USDC 等），再把杠杆改到期望的水平。

提高杠杆会从仓位中取回抵押品，作为可用抵押品退回交易账户；降低现有仓位的杠杆则会从交易账户扣除可用抵押品并分配给仓位。设置新杠杆前，可先查看变化。

最后，Positions 标签页最右侧是 Close 按钮，可部分或全部平仓。点击后会弹出预览窗口，供您在决定继续前确认交易。

您可以输入数值或用滑杆调整想平掉的仓位比例。下方的指标预览部分或全部平仓的效果，包括：

**执行价格（Execution Price）：** 仓位的平仓价格。

**已实现盈亏（Realized PnL）：** 平仓后将计入或从账户扣除的盈亏。

**未实现盈亏（Unrealized PnL）：** 部分平仓时，仍保持开仓状态那部分仓位的盈亏。

**预估滑点（Est. Slippage）：** 平仓将产生的滑点。

**清算价格（Liquidation Price）：** 部分平仓后新的清算价格。

**费用（Fees）：** 平仓需支付的费用。

**仓位大小（Position Size）：** 部分平仓后新的仓位大小。

**已分配抵押品（Allocated Collateral）：** 部分平仓后该仓位占用的抵押品数量。

**仓位健康度（Position Health）：** 部分平仓后新的保证金率。

**杠杆（Leverage）：** 部分平仓后新的杠杆倍数。


# 常见问题

关于 Aftermath 永续合约交易、保证金与抵押品的常见问题。

### 为什么已分配抵押品看起来比已成交的仓位大小要高？

Aftermath 永续合约采用逐仓保证金市场。当您挂出限价单时，协议必须预留抵押品，以备这些订单成交。因此，已分配抵押品覆盖的是当前已成交仓位加上所有挂单，而不只是当前持仓本身。

例如，若首笔订单以 $6 成交，同时还挂着几笔限价单，则已分配抵押品反映的是最坏情况下的总敞口，而不只是 $6。

### 为什么已分配抵押品不等于所有订单之和？

因为待成交的买单（bid）与待成交的卖单（ask）会相互抵消。协议使用 MaxNetBase 公式计算最坏情况下的净敞口，而不是简单地把所有订单加总。

也就是说，如果您持有 $6 的多头仓位，同时挂着 5 笔 $6.55 的买单和 5 笔 $6.55 的卖单，所需抵押品会小于 $6 + (10 x $6.55) = $71.50。系统只要求覆盖最坏方向的抵押品。

### MaxNetBase 是什么？它如何决定我的保证金？

MaxNetBase 是计算仓位敞口的核心公式，取以下两种情形中的较大者：

```
MaxNetBase(p) = max(|BaseAmount + PendingBids|, |BaseAmount - PendingAsks|)
```

即：当前仓位加上全部待成交买单（所有买单都成交的最坏情况），或当前仓位减去全部待成交卖单（所有卖单都成交的最坏情况）。两者中较大的一方决定您的保证金要求。

这可以防止交易者在抵押品不足的情况下，通过挂出相互对应的买卖订单来人为加深订单簿。

### 在哪里可以进一步了解保证金系统？

完整公式（包括保证金率、初始保证金率（IMR）和维持保证金率（MMR））请参阅[保证金文档](/yong-xu-he-yue/architecture/margin)。


# 合约

{% hint style="info" %}
查询以下包与对象请使用 **Sui GraphQL API**（`https://graphql.mainnet.sui.io/graphql`）或 gRPC。Sui 公共全节点的 JSON-RPC 已弃用，不再提供服务。
{% endhint %}

{% tabs %}
{% tab title="主网" %}

### 永续合约（V2）

以下为顶层包地址。下表中所有包的 `original-id` 与 `published-at` 目前一致。

<table><thead><tr><th width="270">包</th><th>地址</th></tr></thead><tbody><tr><td>iperps</td><td>0x3ec740df8428aa9c93aaef7f8cc1542ac3194fd014826b51bfe245346d64efc7</td></tr><tr><td>perps-position</td><td>0x9196fffe0341b2f0ca7424926b22d9e9e35b4807a1f625fc20eeea1382d08dec</td></tr><tr><td>iperps-vaults</td><td>0xbab1b714c5533a46ee27a9c124d6f9281ca54831fc288d4d0c133dae3a57254a</td></tr><tr><td>oracle</td><td>0x9237337d846fc90b0a7acbdee4ab91809298691873d28e1d64d91e6303ff6ba4</td></tr><tr><td>pyth-lazer-integration</td><td>0xa5428da682b4fad53e40f73dc07b547e33be078ec1c5d4a4378d6a316f0d9104</td></tr><tr><td>pyth-lazer-rolling-integration</td><td>0x7ab17437b8abad366757ac8cec7cdf8ab483090d9d5026e45cc37f27769535e8</td></tr></tbody></table>

`perps-position` 是 `iperps` 的依赖包。

<table><thead><tr><th width="270">对象</th><th>地址</th></tr></thead><tbody><tr><td>Registry（iperps）</td><td>0xda0bd7a60182efd662b70e0de99218bbd2b6c4bbe9de23c0bb5a87ec52b37c37</td></tr><tr><td>Config（iperps-vaults）</td><td>0x1334252afebd7f4546841c247ddcec8afd8db6ac67278a10c6f4a6ec3fdb7cf4</td></tr><tr><td>Config（oracle）</td><td>0xd41beee10826d597570e36e781a67a7398e3e6fdf9dbcb297e76b88e89a3aba6</td></tr><tr><td>Source（pyth-lazer-integration）</td><td>0x2bc1b8c560c7b0dce17c74ddb5e42ad3e43420b6d5297a10d33445ceed57361f</td></tr><tr><td>Source（pyth-lazer-rolling-integration）</td><td>0x52323d8b53f4d81eed9d87f4910c30fd6b39921312b559e59d0fffbfe548e79c</td></tr></tbody></table>

### 旧版（V1）

<table><thead><tr><th width="184.33333333333334">包</th><th width="98">版本</th><th>地址</th></tr></thead><tbody><tr><td>AftermathPerpetuals</td><td>v1</td><td>0x21d001e8b07da2e3facb3e2d636bbaef43ba3c978bd84810368840b7d57c5068</td></tr></tbody></table>

<table><thead><tr><th width="184.33333333333334">对象</th><th>地址</th></tr></thead><tbody><tr><td>Registry</td><td>0xd0b3ea6b7a2f5887543a5a493aa70bcd0ec1a2d9c03d830504234df3e8c6a609</td></tr></tbody></table>

<table><thead><tr><th width="252.33333333333334">包</th><th width="98">版本</th><th>地址</th></tr></thead><tbody><tr><td>AftermathMarketMakingVault</td><td>v1</td><td>0x9e20798d97c110f6b36b7b3d8543aa9246322ef2fd8d83ad79ef3325d473bc2f</td></tr></tbody></table>
{% endtab %}

{% tab title="测试网" %}

### 永续合约

<table><thead><tr><th width="184.33333333333334">包</th><th width="98">版本</th><th>地址</th></tr></thead><tbody><tr><td>AftermathPerpetuals</td><td>v1</td><td>0x620351da53cb6f7d4f7bfbeb7ad924b423e68b066d50c067678bdc90f865d5db</td></tr><tr><td>AftermathPerpetuals</td><td>v2</td><td>0x9fe588a943ce99ee34e587c1dbc28252fb96a05258b1442d82cec727f95ea069</td></tr><tr><td>AftermathPerpetuals</td><td>v3</td><td>0xad60618de9d63b9fad2d9bc7cea2ce387ea95ad3d057b1e4cbc95afc9127881d</td></tr><tr><td>AftermathPerpetuals</td><td>v4</td><td>0xa8b60e3695373aa554e1de6c57b0c9f71579f999a6daaa7f43bd9ec967eb0c1d</td></tr><tr><td>AftermathPerpetuals</td><td>v5</td><td>0xe51cf6dfacb9c177a007fa85c705093448ef3b919f8aa3ba0a147bcc97a9648c</td></tr><tr><td>AftermathPerpetuals</td><td>v6</td><td>0x63f1e54c835112ea4452083fc76dcb81775eb6259303642994360aa81f895145</td></tr></tbody></table>

<table><thead><tr><th width="184.33333333333334">对象</th><th>地址</th></tr></thead><tbody><tr><td>Registry</td><td>0x2990bb3ef074bd1d7af50764a908cd28db9f99525205e3ba7c145c99beb91b04</td></tr></tbody></table>

### 做市金库

<table><thead><tr><th width="252.33333333333334">包</th><th width="98">版本</th><th>地址</th></tr></thead><tbody><tr><td>AftermathMarketMakingVault</td><td>v1</td><td>0x23077d57931c5ca6747231daa2f15bc4603d70ed4f6da46d7b14b639b95ab2c4</td></tr><tr><td>AftermathMarketMakingVault</td><td>v2</td><td>0x56256c3d03cff49c2826696239499338a93d6062552226017fd68a3aed5ebf54</td></tr><tr><td>AftermathMarketMakingVault</td><td>v3</td><td>0x8160ea3c931f475c94638135df9749d3e2456e153212488dbf2fa9b7f5662c89</td></tr><tr><td>AftermathMarketMakingVault</td><td>v4</td><td>0x71f10b401ce98f27cb334b1a7ab1ed8e38a2354b965bd7efb5afacb52c37f28c</td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# 审计

### OtterSec

{% file src="/files/nMdmqFH5pAnIqyf0l4jh" %}


# 智能订单路由

在一个页面上找到 Sui 全部 DEX 中的最优兑换价格

我们的智能订单路由（SOR）是一个 DEX 聚合器，不仅连接 Aftermath 上的所有流动性池，还接入 Sui 上任何提供可对接 API 且流动性充足的其他 DEX。这意味着当您选定想要换入的资产时，路由器会搜索 Sui 上的每一个 DEX，为您找到最优价格——即使它并非来自我们自己的池子。

您可以在交易设置中查看已聚合 DEX 的完整列表，并按需开启或关闭。随着 Sui DeFi 生态不断壮大、新的流动性来源上线，它们也会被整合进我们的路由器，确保您只需在一个地方，就能为所有兑换拿到最优价格。

除了搜索 Sui 上每一个有流动性的 DEX，智能订单路由还能把一笔兑换拆分成多条子路径。也就是说，兑换的一部分可以经由某个 DEX 上的一个或多个池子完成，其余部分则由其他子路径成交。这在大额交易时尤其有用：交易被拆分到多个 DEX 的多个池子后，产生的滑点会大幅降低。我们在设计聚合器时充分利用了 Sui 的原生特性，因此无论路径多复杂、总共包含多少次兑换，最终用户始终只需签名一笔交易。

将一笔交易拆分为多条子路径，依托的是可编程交易块（PTB）。借助 PTB，多笔相互关联的兑换可以打包进一笔原子执行的交易。整条路径的有效性检查通过 Hot Potato 模式强制执行，确保不超出滑点容忍度。由于部分子路径会涉及用户指定的输入、输出币种之外的其他币种，这一机制还能防止路径中经手的代币被滥用，进一步提升安全性。这些安全措施在合约层面强制执行，带来了无需许可的可组合性，让其他人可以在 SOR 之上继续构建。

正因为路由器在设计之初就以无需许可的可组合性为目标，其他 Sui 开发者可以轻松将 SOR 集成到自己的 dApp 中。目前的 SOR 集成包括 Aftermath 的[动态 Gas](/ru-men-zhi-nan/dynamic-gas) 功能、[Nightly 钱包](https://twitter.com/Nightly_app)的钱包内兑换、[Scallop](https://twitter.com/Scallop_io) Tools 界面中的兑换，以及通过 [Suiba ](https://twitter.com/SuibaOnSUI)Telegram 机器人进行的交易，更多集成即将公布！


# 聚合器的聚合器

在一个页面直接比较多个 DEX 聚合器

除了自研路由算法之外，Aftermath 还接入了 Sui 上所有允许我们接入的其他 DEX 聚合器，让用户实时比较报价，选出价格最优的一家。

我们不希望用户为了找到最优价格而辗转多个网站（当然，您愿意也无妨）。多数时候，我们的原生路由算法给出的就是最优价格；而在某些币种之间的兑换中，Cetus、FlowX 或 7k 偶尔会找到略优的路径。这种情况下，只要用户能在兑换中获得最佳回报，我们乐于把交易路由给它们。

要快速直达兑换页面，访问 [af.lol](http://af.lol) 即可。


# 发起交易

要兑换代币，请先进入 Trade 标签页（或直接访问 [af.lol)](http://af.lol)。通过下拉菜单选择要卖出的币种：可以点击常用币种的图标，在搜索框中输入币种名称（或币种地址），也可以直接从下拉菜单中选取。菜单分为三类：已知币种（Known Coins）、LP 币种（LP Coins）和未识别币种（Unrecognized Coins）。

已知币种指已确认真实、可放心交易的币种。未知币种中则有 Meme 币、跨链桥接到 Sui 的币，以及其他尚未确认为已知币种的资产。它们未必不安全，但兑换前应自行尽调。币种名称下方会显示一个地址链接，可跳转到区块浏览器查验该币是否正是您要找的那一个。LP 币种同样受支持，因为可以用其他池子的 LP 币创建流动性池；任何流动性充足的此类池子都会被 SOR 聚合。

选定要兑换的币种后，交易窗口右上角会显示钱包中该输入币种的总余额。您可以直接输入兑换数量，拖动滑块，或点击 Half / Max 按钮。路由器随即快速计算出能让您的输入换到最多输出币种的一条或多条路径。

输入兑换数量后，Aftermath 会把自研路由算法的报价与 FlowX、Cetus、7k 的报价放在一起，供您实时比价，选择最优的一个。

除了输入卖出数量，也可以输入希望收到的数量。这只在使用我们自研路由算法时可用，依托的是名为 Exact Out 的功能：它会反向计算路径，得出换取目标输出数量所需的最少输入币种数量。

核对交易并设置好最大允许滑点后，点击 Trade 按钮并在钱包中确认交易。无论路径多复杂，都只需确认一次。

Trade 按钮下方可以设置滑点容忍度。滑点指界面上显示的预计到手数量与实际成交后到手数量之间的差值。若超出滑点容忍度，交易会回滚。

{% hint style="info" %}
滑点与价格影响是两回事。价格影响由您自己的交易造成——交易规模会推动价格；滑点则来自报价与成交之间其他交易者的价格影响。
{% endhint %}

点击 Trade 按钮下方的齿轮图标，即可打开交易设置。在这里可以选择是否显示交易成功弹窗和价格影响警告，也可以开启或关闭智能订单路由在寻找最优价格时会尝试的各个 DEX。

就是这么简单！Aftermath 的智能订单路由让兑换变得极其容易，同时确保您在 Sui 上的每一笔现货交易都拿到最优价格。


# 精确输出

反向计算最优价格

Exact Out 允许用户指定想要收到的币种数量，而不是要卖出的数量。传统做法是先填写输入数量，再反复调整，直到输出数量符合预期。

有了 Exact Out，只需输入目标数量即可。

Exact Out 让用户可以：

* 精确拿到所需数量，不多不少
* 在需要精确输出数量的场景（例如套利）中获得更强的可组合性
* 省去计算时间
* 简化复杂交易，对新手尤其友好

立即前往 [af.lol](https://af.lol) 体验！


# 费用

聚合器费用分为两类：协议费用（Protocol Fee）与集成商费用（Integrator Fee）。

通过 Aftermath 智能订单路由完成的交易不收取协议费用。

集成商费用允许使用 Aftermath 智能订单路由的 dApp 按需设定自己的费用。是否收取集成商费用，请以各 dApp 的文档为准。

Aftermath 聚合器支持设置可选的平台费用，可通过 API 按笔兑换配置。\
• 若某笔兑换未配置费用，则不收取任何费用，用户获得全部输出。\
• 若设置了平台费用，无论费率多少，Aftermath 都会从中抽取 2.5% 作为协议运营开销。

在 Aftermath.finance 上的交易不收取集成商费用。

通过 Aftermath 智能订单路由在 Aftermath.finance 或 AF.lol 上兑换不收取任何费用。


# 定投 (DCA)

DCA（美元成本平均法，Dollar Cost Averaging）是一种交易与投资策略：将一笔交易拆分成多笔较小的交易，按设定的时间间隔依次执行。该策略可以代用户自动执行，无需手动完成每一笔交易。

DCA 适用于多种场景和策略，但核心目的是对冲波动。与其试图择时、一次性执行大额订单，不如把订单拆成一段时间内的多笔小额交易，让它们在不同价格上成交。使用 DCA 得到的整体成本基础，往往比押注一笔大额交易的时机更划算。


# 为什么使用 DCA

DCA（美元成本平均法）有许多实用的应用和策略，包括：

* **抵御市场波动**：DCA 将交易分散在设定的时间段内执行——从几分钟到几个月均可，取决于用户想要的跨度——从而缓解价格波动的影响。
* **建立长期仓位**：如果整体看好某项资产、想增持却不确定何时入场，DCA 是一个稳妥的策略。
* **止盈**：反向操作同样可行。想分批落袋为安时，可以用 DCA 逐步卖回稳定币，实现盈利。
* **大额买卖或交易低流动性资产**：如果某个币的链上流动性不深，而交易者持有或想建立相对较大的仓位，一笔大单会对该资产造成明显的价格影响。用 DCA 把交易分散到一段时间内，可以缓解价格影响。
* **将产出发送到其他地址**：用户可以指定一个不同于执行 DCA 策略的地址来接收兑换所得的代币。例如，可以把资金从交易账户转入投资账户，甚至转到中心化交易所。


# DCA 的工作原理

DCA（美元成本平均法）天然要求多方都能访问同一账户，才能按设定间隔执行交易，用户才不必亲自反复下单。由于 Sui 与其他区块链存在根本差异，要让 DCA 实现在性能和安全上都达到最优，需要一套独特的方案。

在大多数区块链上，只需授权某个合约访问账户资金即可。Sui 以对象为中心的设计带来了诸多优势，但要构建针对 Sui 优化的 DCA，需要一些巧妙的工程设计。关键在于 Sui 有两种交易最终确认方式：共识（consensus）和所谓的快速路径（fast path）。共识需要验证者批准交易，用于共享对象，例如用户与 AMM 池交互；快速路径用于简单交易，例如用户之间转账代币，无需共识。虽然 Sui 的共识本身已经极快，但如果 DCA 这类场景能走快速路径，自然更好。

Aftermath 的方案是共享持有对象的地址，而不是共享对象本身。这通过 Sui 原生原语——k-of-n 多重签名——实现。创建 DCA 订单时，系统会生成一个订单对象，记录每笔交易的数量和间隔。该对象由多签持有，而多签在链上派生，并非从链下传入。订单对象与该多签灵魂绑定，永远无法转移到别处。对用户而言，好处是更低的 Gas 成本和更快的成交速度，同时体验与任何其他链或 CEX 上的 DCA 完全一致。

关于在 Sui 上实现 DCA 的各种可能方式，以及 Aftermath 为何选择当前方案的深入解读，请参阅[我们 CTO Kevin 撰写的这篇文章。](https://kevin-aftermath.medium.com/from-concept-to-implementation-shared-custody-on-sui-e63cb88134e7)

除了专为 Sui 优化，Aftermath 的 DCA 还有多项对用户有益的附加功能。首先，每笔订单会在设定间隔的前后至多 30 秒内执行，以防有人利用定时下单的规律性进行博弈。作为对极端波动的防护，还可以为每笔交易设置最高和最低兑换价格：若处理时价格不在用户设定的区间内，该笔交易不会执行。此外，还可以把交易产出发送到您指定的其他地址，例如投资地址或中心化交易所地址。这些功能让 Aftermath 上的 DCA 真正做到设置一次、从此无忧。

\\


# 教程

以下分步教程涵盖：

[创建 DCA 订单](/jiao-yi/dca/tutorials/creating-a-dca-order)

[跟踪 DCA 订单进度](/jiao-yi/dca/tutorials/monitoring-dca-progress)

[高级功能](/jiao-yi/dca/tutorials/advanced-features)


# 创建 DCA 订单

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2FlDkaqPRUJxkuNfPviAkw%2FDCA.mp4?alt=media&token=e954c59b-ed23-4fa1-bcf3-7e31d4b9fbc7>" %}

## 创建订单

在 Aftermath 上创建新的 DCA 订单非常简单。这里先演示设置一笔基础订单的步骤，后续章节再介绍可按需启用的更多自定义选项。下面逐一说明各字段的含义，帮助您把参数设置成想要的效果。

**分配数量（I want to allocate）：您钱包中当前持有、想换成其他币种的币。此处填写的应是整个 DCA 订单期间您计划交易的总量**。

\*\*买入币种（To buy）：\*\*您想换入的币种。

\*\*执行间隔（Every）：\*\*交易执行的频率。相邻两笔交易之间的时长可以按分钟、小时、天、周或月计。

\*\*订单笔数（Over X orders）：\*\*您希望 DCA 订单拆分成的交易总笔数。每笔订单将卖出的分配代币数量会自动算好并显示在下方，供您核对。

## 提交订单

核对订单、确认各项参数无误后，点击 Create Order 按钮。系统会请您签名一笔交易以创建新的 DCA 账户，并批准另一笔交易为其注资。

<div align="center"><figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-34b61fdb230abd7698fe55698a984fae59a2adaa%2FScreenshot%202024-09-10%20at%205.37.23%20PM.png?alt=media" alt="" width="563"><figcaption><p>创建并注资 DCA 账户</p></figcaption></figure></div>

签名并批准这两笔交易后，DCA 订单即开始执行。下一节将介绍如何跟踪订单进度。

为确保每笔交易都能顺利处理，系统会为每笔交易预留 0.05 SUI 作为 Gas 费。例如，创建一个共 10 笔交易的 DCA 订单时，除交易本金外还会额外收取 0.5 SUI（每笔 0.05 SUI × 10 笔）。订单完成或取消后，Gas 预存款与实际成交成本之间的差额会退还给用户。


# 跟踪 DCA 进度

## 概览

核对参数并提交 DCA 订单后，订单状态会显示在屏幕右侧。您可以看到卖出的币种及数量，以及换入的币种。状态条展示订单的整体进度，最右侧的箭头可展开窗口查看更多细节。箭头上方有一个刷新按钮，点击后会查询订单进度，给出最新数据。

在展开视图中，可以查看订单的关键信息，例如：

\*\*初始存入余额（Start Balance Deposited）：\*\*创建订单时存入的输入币种数量

\*\*已买入总量（Final Amount Bought）：\*\*迄今已买入的输出币种数量，每完成一笔新订单都会增加。

\*\*平均价格（Average Price）：\*\*已买入总量除以已完成的订单笔数。

\*\*已花费总额（Total Spent）：\*\*初始余额中迄今已用掉的部分。

\*\*间隔（Interval）：\*\*订单设定的交易执行频率。

\*\*已完成笔数（Total Trades）：\*\*迄今已完成的交易笔数。

\*\*剩余笔数（Trades Remaining）：\*\*距 DCA 订单全部完成还剩的交易笔数。

\*\*最大滑点（Max Slippage）：\*\*订单设定的滑点容忍度。

\*\*策略（Strategy）：\*\*是否设置了交易策略。该主题将在文档的下一节介绍。

\*\*创建时间（Created）：\*\*订单提交至今经过的时间。

\*\*启动时间（Started）：\*\*首笔交易执行至今经过的时间。设置了延迟时这一项才有意义。

\*\*最近交易（Last Trade）：\*\*距上一笔交易执行经过的时间。

记得点击刷新按钮查看最新信息。\\

## 订单

点击窗口顶部附近的 Orders 标签页，可查看迄今已完成的每一笔交易。

在这里可以逐笔查看已完成的交易，核对到账数量、成交时间等参数，还可以在区块浏览器中检视该笔交易。


# 高级功能

有些用户可能希望为 DCA 订单添加更多参数，让它更贴合自己的需求。为此，Aftermath 提供了三项易用而强大的附加功能：**延迟（Delay）、汇率策略（Exchange Strategy）和自定义接收地址（Custom Recipient）**。

## 延迟

如果想先创建 DCA 订单、但不希望它立即开始交易，延迟功能就派上用场。订单会发布到链上，并在设定的延迟结束后自动执行第一笔交易。

如果您希望交易在一天中的特定时间执行，或者已经定好了开始建仓或退出仓位的目标日期，这项功能很实用。现在就把 DCA 订单设置好，它会在合适的时间自动启动。

## 汇率策略

要让 DCA 真正做到设置一次、从此无忧，用户可能希望只有当买入资产的价格落在某个区间内时才执行交易。启用汇率策略正是为此：执行交易前先检查当前价格是否满足设定条件；若价格超出区间，则跳过该笔计划交易，直到价格重新满足用户设定的参数，订单才会继续执行。

上图示例中的汇率策略是：只有当 1 USDC 可兑换 1.10 SUI 或更多时才买入 SUI。这样的策略可以保证：一旦价格涨破用户愿意买入的水平，DCA 订单就会暂停，直到买入资产的价格重新跌回允许的最大汇率以下。在上例中，当前汇率为 1 USDC = 1.0886 SUI，因此即使 DCA 订单设置为立即开始，由于价格超出设定区间，它也不会开始执行交易。

## 自定义接收地址

指定自定义接收地址后，买入的资产会发送到与创建 DCA 订单不同的另一个地址。如有需要，这可以为您的资产组合管理增加一层自动化。例如，用户可以用交易账户的资金买入资产，再把它发送到投资账户；或者在止盈时，把买入的资产直接发送到 CEX 账户。


# 费用

在 Aftermath 上使用 DCA 完全免费。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-230c3b75cb3872e5961a7730acd244726951aa21%2FScreenshot%202024-09-27%20at%204.04.46%20PM.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>


# 合约

{% tabs %}
{% tab title="主网" %}

<table><thead><tr><th width="287">名称</th><th width="110.33333333333334">类型</th><th>地址</th></tr></thead><tbody><tr><td>AftermathDollarCostAveraging</td><td>package</td><td>0x002134246a32eec18e68f1f5aadb8edd34856298ae6d32c145d28f3ca46c7fd1</td></tr><tr><td>Config</td><td>object</td><td>0x1b26465e9c688e3a3d2301f26e25091bc0f91708d953dc220f5697faa8ba9bd6</td></tr><tr><td>-------------------------------------</td><td>------------</td><td>------------------------------------------</td></tr><tr><td>AftermathSharedCustodyConfig</td><td>package</td><td>0x85cfb414c8248aac148b649c9dd5e09dd266057a0b5a57c698f58dfe49917889</td></tr><tr><td>Config</td><td>object</td><td>0x19ec8a24506e3eb8d75757556c7a35ca70d2c4743acc56b1c7812e8be2d34661</td></tr><tr><td>-------------------------------------</td><td>------------</td><td>------------------------------------------</td></tr><tr><td>AftermathTreasury</td><td>package</td><td>0xde37a18084a93604696a906318038194fac9e0836cfc74b7c22907afa966ea72</td></tr><tr><td>Treasury</td><td>object</td><td>0xd27f45b27fd36d44e7fe4674ae4666022dfb1dfd14c2a41905b7fbbc240b8b32</td></tr></tbody></table>
{% endtab %}

{% tab title="测试网" %}

<table><thead><tr><th width="176.33333333333334">合约</th><th width="110">类型</th><th>地址</th></tr></thead><tbody><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# 限价单

精确设定您希望交易成交的价格

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2F8CIjTXCJSGATZzeFDANC%2FLimitOrders.mp4?alt=media&token=74a82d1f-ce84-40b5-9a7d-0d31faf16bb6>" %}

限价单允许用户指定买入或卖出某项资产的价格。例如，SUI 当前价格为 $2.50，而您想在价格跌到 $2.40 时买入 SUI，就可以用限价单实现。创建限价单只需以下几步：

1. 通过屏幕顶部的菜单栏进入 Trade->Limit Orders 页面
2. 选择要卖出的资产（如 USDC）和要买入的资产（如 SUI）
3. 输入要卖出的资产数量。限价单挂单期间这笔资金会被锁定，除非取消订单，否则无法动用。

输入卖出数量后，界面会显示当前汇率，即此刻立即兑换能收到的数量。下方标有 Custom 的字段用于输入您希望买入资产的价格。此处填写的汇率应高于下方显示的市场汇率（Market Exchange Rate）——也就是说，您设置的限价单会以更有利的价格买入资产。

点击箭头还可以切换汇率的方向。例如，比起 1 USDC = Y SUI，您更习惯用 1 SUI = X USDC 来思考，点击箭头即可切换。

4. 在 Custom 字段中输入您希望买入资产的价格，限价单就会挂在这个价位。

设定好买入价格后，还有几个可选项。第一个是止损（Stop Loss）。当价格向不利方向变动时，止损会触发您的交易。举例来说，您想以更好的价格买入 SUI，于是设置了限价单；结果 SUI 价格不跌反涨，您可能想趁它涨得更高之前先买入——止损正好能做到这一点。止损价应设置在比当前市场汇率更不利的位置。

您还可以设置限价单在一定时长内未成交则自动过期，也可以选择把买入的资产发送到与下单地址不同的另一个地址。

确认限价单各项参数后，点击 Create Order 并在钱包中批准交易。您的限价单随后会出现在 Active Limits 下，可在此查看或按需取消。订单成交或过期后，会移至 Past Limits 标签页。


# 合约

<table><thead><tr><th width="270.515625">名称</th><th width="116.18359375">类型</th><th>地址</th></tr></thead><tbody><tr><td>move-limit-order</td><td>package</td><td>0xe57ee3613b7dece546f8a2d8a53145cbab41d32b86037b94f9ebfcbcfa66885a</td></tr><tr><td>Config</td><td>object</td><td>0xb2f0f0089f4fd7dd8b94204d4988daeb1a1904d6f41cbded0451d9321f833ead</td></tr><tr><td>--------------------------------------</td><td>--------------</td><td>----------------------------------------------------</td></tr><tr><td>AftermathSharedCustodyConfig</td><td>package</td><td>0x85cfb414c8248aac148b649c9dd5e09dd266057a0b5a57c698f58dfe49917889</td></tr><tr><td>Config</td><td>object</td><td>0x19ec8a24506e3eb8d75757556c7a35ca70d2c4743acc56b1c7812e8be2d34661</td></tr><tr><td>--------------------------------------</td><td>--------------</td><td>----------------------------------------------------</td></tr><tr><td>AftermathTreasury</td><td>package</td><td>0xde37a18084a93604696a906318038194fac9e0836cfc74b7c22907afa966ea72</td></tr><tr><td>Treasury</td><td>object</td><td>0xd27f45b27fd36d44e7fe4674ae4666022dfb1dfd14c2a41905b7fbbc240b8b32</td></tr></tbody></table>


# 费用

在 Aftermath 上使用限价单完全免费。


# 概览

Sui 上的其他 AMM（自动做市商）都只支持双资产资金池，而 Aftermath 提供的恒定函数做市商（CFMM）每个池最多支持 8 种资产。这为什么重要？对于 Sui 这样的新兴生态，大部分流动性都要经由跨链桥进入。

遗憾的是，来自不同链和/或不同跨链桥的资产互不同质。也就是说，如果您从 Arbitrum 桥入一枚 ETH 之类的代币，就无法在由同种代币组成、但资产是从 Solana 桥入（或经由另一座跨链桥进入）的资金池中交易。

我们对这一问题的解法是：把这些同类代币汇集到同一个池中，采用稳定兑换不变量将它们的价值锚定在大致相同的水平，从而实现代币之间便捷、低滑点的交易。

我们的 CFMM 同样支持非相关资产，例如由 ETH、BTC、SUI、USDC 组成的资金池，或任意其他组合，相对权重完全由用户自定。除了支持池内多种代币之间的高效兑换，这类非相关资金池还可以用来构建各类资产篮子。例如，您可以创建一个蓝筹指数或 meme 币指数，每种代币占池子总量的任意比例，只要合计为 100 即可。

创建资金池完全无需许可，社区可以自由部署自己最感兴趣的资金池。


# 教程

分步操作指南：

#### [向资金池存入](/liu-dong-xing-chi/tutorials/depositing)

#### [从资金池提取](/liu-dong-xing-chi/tutorials/withdrawing)

#### [创建新资金池](/liu-dong-xing-chi/tutorials/creating-a-pool)


# 存入

在 Aftermath 上提供流动性很简单。进入 Earn -> Pools 标签页，选择想要存入的资金池。只要持有池中任意一种代币即可存入；无需集齐所有代币也能成为流动性提供者。

页面顶部有两个选项：Official（官方）和 Community（社区）。

官方资金池由 Aftermath 与合作伙伴协作创建。社区资金池则完全无需许可，任何人都可以创建。这一设计既保证了最佳的用户体验，也兼顾了去中心化。

选择一个资金池，进入其页面后，右上方会显示 Deposit 存入面板。在此输入想以流动性提供者身份添加进池中的代币数量，并预览存入结果。

这里可以看到存入资金池的各种选择。视池子而定，最多可存入 8 种代币。钱包中持有的任意代币都可以存入——无论是其中一种、几种还是全部，比例也不限。

根据资金池当前余额与各资产设定权重的对比情况，多存某种代币、少存另一种，结果可能更划算。在存入面板顶部第一个字段下方，可以看到将获得的 LP 代币名义价值；将该值与底部标为 Total 的字段对比，即可判断最优的存入比例。对多数官方资金池而言，按池中各代币的设定权重存入通常效果最佳，但操作前务必确认将获得的 LP 代币价值令您满意，尤其是大额存入时。

输入每种代币的存入数量后，点击存入按钮，会出现预览窗口：

在此可以核对将获得的 LP 代币价值，并设置允许的最大滑点。滑点是指向资金池存入代币时产生的价格影响，当存入数量相对池内总流动性较大时最为显著。例如，上图中存入代币的总价值为 $34.33，设置 1% 的滑点容忍度可确保至少收到价值 $34.06 的 LP 代币，否则存入将回滚，不会执行。

确认存入信息无误后，点击 Deposit 按钮并在钱包中批准交易，即可完成存入。LP 代币随后会到账您的钱包。也可以在 [Portfolio](/ru-men-zhi-nan/navigating-aftermath/viewing-your-portfolio) 页面和[钱包面板](/ru-men-zhi-nan/navigating-aftermath/interacting-with-your-wallet)中查看您的全部 LP 代币。

## 价格影响与最低到手数量

当存入数量相对池内总流动性较大时，价格影响可能使收到的 LP 代币价值低于存入代币的价值。存入时，全部资金转入资金池，同时铸造 LP 代币并转给用户。这里所说的差额并不意味着存入的资金消失了——它们与池内其他资产一起参与交易。差额指的是存入金额与返还 LP 数量之间的差距。

那么下一个问题来了：资金池如何决定一笔存入应返还多少 LP？最简单（也对存入者最有利）的存入方式，是完全匹配池内余额分布。如果一笔存入使每种余额各增加 10%（例如池中原有 100 USDC 和 110 USDT，则 10% 的存入是 10 USDC 加 11 USDT），那么铸造的 LP 数量就等于存入时全部存量 LP 的 10%（若流通中有 105 LP，则 10% 的存入获得 10.5 LP）。

如果用户不想按余额比例组合存入，而是只存单一币种，资金池就需要通过计算来确定这笔存入值多少 LP。它会在内部将存入金额换算成其他各币种，使结果符合按余额匹配的资金分布，然后按上述比例规则完成存入。

举例说明这一机制。假设一个稳定池流通 105 LP，池内有 100 USDC 和 110 USDT（USDT/USDC = 1.1），我们想存入 $50。要让获得的 LP 最大化，应存入 23.81 USDC 和 26.19 USDT（USDT/USDC 同样为 1.1）。这笔存入总额为 $50（23.81 + 26.19 = 50），且相当于池内每种资产的 23.81%（100 的 23.81% 是 23.81，110 的 23.81% 是 26.19）。因此我们获得流通量（105 LP）的 23.81%，即 25 LP。

如果改为用单一币种存入全部 50，获得的 LP 会更少。若全部以 USDC 存入 50，资金池会将其换算成可按全资产比例存入的数量。此时它从我们的 50 中取出 21.59 USDC，兑换成 20.83 USDT（注意这么大一笔交易中价格影响开始起作用），池内余额随之变为 121.59（100 + 21.59）和 89.17（110 − 20.83）。剩余的 28.41 USDC（50 − 21.59）和这 20.83 USDT 各占对应池内余额的 23.37%（28.41 是 121.59 的 23.37%，20.83 是 89.17 的 23.37%），因此这笔存入获得总 LP 的 23.31%，即 24.53 LP（105 的 23.31%）。可以看到，这少于直接按全资产比例存入所能获得的 25 LP。

反过来算一遍：假设改为存入 50 USDT、不存 USDC。资金池会将 20.37 USDT 兑换成 18.52 USDC（由于 USDT 本就更充裕，价格影响更严重），池内余额变为 81.48 USDC 和 130.37 USDT。换来的 18.52 USDC 和剩余的 29.63 USDT 各占对应池内余额的 22.72%，因此我们获得总 LP 的 22.72%，即 23.86 LP——三种情形中最少的。

大额存入之前，务必在存入预览窗口中核对 Total Deposit（存入总额）和 Minimum to Receive（最低到手数量），确认可以接受。若不理想，最好按等值数量存入多种代币。


# 提取

如果想提取某个 LP 仓位，进入对应资金池并点击 Withdraw 按钮即可。也可以通过 [Portfolio](/ru-men-zhi-nan/navigating-aftermath/viewing-your-portfolio) 快速查看您提供过流动性的所有资金池。请注意，如果 LP 代币已质押进农场，它们不在您的钱包中，因此不会出现在 Portfolio 的 Pools 标签下；您可以在 Portfolio 的 Farms 标签下查看全部农场仓位。若要提取目前质押在农场中的流动性，请先从农场解除质押，再按本文说明从资金池提取。

进入想要提取的资金池后，点击页面右上方的 Withdraw 按钮，会弹出如下窗口：

您持有的 LP 代币总量显示在页面顶部第一个字段上方。可以直接输入想从池中取出的 LP 代币数量，或使用快捷按钮选择数量。点击 Withdraw 后会出现预览窗口：

提取时，各代币将按其价值相对于所提取 LP 代币数量的比例等权分配。这是一项安全设计，确保即使在剧烈波动时期，Aftermath 资金池对流动性提供者依然安全。


# 创建流动性池

任何人都可以在 Aftermath 上以无需许可的方式创建自己的资金池。

要创建资金池，请进入 Pools 标签页。

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2Fj3RB6naVsy8TKe1Aa93r%2FScreen%20Recording%202025-05-14%20at%205.56.07%E2%80%AFAM_1.mp4?alt=media&token=a05112c3-5dea-4ff4-93db-4a207686bed7>" %}
无需许可创建资金池教程
{% endembed %}

页面右上方有一个 Create Pool 按钮。点击它，即可进入在 Aftermath 上开设新资金池的页面。

点击 Create Pool 后会打开新页面，提示您设置资金池参数。第一步是选择资金池类型：

资金池的不变量（曲线）有两种可选：Uncorrelated（非相关）和 Stable（稳定）。非相关适用于价格相互波动的资产，例如由 SUI、USDC 和 BTC 组成的池。稳定不变量适用于同类资产，例如各种锚定美元的稳定币、不同版本的质押 SUI 等。请注意，相关性资金池中各资产的权重必须相等；非相关资金池的相对权重则由创建者任意设定。选好资金池类型后，点击 Next。

第二页需要设置资金池的各项属性，逐一说明如下：

**资金池名称（Pool Name）**：显示在 Pools 页面上、供 Aftermath 应用用户看到的名称。

**交易费（Trade Fee）**：向交易者收取并归流动性提供者所有的费用。通常非相关池为 0.3%，稳定池为 0.05%，但您可以任意设定。

**LP 代币名称（LP Coin Name）**：LP 代币在钱包和各应用中显示的名称。

**LP 代币符号（LP Coin Symbol）**：LP 代币在链上存储的名称。

## DAO 费

用户还可以选择为资金池添加 DAO 费。这是对池内所有交易、存入和提取额外收取的费用，归集后发送到指定地址。这些费用可用于组织的开发、维护、营销和激励。

设置好第二页的全部参数后，点击 Next。

## 代币与初始存入

指定名称、费用、符号和曲线类型后，接下来选择池内代币的数量和相对权重。默认是两种代币，点击 Add Coin 按钮可以添加更多。请注意，只能添加您钱包中持有的代币，因为每种代币都必须提供初始存入。

通过下拉菜单从列表中选择代币，输入想存入池中的数量，再选择该代币相对于整个池子的目标权重。权重可以是 1% 到 99% 之间的任意值，只要所有代币的合计为 100%。

初始存入和所有代币的相对权重设置完毕后，Create Pool 按钮会亮起，即可继续。若字段填写有误，将无法创建资金池。可以在右侧窗口中核对已设参数，也可以点击 Previous 按钮返回其他页面调整。

## **销毁 LP 代币**

资金池创建者可以选择在创建时销毁初始流动性对应的 LP 代币。这些 LP 代币会被发送到一个无法访问的地址，永远无法找回。也就是说，用于初始注入资金池的全部流动性将永久锁定在池中。

这 *仅* 适用于池内各代币的初始存入部分。资金池创建之后添加的任何流动性，都会照常获得 LP 代币。

创建资金池完全无需许可，也不收取任何费用。最多 8 种资产、权重任意组合，新池的玩法可以非常有创意，祝您玩得开心！


# 费用

流动性提供者在 Aftermath 上向资金池存入或提取代币均不收取任何费用。相反，他们赚取的是交易者支付的费用——交易者利用池内流动性将一种代币兑换为另一种。

每个资金池收取的交易费在创建时确定。Aftermath 官方资金池的交易费为：非相关池向交易者收取 0.3%，稳定池收取 0.1%。

社区资金池的费用各不相同，由池子创建者自行设定。每个资金池的页面都会列出其交易费，成为 LP 之前即可查看。

除各资金池的交易费外，Aftermath 还收取 0.005% 的协议费，由通过资金池兑换代币的交易者支付。流动性提供者不承担任何费用。


# 合约

{% tabs %}
{% tab title="主网" %}

<table><thead><tr><th width="176">Contract</th><th width="110.33333333333334">Type</th><th>Address</th></tr></thead><tbody><tr><td>amm</td><td>package</td><td>0xefe170ec0be4d762196bedecd7a065816576198a6527c99282a2551aaa7da38c</td></tr><tr><td>ammInterface</td><td>package</td><td>0x0625dc2cd40aee3998a1d6620de8892964c15066e0a285d8b573910ed4c75d50</td></tr><tr><td>events</td><td>package</td><td>0xefe170ec0be4d762196bedecd7a065816576198a6527c99282a2551aaa7da38c</td></tr><tr><td>poolRegistry</td><td>object</td><td>0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae</td></tr><tr><td>protocolFeeVault</td><td>object</td><td>0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4</td></tr><tr><td>treasury</td><td>object</td><td>0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce</td></tr><tr><td>insuranceFund</td><td>object</td><td>0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b</td></tr><tr><td>lpCoinsTable</td><td>object</td><td>0x7f3bb65251feccacc7f48461239be1008233b85594114f7bf304e5e5b340bf59</td></tr></tbody></table>
{% endtab %}

{% tab title="测试网" %}

<table><thead><tr><th width="176.33333333333334">Contract</th><th width="110">Type</th><th>Address</th></tr></thead><tbody><tr><td>amm</td><td>package</td><td>0x538a63ce76fde26c90874ab1e7640b07a5422e03dad1011628debf3f0fb26a56</td></tr><tr><td>ammInterface</td><td>package</td><td>0xbe2b471e0a4867cd002a7ac5358c82458bf70a42184af12b0a013abe032aa346</td></tr><tr><td>events</td><td>package</td><td>0x538a63ce76fde26c90874ab1e7640b07a5422e03dad1011628debf3f0fb26a56</td></tr><tr><td>poolRegistry</td><td>object</td><td>0x06dc43d8660aa74f24bdee67739e4627726fe8077aa95aa993d987367efe16cc</td></tr><tr><td>protocolFeeVault</td><td>object</td><td>0x1a15b189c6ef99e8cacc4ef7535f5edb54a68e13995bd78bb20e17b2f8fab1b7</td></tr><tr><td>treasury</td><td>object</td><td>0xcaac321cf5c889dc94957d29a1e99454f7d511e30c50dbb4fd7ab54890f40d32</td></tr><tr><td>insuranceFund</td><td>object</td><td>0x0e7798f626fa5a7a2b1f488a1334ef9310c478cf78074bce6aeb4518f9d78ccd</td></tr><tr><td>lpCoinsTable</td><td>object</td><td>0xf036195cbdc63d557d762cc4ae922ade86de4be7bbdabffc0c64b0fd25ba16b0</td></tr></tbody></table>
{% endtab %}
{% endtabs %}


# 概览

Afterburner 金库（也称农场，Farms）通过分发代币奖励，激励在 Aftermath 上为资金池提供流动性的用户。符合激励条件的资金池会带有横幅标识，可在 Pools 和 Farms 页面顶部看到。

官方农场目前发放 SUI、afSUI、NS 和 mPOINTS，用户创建的社区农场则发放种类多样的代币。

代币发放的分配每分钟计算一次，每位流动性提供者按其在农场中质押的流动性占农场质押总流动性的比例，赚取相应份额的奖励。

要质押进 Afterburner 金库，首先需要向符合条件的资金池之一提供流动性。具体操作请参阅[向资金池存入](/liu-dong-xing-chi/tutorials/depositing)的文档。请注意，部分社区农场支持质押单一代币，可直接存入农场。


# 教程

分步操作指南：

#### [质押进农场](/nong-chang/tutorials/staking-into-a-farm)

#### [领取奖励](/nong-chang/tutorials/claiming-rewards)

#### [从农场解除质押](/nong-chang/tutorials/unstaking)


# 质押到农场

将 LP 代币质押进农场以获取激励，操作十分简单。首先进入 Earn 标签页，点击 Farms，即可查看通过 Afterburner 金库获得激励的资金池完整列表。

进入某个持有对应 LP 代币余额的农场后，可以查看该农场的各项指标，包括 TVL（总锁仓价值）、APR（年化收益率）、最长锁定期限，以及该农场在区块浏览器上的链接。

锁定期限让用户可以通过将流动性锁定一段特定时间来赚取更高的 APR。锁定并非强制，但如果您能接受某个锁定期限，就有机会赚取更多奖励。

在页面右侧，可以填写想要质押的 LP 代币数量，并按需设置锁定期限。新奖励每两周存入一次，锁定期限不能超过距下次补充奖励剩余的天数。在锁定期限字段中输入数字，即可查看锁定带来的 APR 提升。确认 LP 代币数量和锁定期限后，点击 Stake。

此时即可看到您的活跃质押仓位。也可以在钱包中通过 Portfolio->Earn->Farms 查看质押仓位。关于如何通过钱包查看农场仓位，请参阅[与钱包交互](/ru-men-zhi-nan/navigating-aftermath/interacting-with-your-wallet)。

## 自动续锁

当您质押仓位并选择锁定乘数后，锁定期结束时仓位会自动续锁。此时您将继续享受锁定乘数，同时也可以随时解除质押并提取。

Aftermath 在任何时候都无法控制您的仓位。作为仓位所有者，只有您本人能够与其交互。您无需回到 Aftermath 手动续锁，系统会自动完成；但领取奖励、追加质押或延长锁定，只能由您本人操作。

如有任何疑问，欢迎在 Discord [联系我们](https://discord.com/invite/KvVCAauXk5)，我们会全程协助您。


# 领取奖励

质押进 Afterburner 金库后，即可查看仓位状态并执行各种操作。如果您在多个农场中都有质押，可以进入 Portfolio 标签页并选择 Farms 子标签，一览所有农场仓位并跳转到对应页面。详情请参阅文档的[查看您的投资组合：农场](/ru-men-zhi-nan/navigating-aftermath/viewing-your-portfolio)一节。

进入您已质押的 Afterburner 金库页面后，可以看到几项可执行的操作：**Add（追加）**、**Unstake（解除质押）**、\*\*Relock（续锁）\*\*和 **Claim Rewards（领取奖励）**。

**Add** 用于增加投入该农场的 LP 代币数量。选择该操作后，可在确认执行前预览它对仓位的影响。

**Relock** 用于将已质押的 LP 代币锁定更长时间，从而赚取额外奖励。选择该操作后，可在执行交易前预览仓位的变化，包括新的 APR 锁定加成和新的总 APR。

**Claim Rewards** 用于将所有已归属的奖励领取到钱包。领取后即可自由支配这些奖励。

在任意时点，农场仓位显示的都是该时刻的准确累计奖励。但在奖励真正落袋之前，显示值应视为累计奖励的估算。也就是说，领取奖励越频繁，实际领到的奖励与页面显示就越接近。

我们的金库利用了 Sui 原生的所有权语义。当您将资产（例如我们的 afSUI/SUI LP）质押进金库时，会创建一个包装所质押代币的仓位。金库无法与您的 StakedPosition 交互——它只属于您一个人——包括向您的仓位分发奖励。因此，只有在您签署与仓位交互的交易后，仓位的奖励才会在链上更新。我们的设计是：您能执行的任何操作都会同步更新仓位的累计奖励，而不仅限于领取奖励这一操作。

作为该仓位的所有者，只有您能发起与之交互的交易。归根结底，金库对您质押的资金什么都做不了，因为它根本无法访问这些资金。

就是这么简单！如有任何疑问，欢迎在 [Discord](https://discord.com/invite/VFqMUqKHF3) 联系 Aftermath 团队，我们乐意为您解答。


# 解除质押

要从农场解除质押，请进入该农场页面，即可查看仓位及可执行的操作。如果您有多个农场仓位，可以通过 Portfolio 统一查看。详情请参阅文档的[查看您的投资组合：农场](/ru-men-zhi-nan/navigating-aftermath/viewing-your-portfolio)一节。

进入您已质押的 Afterburner 金库页面后，会在农场仓位面板中看到 Unstake 按钮。

**Unstake** 用于将流动性从 Afterburner 金库中取出，之后还可以从底层资金池中提取流动性。该选项在 LP 代币的锁定期结束后可用，锁定状态显示在 Status 栏下方。

解除质押时会同时领取所有尚未领取的待发奖励，确保仓位完全结清，LP 代币和全部奖励都转入您的钱包。


# 创建农场

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2FQpyIxfAnttzNxbggen5g%2FCreateFarm2.mp4?alt=media&token=244366d1-a297-4a40-a0c7-bbeaa5a13e1a>" %}

农场创建无需许可，任何人都可以在 Aftermath 上搭建自己的农场，通过代币发放回馈社区。按照以下简单步骤即可开始：

首先，您需要在 Aftermath 上拥有一个想为其创建农场的流动性资金池。如果尚未创建资金池，请按照[创建资金池](/liu-dong-xing-chi/tutorials/creating-a-pool)中的说明操作。如果您想为单个代币（而非资金池）创建农场，可以跳过这一步。

资金池就绪后，进入 Farms 页面。在屏幕右上方、所有活跃农场列表的上方，会看到 + Create Farm 按钮。点击即可开始。

第一步是为资金池指定质押币种类型（Stake Coin Type）。这是用户将质押进农场的代币，通常是您所创建资金池的 LP 代币。可以从钱包中复制币种类型：通过屏幕顶部的菜单栏打开钱包，向下滚动到 Unrecognized Coins，点击目标 LP 代币下方地址旁的剪贴板图标，再将地址粘贴到 Stake Coin Type 字段中。

粘贴代币地址后，质押币种会显示在屏幕底部，可据此确认无误。

创建农场前，还需要设置几个参数：

**最低质押数量（Minimum Stake Amount）**：用户可质押进农场的最小代币数量。建议设为 1，也可以根据您的 LP 代币选择更合适的值。

**最大锁定乘数（Maximum Lock Multiplier，1-18）**：您可以为将代币锁定一段特定时间的 LP 提供更高的奖励发放速率，以此回馈愿意长期为资金池提供流动性的用户，但这是可选项。如果不想开放农场仓位锁定，将该值设为 1。

如果想开放锁定以换取更高奖励速率，请确定乘数的大小。您填入的值即为用户按您允许的最长时间锁定时所获得的乘数。

例如，若将最大锁定乘数设为 2、最长锁定期限设为 1 个月，则锁定 1 个月的用户获得的奖励速率是完全不锁定用户的两倍；锁定 2 周的用户获得的奖励速率是完全不锁定用户的 1.5 倍。发放速率从不锁定到最长锁定之间线性递增。

**最短锁定期限（Minimum Lock Duration）**：用户可锁定的最短时间。建议设为 0 个月 0 天，让锁定对用户完全可选。如果要求每位存入农场的用户都必须锁定一段时间，可在此指定该最短期限。

**最长锁定期限（Maximum Lock Duration）**：用户可锁定的最长时间。按此期限锁定将获得最大锁定乘数，即最高的奖励发放速率。如果完全不想开放锁定，将这些字段设为 0。

各项参数设置妥当后，点击 Create Farm 即可部署农场。

农场创建完成后，会自动跳转到农场页面，您可以在此访问农场的用户视图（User View）和所有者设置（Owner Settings）。也可以从 Aftermath 的 Farms 页面进入：在 Official 和 Community 标签旁会新增一个 Owned 标签，列出您创建的所有农场。点击您的农场即可进入对应页面。

页面右上方有两个标签：User View 和 Owner Settings。选择 Owner Settings 来管理您的农场。请注意，必须使用创建该农场的 Sui 地址连接 Aftermath 才能访问 Owner Settings；不过 Admin Cap 也可以共享，后文会介绍。

要让农场开始发放奖励，必须先初始化并存入奖励。

**奖励初始存入（Reward Initial Deposit）**：要让农场开始发放奖励，必须先初始化奖励（Initialize Rewards）。在此指定希望农场作为奖励发放的代币，例如 SUI 或您项目自己的代币。通过 Select Coin 下拉菜单选择要发放的代币。农场可以发放多种代币，逐一初始化即可。

**总发放时长（Total Emission Duration）**：全部已存入奖励发放完毕所需的时间。若希望农场持续发放代币，可以随时追加奖励。

**发放频率（Emission Frequency，Ms）**：指定奖励代币后，需要设置农场的发放频率。发放数量按比例分配给所有质押者。假设有两位质押者，一位按最长期限锁定获得 2 倍乘数，另一位未锁定，那么前者获得的发放代币是后者的 2 倍。

要确定合适的发放频率，需要考虑预计质押进农场的流动性规模，以及您期望的 APR（年化收益率）。请注意，发放速率只能上调，不能下调。如果拿不准，可以先设低一些，等 APR 低于预期时再上调。对这一步有疑问的话，欢迎在 Discord 联系我们，团队成员会协助您。

**启动延迟（Start Delay，Ms）**：可以将发放的开始时间推迟一段时间。如果您想先把农场搭建好、再在社交媒体上公布，这个选项很有用，可以避免农场在您希望用户开始赚取奖励之前被人发现。

参数确认无误后，点击 Initialize Rewards。接着点击 Deposit Rewards 标签，将奖励代币存入金库。

现在可以将一种或多种奖励代币存入农场。已初始化的每种代币都会列出；若要添加其他代币，按前述步骤再初始化一种奖励代币即可。

要确定存入农场的奖励代币数量，请结合发放速率，以及您希望农场在下次补充奖励之前运行多长时间。

确定存入数量后，点击 Deposit Rewards 将代币存入金库。

初始化奖励后，即可在 Owner Settings 中看到奖励信息，包括剩余待发放的数量，以及已发放但尚未被领取的数量。

随着农场的总锁仓价值（TVL）上升，每位用户获得的 APR 会下降。为了持续激励资金池增长，您可能需要上调发放速率。操作方法：进入 Increase Emissions 标签，输入想为农场设置的新发放速率。请注意，发放速率无法下调。

最后，可以将 Admin Cap 共享给另一个 Sui 地址，让其他人也能访问金库的管理设置。这会向对方地址授予一个 `OneTimeAdminCap`，即一次性能力对象，用于执行某项需要权限的功能（例如追加奖励或调整发放速率）。这适用于给团队其他成员授权，或在合作中让另一支团队用自己的代币赞助您的农场。只需粘贴对方的 Sui 地址，点击 Grant Admin Cap 即可授权。

就是这么简单！以上任何步骤我们都乐意协助，如有疑问，欢迎在 Discord 联系我们。


# 架构

## 架构与用法

Afterburner 金库本质上是一个按质押数量比例发放奖励的农场金库。该产品有两个版本：Strict（严格）和 Relaxed（宽松），两者的区别见下文说明。

相关功能封装在 afterburner\_vaults 包中，分布于两个子包：**vault**（金库）和 **staked position**（质押仓位）。


# 金库

## Vault 包

该包提供操作金库的接口。主要入口是 AfterburnerVault 结构体——用户可将类型为 `Coin<STAKE>` 的代币质押进该金库。金库可添加任意数量的奖励，并按每种奖励各自的发放计划向质押者发放。用户进入金库时可以锁定仓位以获得额外奖励。在 Strict 实现下，奖励可随时领取；在 Relaxed 实现下，则需等锁定期结束后才能领取。

## Strict 与 Relaxed 实现对比

Afterburner 金库允许用户锁定仓位，借助乘数获得更多奖励。但在瞬息万变的 DeFi 环境中，锁定的常见弊端是：市场上可能出现回报更高的资金去处，而资产被锁定的用户只能错过。

为解决这一问题，我们提出了金库的 Relaxed 变体——允许用户在锁定期结束前解锁仓位的实现。在这种情况下，用户只能获得仓位实际处于锁定状态期间的额外奖励。

与之相对，Afterburner 金库也提供 Strict 版本——用户只有在锁定期结束后才能解锁并提取仓位的实现。

\~\~\~\~\~\~\~

Strict 实现下，用户可随时领取奖励。

Relaxed 实现下，用户只有在仓位解锁后才能领取奖励。

\~\~\~\~\~\~\~

## 创建金库

方法 new\<STAKE> 负责创建金库。它会创建一个不含任何发放计划的新金库。参数之一是 lock\_enforcement，用于选择创建 Strict（lock\_enforcement = 0）或 Relaxed（lock\_enforcement = 1）金库。金库创建后，必须执行 share\_vault\<stake> 函数将其共享。

金库要正常运作，需要由金库所有者初始化奖励发放。调用 initialize\_reward\<STAKE, REWARD> 方法即可完成，该方法可设置发放计划、发放速率和发放延迟。

\~\~\~\~\~\~\~\~

发放计划（Emission schedule）——相邻两次发放事件之间的时间间隔，以毫秒计。

发放速率（Emission rate）——每次发放事件发放的代币数量。

发放延迟（Emission delay）——发放开始前的等待时间。

\~\~\~\~\~\~\~\~

## 追加与上调奖励

所有者可以使用 add\_reward\<STAKE, REWARD> 方法向金库追加奖励，或使用 increase\_emissions\_for\<STAKE, REWARD> 函数上调奖励发放速率。


# 质押仓位

## Staked position 包

该包提供操作质押仓位的接口。主要入口是 StakedPosition 结构体。

## 开立仓位

用户可使用 stake 函数开立仓位。开立时需以毫秒为单位指定锁定期限，且锁定期限必须在 Afterburner 金库配置所设的范围之内。

锁定的仓位将按所配置的 Afterburner 金库乘数获得额外奖励。

## 收取奖励

奖励收取分三个阶段：

* 用户先调用 begin\_harvest\<STAKE> 函数；
* 针对每种奖励，用户调用 harvest\_rewards\<STAKE, REWARD> 函数，以获取按类型 \`Coin\<REWARD>\` 累计的奖励；
* 最后调用 end\_harvest 函数完成流程，该函数会发出相应事件。

Strict 实现下，用户可随时领取奖励。

Relaxed 实现下，用户只有在仓位解锁后才能领取奖励。

## 追加质押

用户可随时使用 deposit\_principal 函数增加仓位的质押数量。为锁定中的仓位追加质押后，锁定期会重新计算。

## 提取质押

用户可使用 withdraw\_principal\<STAKE> 函数提取质押本金。仓位必须处于解锁状态才能提取。

质押在 Strict Afterburner 金库中的仓位，无法在锁定期结束前解锁。

## 延长仓位锁定

用户可使用 renew\_lock 函数延长锁定期。

## 合并仓位

用户可使用 join 函数将两个仓位合并。合并后的仓位取两者中较晚的锁定开始时间和较长的锁定期限。

## 拆分仓位

用户可使用 split 函数将一个仓位一分为二。累计奖励按拆分数量占质押总量的比例在两个仓位之间分配。其余参数与原仓位保持一致。

## 关闭仓位

用户可使用 destroy 函数删除不再活跃的仓位。被销毁的仓位不得残留任何本金或奖励。


# 费用

## 费用

Afterburner 金库只是向流动性提供者分发奖励的工具，不收取任何费用。


# 常见问题

## 奖励如何计算？

每个质押仓位赚取的 APR（年化收益率）取决于三个因素：当前 Epoch（纪元）内金库中尚未被领取的奖励数量、该仓位相对于金库中 LP 代币质押总量的规模，以及因锁定一定期限而应用于该仓位的奖励乘数。

每个农场金库发放速率的计算方式如下：

```typescript
 const emissionRateUsd =
            Coin.balanceWithDecimals(rewardCoin.emissionRate, decimals) * price;

        dayjs.extend(duration);
        const oneYearMs = dayjs.duration(1, "year").asMilliseconds();
        const rewardsUsdOneYear =
            emissionRateUsd * (oneYearMs / rewardCoin.emissionSchedulesMs);

        const apy = rewardsUsdOneYear / tvlUsd;
```

每个用户仓位赚取的奖励，则按该仓位相对于金库 LP 代币质押总量的比例，从金库总发放量中划分。请注意，应用了锁定乘数的仓位，累计奖励会按比例相应增加。

每个仓位的通用 APR 计算如下：

```typescript
dayjs.extend(duration);
const oneYearMs = dayjs.duration(1, "year").asMilliseconds();
const timeSinceLastHarvestMs =
  dayjs().valueOf() - this.trueLastHarvestRewardsTimestamp;

const rewardsUsdOneYear =
  timeSinceLastHarvestMs > 0
    ? rewardsUsd * (oneYearMs / timeSinceLastHarvestMs)
    : 0;

const apr = stakeUsd > 0 ? rewardsUsdOneYear / stakeUsd : 0;
return apr < 0 ? 0 : apr;
```

在任意时点，我们的前端显示的都是该时刻的准确累计奖励。但在奖励真正落袋之前，显示值应视为累计奖励的估算。也就是说，领取奖励越频繁，实际领到的奖励与前端显示就越接近。

我们的金库利用了 Sui 原生的所有权语义。当您将资产（例如我们的 afSUI/SUI LP）质押进金库时，会创建一个包装所质押代币的仓位。作为该仓位的所有者，只有您能发起与之交互的交易。归根结底，金库对您质押的资金什么都做不了，因为它根本无法访问这些资金。

金库无法与您的 StakedPosition 交互——它只属于您一个人——包括向您的仓位分发奖励。因此，只有在您签署与仓位交互的交易后，仓位的奖励才会在链上更新。我们的设计是：您能执行的任何操作都会同步更新仓位的累计奖励，而不仅限于领取奖励这一操作。

## 为什么无法锁定？

金库的设计不允许用户将仓位锁定至当前 Epoch 结束之后，因为奖励在每个 Epoch 内全部分发完毕。如果您无法锁定仓位，说明当前 Epoch 即将结束。目前每两周的周日切换一次。每当新 Epoch 开始，Aftermath 都会在 Twitter 上公布本期时长和将分发的激励数量。如果无法锁定，请关注我们的 Twitter，等公告发布后再试。

## 可以自动复投奖励或自动续锁吗？

锁定到期后，仓位会自动续锁，直到您再次与其交互。也就是说，您将继续享受锁定乘数，无需在到期时手动续锁。如果仓位已自动续锁而您想从农场解除质押，随时可以操作；但从原锁定到期那一刻起的锁定乘数将被放弃，只能获得基础奖励。如果想保持锁定并继续享受锁定乘数，通过领取奖励或手动续锁即可。

顺带一提，您质押的 LP 代币保存在您的质押仓位之内，未经您签署，Aftermath 或任何其他合约都无法与之交互。这是 Sui 众多优势中一项极佳的特性！这也是奖励无法自动复投、必须手动操作的原因。

## 农场发放持续多久？

目前发放以两周为一个 Epoch，每周日上一期结束、下一期开始。

## 如何得知 Afterburner 金库何时补充新奖励？

每当新 Epoch 开始，Aftermath 都会在 Twitter 上公布本期时长和将分发的激励数量。

## 如何质押/解除质押/领取奖励？

请参阅文档的[质押进农场](/nong-chang/tutorials/staking-into-a-farm)、[领取奖励](/nong-chang/tutorials/claiming-rewards)和[解除质押](/nong-chang/tutorials/unstaking)各节，了解每项操作的具体步骤。

## 如何跟踪我的所有农场仓位？

请参阅文档的[查看您的投资组合：农场](/ru-men-zhi-nan/navigating-aftermath/viewing-your-portfolio)一节，了解如何通过 Portfolio 监控您的所有农场仓位。


# 概览

通过 afSUI，让已质押的 SUI 代币在 DeFi 中继续发挥作用

与其他委托权益证明（DPoS）网络相比，在 Sui 网络上质押 SUI 代币的方式颇为新颖。在 Sui 上质押时，您可以将代币委托给任意验证者，且 SUI 代币始终锁定在您自己的钱包中，而非智能合约里。

不过，尽管 SUI 代币的托管权仍在您手中，质押期间它们无法用于任何其他用途。为了让已质押的 SUI 代币在赚取收益的同时还能用于 DeFi，Aftermath 开发了 afSUI。

起初，在 Sui 上无法构建完全去中心化的流动性质押衍生品。为了打造一个既无妥协、也不含中心化组件的 LSD，Aftermath 起草了 [`SIP-6`](https://github.com/sui-foundation/sips/blob/main/sips/sip-6.md)——一项对 Sui 框架的更新，并已由社区通过实施。

我们始终尽可能坚守去中心化的核心原则。因此，通过 Aftermath 质押 SUI 时，用户仍可自由选择将代币委托给哪个验证者。Aftermath 既不依赖算法来挑选委托对象，也不会委托给我们自己的验证者。afSUI 的收益由所有验证者上为 afSUI 质押的全部 SUI 代币共同决定，从而确保每一枚 afSUI 都完全同质、可互换。

Sui 网络以 24 小时为一个 Epoch（纪元）运行。用户将 SUI 质押为 afSUI 时，会按该 Epoch 的 afSUI/SUI 当前汇率收到 afSUI。随着 Epoch 不断推进，质押奖励持续复投，afSUI 兑 SUI 的汇率也随之上升。这保证了解除质押时，用户既能拿回最初质押的 SUI 本金，也能获得质押期间累积的全部奖励。除了解除质押本身，用户无需任何额外操作即可领取奖励。

Aftermath 将 afSUI 设计得与 SUI 代币本身一样同质、可组合，同时还能赚取质押收益。这意味着 afSUI 可以用作抵押品、存入流动性池、兑换为其他代币，或跨链桥接到其他区块链。


# 教程

分步操作指南：

#### [质押](/liu-dong-xing-zhi-ya-afsui/tutorials/staking)：用 SUI 换取 afSUi

#### [解除质押](/liu-dong-xing-zhi-ya-afsui/tutorials/unstaking)：将 afSUI 赎回为 SUI


# 质押

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmeKfXaQnIP3bbI1AdlVX%2Fuploads%2FU3Q7OonK7EwXgHtcecsG%2FStakewithAnyone.mp4?alt=media&token=e5cecfd9-336c-4313-be2a-4b9e64d27f0a>" %}

要质押 SUI 代币并铸造 afSUI，请先打开我们的[质押页面](https://aftermath.finance/stake)。您的钱包中需要有 SUI 代币。页面顶部展示了 APY（年化收益率）和 TVL（总锁仓价值）等指标。TVL 是当前为 afSUI 流动性质押的 SUI 代币总量；APY 是 afSUI 提供的年化收益率。

在指标与 Stake、Unstake 按钮下方，有一个验证者选择下拉菜单。您可以在此浏览活跃验证者集合中的全部验证者，并选择要将 SUI 代币委托给谁。每次质押操作只能选择一个验证者，但您可以分多次质押，将总额分配给多个验证者。关于如何选择验证者，请参阅 FAQ 章节，或查看质押页面 Stake 按钮下方的说明。

验证者选择下拉菜单中会显示 Staking APY（质押年化收益率）和 Stake Fee（质押费）等指标。Staking APY 是根据该验证者的历史表现估算的年化收益率。请注意，由于 afSUI 完全同质，所有 afSUI 获得的 APY 相同；但用户各自选择表现更好的验证者，会整体拉高 afSUI 的 APY。Stake Fee 是验证者可自行设置的可选费用，默认为零。若验证者启用了 Stake Fee，该费用会在质押时从质押的 SUI 本金中扣除。例如，验证者设置了 1% 的费用，用户质押 1 SUI，则验证者在质押时收取 0.01 SUI，实际质押 0.99 SUI。

选定验证者后，输入想要质押为 afSUI 的 SUI 数量，点击 Stake。afSUI 会立即铸造到您的钱包中。

就是这么简单！立即铸造 afSUI，一边自动赚取质押奖励，一边在众多 DeFi 集成中使用 afSUI！


# 解除质押

将 afSUI 赎回为 SUI 十分简单，不过根据需求和偏好的不同，可以通过多种方式完成。首先，切换到 Unstake 标签页查看可选方案。

这里有两种解除质押方式：立即解除质押（Unstake Instantly），以及在 X 小时后解除质押（Unstake in X hours），其中 X 是距离 Sui 网络当前 Epoch（纪元）结束的剩余时间。

Sui 上的质押与解除质押操作都在 Epoch 切换时生效，即每 24 小时一次。也就是说，走标准解除质押流程时，需要等到 Epoch 切换后，SUI 代币才会到账。有些用户可能不愿等这么久。

为提供更多灵活性，Aftermath 维护着一笔 SUI 代币储备，可用于即时解除质押，并收取少量费用。费用取决于用户想赎回的 afSUI 数量以及储备中剩余的 SUI 数量。储备每个 Epoch 补充一次。

两种解除质押方式的费用都会展示出来，方便用户决定是等待 Epoch 切换，还是立即取回 SUI 代币。确定方式后，输入想赎回的 afSUI 数量并点击 Unstake 即可。

还有第三种将 afSUI 换回 SUI 的途径：使用我们的智能订单路由直接兑换。Aftermath 与其他多家去中心化交易所都维护着 afSUI-SUI 流动性池来支持此类交易。视各池的存量与 Aftermath 即时解除质押储备的情况而定，这种方式有时反而更划算。打开我们的交易页面，将 afSUI 选为卖出资产、SUI 选为买入资产，即可查看当前汇率。


# 架构

Aftermath 流动性质押协议的功能完全建立在 Sui 质押框架之上。从宏观视角看，协议可以视为一个代理：持有 Sui 框架提供的非同质化质押实体（StakedSui），并发行流动性代币 afSUI。核心功能在 AftermathLSD 包中实现。


# 包与模块

## AftermathLSD 包

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-0b5b6b38f634c85bc9200541758c819796bac22d%2FScreenshot%202024-02-22%20at%2011.54.14%20AM.png?alt=media" alt=""><figcaption><p>AftermathLSD 包结构图</p></figcaption></figure>

包的功能分布在多个模块中。关键模块如下：

## staked\_sui\_vault 模块

该模块本质上是与协议交互的接口，为协议用户提供主要入口点。可使用以下功能：

1. 请求质押：用户向协议提供 SUI 代币，并按当前 Epoch（纪元）的 SUI <-> AFSUI 汇率立即收到相应数量的 AFSUI。
2. 请求解除质押：用户提供 AFSUI，换回相应数量的 SUI。有两种方式：常规解除质押，用户在下一个 Epoch 开始时收到 SUI；原子解除质押，用户立即收到 SUI。此外还可以对 StakedSui 对象进行再质押。
3. Epoch 切换处理：Sui 质押框架的工作流与 Epoch 切换处理紧密耦合。在每两个 Epoch 之间，Sui 框架会执行若干操作，其中最重要的是收集奖励和激活质押。为了在协议中同步这些变化，需要触发一个 crank 函数。受 Sui 框架限制，该函数很可能需要触发多次。在 Epoch 切换处理完成之前，协议处于未定义状态，暂停运作。触发 crank 函数的一方会获得激励费用。为使 Epoch 切换处理顺畅，Aftermath 运行了一个机器人，监控 Sui 链上状态并及时发起 Epoch 处理。
4. 更新验证者费用：若协议已登记某验证者，该验证者会收到一个 Operation Capability 对象，可用于修改对应验证者的费用。验证者费用从每笔铸造的 AFSUI 中扣取，并直接发送到验证者地址。

<figure><img src="https://1936811439-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdKvTsNMHcoUbfcyfXgsE%2Fuploads%2Fgit-blob-0c6ad3bdb6ac626ea8ecb66b78025fcc7b4a6442%2FScreenshot%202024-02-22%20at%2011.55.57%20AM.png?alt=media" alt=""><figcaption><p>Aftermath LSD 协议 stake_sui_vault 模块结构图</p></figcaption></figure>

## actions 模块

该模块实现协议的业务逻辑，即前文 staked\_sui\_vault 模块描述中讨论的内容。

## staked\_sui\_vault\_state 模块

该模块提供 staked sui vault 的具体实现，拥有铸造和销毁 AFSUI 的权限，同时负责协议配置。其主要职责是保管全部 StakedSui 对象和 SUI 余额。StakedSui 通过一个 Storage 实体来组织。

## storage 模块

Storage 是一层抽象，用于保管 StakedSui 对象并实现解除质押逻辑。解除质押是 LSD 协议的关键环节，某种意义上决定了协议的表现。为此，Storage 维护一个按验证者表现升序排列的解除质押队列，来自非活跃和低表现验证者的质押会被优先解除。为避免瞬间抽空单个验证者，每笔解除质押会分摊到多个验证者上。

## validator 模块

该模块实现 Operation Capability 对象的逻辑。持有该对象即可修改对应验证者的费用值。

Aftermath LSD 协议还使用了以下附加包。

## Safe 包

该包提供一个名为 Safe 的模块。该实体可存放任意类型的对象，并向被授权的模块提供该对象的可变引用；同一时间只能授权一个模块。LSD 协议用它来存放 AFSUI Treasury，并向 staked sui vault state 模块提供授权访问。

## ReferralVault 包

Aftermath LSD 协议的用户可以使用推荐系统。该模块提供管理推荐人与被推荐人关系以及收取分成的逻辑。

## Treasury 包

协议会收取多种费用。Treasury 实体用于归集费用中的特定部分，供日后不同用途使用。

## Utilities 包

Aftermath 的高性能数学原语与函数集合。

## LinkedSet 包

LinkedSet 基于 Sui 框架的 LinkedTable 实现，用于实现解除质押队列。

## SuiSytemUtils 包

与 Sui System 交互的方法集合。




---

[Next Page](https://ch-docs.aftermath.finance/llms-full.txt/1)

