📖TTSWAP 技术白皮书
5493 字约 18 分钟
2025-05-20
1 概要
TTSWAP(token-token swap)是建立在支持EVM的区块链上的自动做市协议,意味着它不依赖于中心化的机构或个人来进行交易。它的核心原理是根据用户的行为,自动触发市场价值的转移,形成新的价格,从而构建了一个基于恒定价值交易的自动做市协议。
白皮书解释TTSWAP的设计逻辑,涵盖以下几个方面:
- Token交易:用户使用Token直接换取任何Token,而不需要通过其他中间Token中转。
- 价值Token投资与撤资:用户可以投资特定的价值Token,并在需要时撤回他们的投资。
- 普通Token投资与撤资:除了价值Token外,用户也可以投资普通Token,并随时撤回他们的投资。
- Token手续费的产生与分配:在交易过程中产生的手续费会按照一定的规则进行分配,以激励更多的人参与到这个协议中来。
- 代币经济协议:以维护所有代币持有者(普通用户、市场推广者、服务提供者、社区建设者等)的权益为宗旨的目标下,设计的代币分配,解锁细则,与代币持有者的权利。
总之,TTSWAP为普通用户提供了一个简单、透明、高效的加密货币交易协议,这个协议使用的是一个革新地AMM逻辑——恒定价值交易协议。旨在打造一个方便、安全、低GAS费用的协议。 同时TTSWAP社区也期望打造公平,公正,透明的去中心化社区。
2 特点
恒定价值交易协议
这个协议的核心思想是确保交易的价值在整个过程中保持恒定,这意味着无论交易何时进行,都能客观地反映出币种的市场价值,这可让Token自由、简单、快速地交易。集中流动性,直接交易
无需在多个传统币对中添加,只需要给协议中代币添加流动性,流动性能与协议中其它任何代币共享,用户直接兑换代币,避免流动性碎片化,提升了交易体验。低滑点交易
滑点是指在交易过程中由于市场价格波动导致的交易价格偏离预期的现象。在这个协议中,通过流动性增强和集中流动性,显著降低交易滑点。没有无常损失
无常损失是指流动性提供者在提供流动性时因市场波动而遭受的损失。这个交易协议通过其设计逻辑上避免了无常损失的问题,这意味着流动性提供者或者Token投资者在撤资时可以保持原有投资的价值,并且还能获得提供流动性所产生的收益。低Gas费用
Gas费用是在以太坊网络上执行智能合约时需要支付的费用。由于这个交易协议的逻辑相对简单且运算量较少,因此Gas消耗较低,用户在交易过程中可以节省大量的Gas费用,让交易更加经济高效。相比于其他交易协议,可以节省50%至90%的Gas费用。手续费按角色分配
在协议上,手续费根据参与者的不同角色进行分配,这包括商家(Token卖家)、Token投资者(流动性提供者)、门户、推荐者和普通用户。任何人都有机会参与到协议的运作中,并分享协议发展所带来的收益,从而激励更多的用户参与到协议建设中。native ETH支持
协议中支持Native ETH直接兑换成任何代币。投资证明二次TTS挖矿
当用户投资了Token后,协议会根据投资价值自动为用户进行挖矿。价格导向型代币经济模型
TTS代币采用创新的价格导向型解锁模型,通过价格翻倍解锁机制和社区盈利销毁,确保代币价值与项目发展紧密绑定。同时,通过差异化的解锁规则,激励不同角色为生态做出贡献,实现多方共赢。
3 价值守恒交易横型原理
3.1 恒定价值交易协议
商品交易前的价值=商品交易后的价值Va:表示协议中TokenAQa:表示协议中TokenAΔa:表示协议中TokenAVb:表示协议中TokenBQb:表示协议中TokenBΔb:表示协议中TokenBVz:表示协议中TokenZQz:表示协议中TokenZΔz:表示协议中TokenZ的市场价值的数量的购买量或者出售量的市场价值的数量的购买量或者出售量的市场价值的数量的购买量或者出售量
交换原因是数量与价值不匹配,通过市场手段自动匹配
3.1.1 在相同价值的情况下
Δb=Qa+ΔaQb⋅Δa
把商品b根据a的数量进行拆分,然后兑换Δa份出来
3.1.2 推导在价值不相同的情况下,兑换公式
ΔV=Qa+2ΔaVa⋅Δa
Δb=Vb+2ΔVQb⋅ΔV
3.1.3 交易后更新代币A和B的价值与数量
Token A | Token B | |
---|---|---|
价值 | Va | Vb |
数量 | Qa+Δa | Qb−Δb |
3.1.4:交易后形成新的兑换比例
- 交易完成后,新的边际价值:
Panew=Qa+ΔaVa,Pbnew=Qb−ΔbVb
- 新的兑换比例:
Ra→b=PbnewPanew
4 Token
4.1 Token介绍
关于Token的描述:协议拥有市场价值3000的15枚TokenA,那么Token就有三个基础属性:市场价值,当前数量,投资数量。如下图

