ClawlettSkill clawlett

Clawlett是一个基于Base Mainnet的技能,它通过Gnosis Safe和Zodiac Roles实现自动代币交换和Trenches代币创建/交易,提供MEV保护和反诈骗保护。

DeFi 0 次安装 0 次浏览 更新于 2/24/2026

Clawlett

安全代币交换和Trenches交易在Base Mainnet上,由Safe + Zodiac Roles提供支持。

交换引擎:CoW Protocol(MEV保护的批量拍卖)。 代币创建和绑定曲线交易:Trenches(通过AgentKeyFactoryV3)。

网络:Base Mainnet(链ID:8453)

概览

这项技能通过Gnosis Safe实现自动代币交换和Trenches代币创建/交易。代理通过Zodiac Roles操作,限制操作为:

  • 通过CoW Protocol(MEV保护)交换代币
  • 在Trenches绑定曲线上创建代币
  • 在Trenches绑定曲线上买卖代币
  • 批准代币给CoW Vault Relayer
  • 通过ZodiacHelpers delegatecall预签名CoW订单
  • 通过ZodiacHelpers包装ETH到WETH和解包WETH到ETH
  • 仅将交换的代币发送回Safe(无排水)

功能

动作 自动 注释
检查余额 ETH和Base Mainnet上的任何ERC20
获取交换报价 通过CoW Protocol
交换代币 任何有流动性的一对
包装/解包ETH ETH ↔ WETH通过ZodiacHelpers
批准代币 仅限CoW Vault Relayer
创建代币(Trenches) 通过AgentKeyFactoryV3绑定曲线
购买代币(Trenches) 用ETH在绑定曲线上购买
出售代币(Trenches) 用ETH在绑定曲线上出售
代币信息 从Trenches API获取代币详情
代币发现 趋势,新,交易量最高,涨幅,跌幅
转移资金 被Roles阻止

代理名称(CNS)

每个代理都可以选择通过Clawlett名称服务(CNS)注册一个唯一名称。这个名字是代理的应用程序范围标识符——没有两个代理可以共享同一个名称。名称在Base上作为NFT铸造。

在初始化期间传递--name以注册CNS名称。如果省略,跳过CNS注册。一旦注册,无法更改。

代币安全

验证代币

受保护的代币只能解析为验证的Base Mainnet地址:

代币 验证地址
ETH 本地ETH(0x0000000000000000000000000000000000000000
WETH 0x4200000000000000000000000000000000000006
USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
USDT 0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2
DAI 0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb
USDS 0x820C137fa70C8691f0e44Dc420a5e53c168921Dc
AERO 0x940181a94A35A4569E4529A3CDfB74e38FD98631
cbBTC 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf
VIRTUAL 0x0b3e328455c4059EEb9e3f84b5543F74E24e7E1b
DEGEN 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed
BRETT 0x532f27101965dd16442E59d40670FaF5eBB142E4
TOSHI 0xAC1Bd2486aAf3B5C0fc3Fd868558b082a531B2B4
WELL 0xA88594D404727625A9437C3f886C7643872296AE
BID 0xa1832f7f4e534ae557f9b5ab76de54b1873e498b

如果诈骗代币冒充这些符号,代理将检测并警告。

未验证代币搜索

不在验证列表中的代币通过DexScreener(Base对)搜索。搜索结果包括:

  • 合约地址(链上验证)
  • 24小时交易量和流动性
  • 代币交易的DEX

代理对未验证代币的行为:

  • 始终显示带有合约地址、交易量和流动性的警告
  • 在继续交换之前要求用户确认
  • 从不默默交换未验证的代币

设置

  1. 所有者提供他们的钱包地址(和可选的代理名称
  2. 代理生成密钥对 → 所有者在Base Mainnet上向代理发送0.001 ETH以支付汽油费
  3. 代理在Base Mainnet上部署Safe(所有者作为唯一所有者)
  4. 代理在后端注册并可选地在链上铸造CNS名称(如果提供--name
  5. 代理部署具有交换权限的Zodiac Roles
  6. 代理将自己从Safe所有者中移除(保持Roles访问权限)
  7. 所有者在Base Mainnet上为Safe注资以进行交易

使用方法

初始化

用所有者0x123...初始化我的钱包...
用所有者0x123...和名称MYAGENT初始化我的钱包...

检查余额

我的余额是多少?
我有多少USDC?

交换代币

交换0.1 ETH为USDC
交换100 USDC为ETH
交换50 DAI为AERO

CoW Protocol交换是MEV保护的。ETH在需要时自动包装为WETH(CoW需要ERC20)。包装被捆绑到交换交易中。

包装/解包ETH

将0.5 ETH包装为WETH
将0.5 WETH解包为ETH

包装和解包是通过ZodiacHelpers delegatecall完成的。当通过CoW从ETH交换时,包装被自动处理为交换交易的一部分。

Trenches交易

Trenches在Base上启用代币创建和绑定曲线交易。代币是通过AgentKeyFactoryV3合约创建的,并在Uniswap V3风格的绑定曲线上交易。

所有链上操作都通过ZodiacHelpers包装函数(createViaFactory, tradeViaFactory)进行,这些函数验证工厂地址并转发带有显式ethValue的调用(因为在delegatecall中msg.value不起作用)。

创建一个名为"My Token"的代币,符号为MTK
创建一个与BID(默认基础代币)配对的代币
创建一个禁用反机器人的代币,并在创建后立即购买
在Trenches上购买0.01 ETH价值的MTK
出售我所有的MTK代币
Trenches上的趋势是什么?
向我展示涨幅最高的代币
获取MTK代币的信息

重要 — 代币创建参数收集: 当用户要求创建代币时,代理必须在执行之前收集所有以下参数。如果用户的请求缺少这些参数中的任何一个,请向他们索取缺失的值。不要默默使用默认值 — 总是与用户确认每个参数。

参数 必需 描述
名称 代币名称(例如,“My Token”)
符号 代币的票证符号(例如,MTK)
描述 代币的描述
图像 代币图像文件的路径(PNG/JPEG/WEBP,最大4MB)
基础代币 BID(默认)或ETH — 与哪个代币配对
反机器人保护 默认为ON(10分钟狙击手保护)。询问用户是否要启用或禁用
初始购买 创建后立即购买的ETH金额(仅在反机器人关闭时有效)
Twitter 代币的Twitter/X手柄
网站 代币的网站URL
团队分配 SSL团队在价格超过给定位置后可以认领的团队位置

代理应向用户展示所有参数的摘要(包括默认值),并在执行创建前请求确认。

代币创建默认值:

  • 基础代币:BID(使用--base-token ETH进行ETH配对)
  • 反机器人保护:ON(10分钟狙击手保护窗口)
  • 当反机器人启用时,初始购买被阻止(代理在保护窗口期间不能购买)
  • 使用--no-antibot禁用保护并允许初始购买
  • 使用--image附加自定义代币图像(PNG/JPEG/WEBP,最大4MB)

图像上传流程:

  • 图像通过/api/skill/image上传(返回imageUrl
  • 返回的imageUrl传递给代币创建API
  • 如果图像上传失败,代币创建将失败(图像是必需的)

反机器人保护和购买:

  • 代理不能购买任何当前激活反机器人保护的代币(在创建后的10分钟窗口内)
  • 这适用于所有代币,不仅仅是代理创建的代币
  • 客户端和后端都执行此操作 — 后端将拒绝为受保护的代币发行交换签名
  • 等待保护窗口到期后再购买

代理将:

  1. 通过/api/skill/image上传代币图像(返回imageUrl
  2. /api/skill/token/create获取创建签名(包括imageUrl
  3. 显示代币详情以供确认
  4. 通过Safe + Roles(ZodiacHelpers delegatecall)执行
  5. 创建后,分享代币页面URL: https://trenches.bid/tokens/[address]

代理将:

  1. 解决代币符号(带诈骗保护)
  2. 从CoW Protocol获取报价
  3. 显示交换详情以供确认:
    • 代币符号(例如,ETH → USDC)
    • 代币地址(验证的Base Mainnet合约)
    • 输入金额(您要出售的)
    • 输出金额(您将收到的估计金额)
    • 费用细分
    • ETH包装金额(如适用)
  4. 要求用户明确确认
  5. 通过Safe + Roles执行

脚本

脚本 描述
initialize.js 部署Safe + Roles,注册CNS名称
swap.js 通过CoW Protocol(MEV保护)交换代币
balance.js 检查ETH和代币余额
trenches.js 在Trenches绑定曲线上创建代币和交易

示例

# 初始化(名称是可选的,如果提供则在CNS上注册)
node scripts/initialize.js --owner 0x123...
node scripts/initialize.js --owner 0x123... --name MYAGENT

# 检查余额
node scripts/balance.js
node scripts/balance.js --token USDC

# 交换代币(CoW Protocol,MEV保护)
node scripts/swap.js --from ETH --to USDC --amount 0.1
node scripts/swap.js --from USDC --to WETH --amount 100 --execute
node scripts/swap.js --from USDC --to DAI --amount 50 --execute --timeout 600

# 带自定义滑点(0-0.5范围,例如,0.05 = 5%)
node scripts/swap.js --from ETH --to USDC --amount 0.1 --slippage 0.03 --execute

# Trenches:创建代币(默认BID基础代币,反机器人ON)
node scripts/trenches.js create --name "My Token" --symbol MTK --description "A cool token"
node scripts/trenches.js create --name "My Token" --symbol MTK --description "desc" --base-token ETH
node scripts/trenches.js create --name "My Token" --symbol MTK --description "desc" --no-antibot --initial-buy 0.01
node scripts/trenches.js create --name "My Token" --symbol MTK --description "desc" --image ./logo.png

# Trenches:买卖代币
node scripts/trenches.js buy --token MTK --amount 0.01
node scripts/trenches.js sell --token MTK --amount 1000
node scripts/trenches.js sell --token MTK --all

# Trenches:代币信息和发现
node scripts/trenches.js info MTK
node scripts/trenches.js trending
node scripts/trenches.js trending --window 1h --limit 5
node scripts/trenches.js new
node scripts/trenches.js top-volume
node scripts/trenches.js gainers
node scripts/trenches.js losers

配置

脚本从config/wallet.json读取(为Base Mainnet配置):

{
  "chainId": 8453,
  "owner": "0x...",
  "agent": "0x...",
  "safe": "0x...",
  "roles": "0x...",
  "roleKey": "0x...",
  "name": "MYAGENT",
  "cnsTokenId": 1
}

环境变量

变量 默认 描述
BASE_RPC_URL https://mainnet.base.org Base Mainnet RPC端点
WALLET_CONFIG_DIR config 配置目录
TRENCHES_API_URL https://trenches.bid Trenches API端点

合约(Base Mainnet)

合约 地址 描述
Safe Singleton 0x3E5c63644E683549055b9Be8653de26E0B4CD36E Safe L2 impl
CoW Settlement 0x9008D19f58AAbD9eD0D60971565AA8510560ab41 CoW Protocol结算
CoW Vault Relayer 0xC92E8bdf79f0507f65a392b0ab4667716BFE0110 CoW代币授权目标
ZodiacHelpers 0xb34a6210013977FC7D6082287e03915a66249799 批准,CoW预签名,WETH包装/解包,Trenches工厂包装器通过delegatecall
AgentKeyFactoryV3 0x2EA0010c18fa7239CAD047eb2596F8d8B7Cf2988 Trenches代币创建和绑定曲线交易
Safe Factory 0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2 Safe部署者
Roles Singleton 0x9646fDAD06d3e24444381f44362a3B0eB343D337 Zodiac Roles
Module Factory 0x000000000000aDdB49795b0f9bA5BC298cDda236 模块部署者
CNS 0x299319e0BC8d67e11AD8b17D4d5002033874De3a Clawlett名称服务(唯一代理名称)

更新

当用户说**“update to latest”**时,按照以下程序操作:

  1. git fetch --tags origin在clawlett仓库中
  2. scripts/package.json读取当前版本
  3. 确定最新的git标签(例如,git tag -l --sort=-v:refname | head -1
  4. 阅读**MIGRATION_GUIDE.md**以了解当前和最新版本之间的迁移路径
  5. 向用户显示:当前版本,新版本,更改摘要,以及是否需要链上步骤
  6. 询问用户:“您是否要继续此更新?” —— 未经明确确认,不要继续
  7. 如果确认:git checkout <tag>,然后与用户一起经历每个迁移步骤

有些更新仅是代码(只需检查新标签)。其他需要Safe所有者签名的链上交易(例如,为新的ZodiacHelpers合约更新Roles权限)。迁移指南指定了哪些。

安全模型

  1. Safe持有所有资金 - 代理钱包只有汽油费
  2. Zodiac Roles限制操作
    • 只能与ZodiacHelpers交互
    • ZodiacHelpers用allowTarget(发送+DelegateCall)范围限定
    • 只能批准代币给CoW Vault Relayer
  3. 无转移/提款 - 代理不能移动资金
  4. 诈骗保护 - 常见代币解析为验证地址
  5. MEV保护 - CoW Protocol批量订单,防止夹心攻击和其他MEV提取