关于 ethena
ethena 是用于 Ethena USDe 质押操作的 Agent 技能,面向查询收益、查看余额及执行质押或赎回的用户。它提供实时汇率和冷却期查询,并指导交易签名与广播流程。
主要功能
- 01查询实时汇率和冷却期
- 02查看 USDe 与 sUSDe 余额
- 03查询当前及历史 APY
- 04生成质押与赎回交易数据
适用场景
- 01检查质押前的汇率与冷却期
- 02查询 sUSDe 收益率及钱包余额
- 03质押 USDe 并签名广播交易
- 04冷却期后领取赎回资产
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ starchild-ai-agent/ official-skills --skill ethena安装后在 Claude Code 中输入/ethena确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
__init__.pyexports.pyscripts/ethena_ops.pytests/test_ethena_remote.py详细介绍
⛔ 硬性规则(始终先阅读)
- 始终在执行任何链上操作前调用
ethena_rate——冷却时长实时从链上获取,并非固定值 - 绝不直接调用
wallet_transfer——只能使用ethena_*原生工具(在全拒绝策略下,wallet_transfer会触发 UI 阻止) - 绝不将冷却时间硬编码为“7 天”——每次请求都会获取实际值(目前约为 24 小时)
- 绝不猜测或假定 sUSDe/USDe 汇率——调用
ethena_rate - 硬性限制:每个用户请求最多调用 5 次工具
- 链上执行:
ethena_*返回 calldata 后,通过wallet_sign_transaction签名并广播——绝不跳过或模拟执行
Ethena — USDe 质押
Ethena 允许用户质押 USDe 以获得 sUSDe,这是一种产生收益的 ERC4626 代币。奖励来自 ETH 质押收益和资金费率差额对冲。sUSDe 的价值只会上升或保持不变,绝不会下降。
关键合约(Ethereum 主网)
| 合约 | 地址 |
|---|---|
| USDe | 0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 |
| sUSDe (StakedUSDe) | 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 |
| USDeSilo(冷却) | 0x7FC7c91D556B400AFa565013E3F32055a0713425 |
原生工具
| 工具 | 使用时机 | 返回值 |
|---|---|---|
ethena_rate() | 查询汇率、任何交易前、检查冷却时间 | rate、totalAssets、totalSupply、cooldown_seconds |
ethena_apy() | 询问 APY / 收益率 / 回报 | apy_current、apy_7d、apy_30d、tvl_usd |
ethena_balance(wallet) | 检查余额 | usde_balance、susde_balance、cooldown_end_ts |
ethena_stake(amount, receiver) | 质押 USDe | 2 份交易 calldata(approve + deposit) |
ethena_cooldown_start(amount) | 开始解除质押 | 冷却交易 calldata + 实时 cooldown_hours |
ethena_unstake(receiver) | 冷却后领取 | 解除质押交易 calldata |
端到端执行——签名并广播
ethena_* 工具会返回未签名的 calldata。要在链上实际执行:
ethena_stake / ethena_cooldown_start / ethena_unstake
↓ returns tx dict {to, data, value, chain_id}
wallet_sign_transaction(tx) ← wallet skill
↓ returns signed_tx hex
wallet_sign_transaction broadcast ← same call, auto-broadcasts
标准流程(质押示例)
Step 1 ethena_rate() # confirm rate + cooldown before tx
Step 2 ethena_stake("100", receiver) # returns [approve_tx, deposit_tx]
Step 3 wallet_sign_transaction(approve_tx, broadcast=True)
Step 4 wallet_sign_transaction(deposit_tx, broadcast=True)
标准流程(解除质押)
Step 1 ethena_rate() # get live cooldown duration
Step 2 ethena_cooldown_start("100") # returns cooldown_tx
Step 3 wallet_sign_transaction(cooldown_tx, broadcast=True)
Step 4 [wait cooldown_hours]
Step 5 ethena_unstake(receiver) # returns unstake_tx
Step 6 wallet_sign_transaction(unstake_tx, broadcast=True)
跨技能依赖
先加载 wallet-policy 技能,确认通配符策略已启用。wallet_sign_transaction 属于 wallet 技能——它原生可用,无需额外安装。
错误处理
| 错误 | 原因 | 解决方法 |
|---|---|---|
| 签名时出现 403 | Privy 策略为全拒绝 | 在 Web UI 中批准通配符策略 |
| nonce 冲突 | 两笔交易广播得太快 | 等待步骤 3 的回执后再执行步骤 4 |
| gas 估算失败 | approve 尚未被打包 | 在 approve 和 deposit 之间延迟 5 秒 |
工具路由——IF/THEN
IF "APY" OR "yield" OR "return" OR "收益率" OR "年化"
→ ethena_apy()
IF "rate" OR "price" OR "how much USDe per sUSDe" OR "汇率" OR "多少USDe"
→ ethena_rate()
IF "balance" OR "how much do I have" OR "余额"
→ ethena_balance(wallet_address)
IF "stake" OR "deposit" OR "质押" AND amount given
→ ethena_stake(amount, receiver)
IF "unstake" OR "redeem" OR "cooldown" OR "withdraw" OR "赎回" — starting flow
→ ethena_cooldown_start(amount)
IF "claim" OR "unstake" OR "withdraw" AND cooldown already done
→ ethena_unstake(receiver)
IF "how long" OR "cooldown duration" OR "等多久"
→ ethena_rate() ← returns cooldown_seconds live from chain
少样本示例
ETH-01 — APY 查询
“sUSDe 现在的 APY 是多少?”
ethena_apy()
→ "当前 APY 3.72%,7日均值 3.68%"
ETH-02 — 汇率查询
“1 sUSDe 能换多少 USDe?”
ethena_rate()
→ "1 sUSDe = 1.227675 USDe(totalAssets/totalSupply 实时计算)"
ETH-03 — 余额
“我有多少 USDe 和 sUSDe?”
ethena_balance("0x...")
→ {usde_balance: 500.0, susde_balance: 81.46, susde_in_usde: 100.0}
ETH-04 — 质押
“帮我质押 100 USDe”
ethena_rate() # get live rate for estimate
ethena_stake("100", receiver="0x...")
→ [{approve tx}, {deposit tx}] # execute in order
ETH-04b — 端到端质押(签名并广播)
“帮我质押 100 USDe,直接执行到链上”
ethena_rate() # Step 1: confirm rate
ethena_stake("100", receiver="0x...") # Step 2: get calldata
→ [approve_tx, deposit_tx]
wallet_sign_transaction(approve_tx, broadcast=True) # Step 3
wallet_sign_transaction(deposit_tx, broadcast=True) # Step 4
→ tx_hash confirmed
ETH-06b — 端到端解除质押(签名并广播)
“帮我开始赎回 50 sUSDe,直接发链上”
ethena_rate() # Step 1: get cooldown
ethena_cooldown_start("50") # Step 2: get calldata
→ {cooldown_tx, cooldown_hours: 24.0}
wallet_sign_transaction(cooldown_tx, broadcast=True) # Step 3
→ tx_hash confirmed, 等待 24h 后再调 ethena_unstake
ETH-05 — 冷却时长
“赎回要等多久?”
ethena_rate()
→ "cooldown_seconds: 86400 → 当前需等待 24 小时"
ETH-06 — 开始冷却
“开始赎回 50 USDe 的 sUSDe”
ethena_cooldown_start("50")
→ {transaction: {...}, cooldown_hours: 24.0}
ETH-07 — 冷却后领取
“cooldown 到了,帮我提款”
ethena_unstake("0x...")
→ {transaction: {...}}
ETH-08 — 英文收益查询
“质押 USDe 的当前收益率是多少?”
ethena_apy()
→ "Current APY: 3.72%"
质押的运作方式
- 质押:
ethena_stake→ 批准 USDe + 存入 → 获得 sUSDe(ERC4626) - 收益:协议每 8 小时转入 USDe 奖励,并在 8 小时内线性归属(防夹击攻击)
- 解除质押:
ethena_cooldown_start→ 等待冷却(查询实时值,目前约为 24 小时)→ethena_unstake
sUSDe/USDe 汇率只会上升。冷却时长可能变化——始终查询 ethena_rate。
通过任何 ethena_* 工具生成 calldata 后,始终继续调用 wallet_sign_transaction(tx, broadcast=True),以实际提交到链上。绝不要在生成 calldata 后就停止。
前置条件 — 钱包策略
进行任何链上操作前,请确保已启用通配符钱包策略(禁止导出密钥 + 允许 *)。如有需要,请加载 wallet-policy 技能。
注意事项
- 冷却期约为 24 小时(而非 7 天)——但请务必通过
ethena_rate()验证,因为治理可能会更改此设置 - 奖励不会为负——sUSDe 的价值只会上涨或持平
- 每 8 小时发放一次奖励——线性归属,不存在抢先交易机会
- 如果流动性充足,sUSDe 可以在无需冷却期的情况下于 DEX 上出售
- 欧盟/欧洲经济区限制——不提供在欧盟/欧洲经济区获取 sUSDe 的服务