- 名词解释
市场价值:用来衡量代币的市场价值,代币的市场价值在交易过程不发生变化。
当前数量:记录协议中Token的当前数量和代币产生的手续费。
投资数量:记录协议中Token的总投资数量和代币产生的手续费。
当用户认为代币的价值偏低(即市场价值/当前数量),用户会购入此代币.
当用记认为代币的价值低高(即市场价值/当前数量),用户会出售此代币.
可以如下图描述其它任何Token,例如.

4.2 Token分类
Token分类 | 说明 | 交易是否产生手续费 | 是否可以单独投资自己 | 是否可以与其它价值Token一同投资 |
---|---|---|---|---|
元Token | 协议中添加的首个Token | 是 | 是 | 否 |
价值Token | Token得到市场认可,有良好的生态及团队 | 是 | 是 | 否 |
普通Token | 个人新增Token,市场价值待确认 | 是 | 否 | 是 |
4.3 Token配置
Token配置占255位
4.3.1 市场可以调整
id | 配置项 | 位数 | 单位 | 最大值 | 最小值 | 起始位 | 结束位 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | 市场价值Token | 1 | BOOLEAN | 1 | 0 | 1 | 1 | |
2 | 预留 | 1 | BOOLEAN | 1 | 0 | 2 | 2 | |
3 | Token投资者分佣 | 3 | 十分之一 | 7 | 1 | 3 | 5 | |
4 | 代币运营者分佣 | 4 | 百分之二 | 7 | 1 | 6 | 9 | |
5 | 门户分佣 | 3 | 百分之四 | 7 | 1 | 10 | 12 | |
6 | 推荐者分佣 | 5 | 百分之一 | 31 | 1 | 13 | 17 | |
7 | 用户分佣 | 5 | 百分之一 | 31 | 1 | 18 | 22 | |
8 | 协议费率 | 5 | 百分之一 | 31 | 1 | 23 | 27 | |
9 | 最大流动性加强倍数 | 6 | 1倍 | 63 | 1 | 28 | 33 | |
... |
备注:分佣比例的和为100
4.3.2 用户可以配置
id | 配置项 | 位数 | 单位 | 最大值 | 最小值 | 起始位 | 结束位 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | 投资费率 | 6 | 万分之一 | 63 | 0 | 34 | 39 | (0~63)/10000 |
2 | 撤资费率 | 6 | 万分之一 | 63 | 0 | 40 | 45 | (0~63)/10000 |
3 | 购买费率 | 7 | 万分之一 | 127 | 0 | 46 | 52 | (0~127)/10000 |
4 | 出售费率 | 7 | 万分之一 | 127 | 0 | 53 | 59 | (0~127)/10000 |
5 | 流动性加强倍数 | 10 | 20 | 1023 | 0 | 64 | 69 | (1~1023) |
6 | 撤资切片数 | 10 | 1 | 1023 | 0 | 70 | 79 | (1~1023) |
5 Token交换
Token的交换实际上就是用户用自己手里的Tokena去交换市场上的Tokenb。当用户选择放弃Tokena时,这时就计算Tokena的市场价值,从而选择购买等市场价值的Tokenb时.

如图所示,当用户放弃Tokena时,协议中的Tokena数量增加,而Tokena的单位价值降低。
而当用户获得Tokenb时,协议中的Tokenb数量减少,而Tokenb的单位价值增加。
这就导致了相对于Token_a,Tokenb的价格上升。因此,如果再次进行交易,用相同数量的Tokena只能换取比上次少一些的Tokenb。
5.1 计算过程
5.1.1 计算Tokena对应的市场价值
价值(RV)价值(RV)价值(RV)=Qa+2ΔaVa∗Δa=20000+2250040000∗2500=4705.8
5.1.2 计算等市场价值的Token b
数量Δb数量Δb数量Δb=Vb+2RVQb∗RV=20000+24705.840000∗4705.8=8420.9
5.1.3 结果
用户花费2500个Token a获得8420.9个 Token b.收取用户1个token A 1,2个token B作为手续费.
5.2 关于合约 验证
5.2.1 验证1:公平性
用户使用 Tokena 购买 Tokenb 后,再使用购买到的Tokenb再到协议中能购买到最初数量的Tokena
参见 modified_swap_without_fee:testswapA2B2Awithoutfee测试合约地址
5.2.2 验证2:合理性
用户购买Tokenb时,分多笔订单与一次性成交的结果是一致的.
参见 modified_swap_without_fee:testswapA2B2C2Awithoutfee测试合约地址
5.2.3 验证3:连接性
用户使用a个 Tokena 购买 Tokenb,再使用获得Tokenb购买 Tokenc,再使用获得的 Tokenc购买 Tokena.最终得到 Tokena = 最初花费Tokena
参见 modified_swap_without_fee:testswapA2B_part1 testswapA2B_part1 测试合约地址
6 Token投资与撤资
6.1 记录投资和撤资
协议中Token的交易,需有用户提供流动性。就应记录Token投资总市场价值与投资总数量。

- 名词解释
投资价值:用户投资时Token的市场总价值。
投资数量:用户投资时Token的总数量。
6.2 Token投资与撤资流程

- 用户投资价值Token 用户根据当前价值Token的状态,计算投资数量对应的市场价值。方便撤资时计算收益。
- 用户撤资价值Token
用户根据投资记录,计算投资产生的收益
撤资Token时,取消数量<Token当前的总数量/撤资切片数 和 取消数量对应的市场价值<Token总价值/撤资切片数。
7.1 Token手续费记录方式
手续费=每次交易产生的手续费都会记录到代币的当前数量和投资数量中去
7.2 手续费来源

手续费(实际手续费)的来源是根据Token的费率,当用户进行操作时,计算得到。
7.3 手续费分配

协议中涉及协议技术、门户运营、推荐人、用户以及流动性提供者。协议会合理分配利润。
其中流动性提供者的手续费分配参见 7.4与7.5手续费流程
如果用户填写了推荐者。
按用户的相关角色进行实时分配。如果用户未填写推荐者。
手续费分配中用户所占比例划归于代币管理员。
手续费分配中推荐者所占比例划归于门户角色。
7.4 手续费计算流程(投资与撤资)

图1 用户投资前Token状态 净值指每一份对应的代币数量,净值=(投资总数+手续费)/总份额; 随着交易的进行,手续费不断产生,手续费总额增加,净值就增加。
图2 用户开始投资 协议根据用户投资的数量,计算应得的投资份额。 用户投资份额=(用户投资数量)/净值。
图3 随着代币不断流通,不停有手续费收益 由于手续费的不断增加,导致净值在不断上升
图4 用户撤资 用户撤资时,协议计算用户的收益与本金后,一同发放给用户.
7.6 Token福利
项目方或者卖家可以充值Token到手续费中,提升投资年化,增强投资吸引力。

8 流动性挖矿
协议中所有代币会自动进行二次挖矿,根据给代币添加流动性时的价值,折算成算力.
a. 用户把任意代币存入代币池子 b. 用户享受池子产生的手续费返佣 c. 用户享受流动性挖矿TTS代币
9 市场配置
id | 配置项 | 位数 | 单位 | 最大值 | 最小值 | 起始位 | 结束位 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | Token投资者分佣 | 6 | 百分之一 | 63 | 0 | 256 | 251 | |
2 | 商家分佣 | 6 | 百分之一 | 63 | 0 | 250 | 245 | |
3 | 门户分佣 | 6 | 百分之一 | 63 | 0 | 244 | 239 | |
4 | 推荐者分佣 | 6 | 百分之一 | 63 | 0 | 238 | 233 | |
5 | 用户分佣 | 6 | 百分之一 | 63 | 0 | 232 | 227 | |
6 | 协议费率 | 6 | 百分之一 | 63 | 0 | 226 | 221 | |
... |
10 主要代码实现(参见代码)
10.1 合约部署GAS
Deployment Cost | Deployment Size |
---|---|
5644297 | 26543 |
10.2 合约函数(部份主要函数)GAS
Function Name | first | second or more | 备注 |
---|---|---|---|
buyGood(NativeETH) | 104056 | 86942 | 购买Token |
buyGood(ERC20) | 112715 | 95615 | 购买Token |
disinvestProof | 255412 | 198512 | 撤资普通证明 |
disinvestProof | 176765 | 129300 | 撤资价值证明 |
initGood | 399488 | 初始化普通Token | |
investGood | 172331 | 114339 | 投资普通Token |
investGood | 242021 | 114414 | 投资价值Token |
collectProof | 238070 | 80158 | 获取普通投资证明收益 |
collectProof | 140453 | 103453 | 获取价值投资证明收益 |
warefare | 69462 | 52362 | 增加手续费发福利 |
当第用户第一次交易一个Token时,GAS费消耗稍微多一点,用户第二次或者后续交易这个Token时GAS消耗稍微少一点。
为促进项目更好成长,为维护项目支持者的利益,现推出以下代币方案。
11 协议中角色说明
协议中提供对于5种角色的支持,包含:代币管理员、代币流动性提供者、服务提供者、推荐者、用户、社区。
11.1 代币管理员
当用户在平台首次添加代币时,用户就成为这代币的管理员,相当于社区委托用户进行代币相关运营。享受该手续费1%-3%的分佣。非项目亲自运营的代币委托2年评估一次。
11.2 代币流动性提供者
当用户给代币提供流程动性时,自动成为代币的流动性提供者,共同享受手续费的50%-80%的分佣。计算方式参见手续费计算逻辑小节。
11.3 服务提供者
为用户的提供交易,投资等服务的服务提供商,可享受手续费的5%到25%的分佣。
11.4 推荐者
当用户推荐其它用户,就可以享受被推荐人的手续费的5%-10的分佣。
11.5 用户
当用户添加推荐人后,享受10%的手续费折扣。
11.6 社区
社区提供技术支持,可享受手续费的2%-8%的手续费分佣。
12 代币经济方案
- 代币名称为,简称。
- 初始发行()。
- 每年新增(2亿-已解锁代币数量)* 0.02给流动性提供者。
- 社区所有收益均用于在市场上购买官方代币进行销毁。禁止用于其它用途。
- 社区的建设者、运营者、支持者等代币持有者收益均来至代币价值上涨,而不是通过稀释,超发等方式获取收益。
- 关于代币的社区分配变动均需提前30天以上公示。
- 代币持有者拥有提案,和提案的投票权,参与社区的成长建设。
- 推荐关系均维护在本代币中,推荐关系一但确认,就无法修改。同时本项目后续版本均使用本推荐关系。
12.1 初始代币分配原则
- 分配时需配置解锁比例(不能高于20%)和初始价格(不能低于当前价格),当价格涨一倍,用户才可以解锁剩余部份X解锁比例。 例如分配给A用户20000枚,解锁比例为18%,分配时价格为0.05。 当价格达到0.05时才能解锁20,000*0.18枚。当价格达到0.1时才能解锁20,000*0.18*0.18枚。
- 促进建设者更聚焦于长期利益。代币价格上涨50%,创建始人解锁比例 < 合伙人解锁比例 < 价值贡献解锁比例 < 资本贡献解锁比例 <= 20%。
12.2 4C成长型社区代币治经济协议
4C成长型社区代币角色分为四类:创始人、合伙人、价值贡献、资本贡献。
12.2.1 创始人部份
创始人部份作为项目发起人提供大量的人力资本,用以开发产品、创立品牌、拓展市场、招募人才、建立管理制度,同时并承担了巨大的失败风险而享受的待遇。(初始价格为0.05,价格上涨一倍,解锁比例1/12)
12.2.2 合伙人部份
合伙人部份作为项目发起初期,在没有资源的情况下,需要充分利用自己团队的强大的执行力,去克服各种困难,一起坚持并坚信把社区做大做好做强的成员享受的待遇。
合伙人部份A类型 初始价格为成员加入时确认。代币价格上涨一倍解锁剩余比例为1/10。未解锁部份不因离开社区而销毁。
合伙人部份B类型 初始价格为成员加入时确认。代币价格上涨一部解锁剩余比例的1/8。未解锁部份会因离开社区而销毁。
12.2.3 价值贡献
社区为给社区建设的成员提供激励进行代币预分配,初始价格为分配时价格,价格上涨一部解锁比例不高于1/6,根据具体情况与相应人员进行约定与公示,已分配未解锁部份社区会根据达成效果而调整。当成员不在为社区服务时,已分配未解锁部份会被社区回收。
社区岗位部份: 岗位部份由担承社区重要职位的重要程度而决定,这部分分给社区重要职位对应负责人,重要职位对应的比例由每年初的社区确定。社区对于重要职位的合格、优秀的负责人经过社区决策后可转一定比例为合伙人部份A类型和合伙人部份B类型。
社区成员部份: 激励成员为社区一起成长而预留部分。社区对于优秀成员经过社区决策后可转一定比例为合伙人部分B类型。
其它部份: 金库、运营、活动、顾问等用途使用。
12.2.4 资本贡献
解锁比例不高于1/5
公售部份(参见公售方案): 为团队建设、产品建设、流动性建设提供资金支持。(公售部份全部为解锁状态,不进行锁定)
投资部份: 为团队精进,产品完善等提供资金支持。关于初始价格与解锁比例沟通中确定。
空投部份: 为弥补协议早期用户风险。关于初始价格与解锁比例根据具体活动方案而定。
12.3 4C成长型社区代币分配细则设计

12.4 权利
- 代币持有者拥有社区所有决定的知情权。
- 代币持有者拥有社区所有行为的监督权。
- 代币持有者拥有提案的投票权。
- 持有一定数量的代币持有者拥有提案权。
13 法律许可
13.1 说明
为了维护项目正常权利,同时也方便其它用户了解协议,对于不同文件不同开源协议。违反协议将得到法律追究。
13.2 协议说明
采用MIT协议的文件供大家自由使用
采用BUSL-1.1协议的文件才协议有效期内只能用户于学习目标,不能运用于商业用途。具体协议内容参见:
项目中LICENSE文件:https://github.com/tt-swap/ttswap-core/blob/529db0eb94ac1c5631beb03c4697222a6ce1cd79/LICENSE
如因项目在未知的情况违反其它项目开源协议,及时联系我们,我们尽快调整。
13.3 文件开源协议信息
src
├── TTSwap_Market.sol(BUSL-1.1)
├── TTSwap_Token.sol(BUSL-1.1)
├── interfaces
│ ├── I_TTSwap_Market.sol(MIT)
│ └── I_TTSwap_Token.sol(MIT)
└── libraries
├── L_Currency.sol (MIT)
├── L_Error.sol (MIT)
├── L_Good.sol(BUSL-1.1)
├── L_GoodConfig.sol(MIT)
├── L_Proof.sol(BUSL-1.1)
├── L_SignatureVerification.sol(MIT)
├── L_Transient.sol (MIT)
├── L_TTSTokenConfig.sol (MIT)
├── L_TTSwapUINT256.sol (MIT)
└── L_UserConfig.sol(MIT)
docs
├── ebook
tests
14 参与和合作联系方式
Twitter:ttswapfinance
Telegram:@ttswapfinance
Email:bussiness@ttswap.io
Discord:ttswap
Website:ttswap.io
欢迎来自各个地区的人才加入社区