Loading...
Loading...
Ethena staking: stake USDe for sUSDe yield, unstake with cooldown, view rates. Use when farming stablecoin yield via Ethena (e.g. stake 1000 USDe, check sUSDe APY, unstake my position, current cooldown).
npx skill4agent add starchild-ai-agent/official-skills ethenaethena_ratewallet_transferethena_*ethena_rateethena_*wallet_sign_transaction| Contract | Address |
|---|---|
| USDe | |
| sUSDe (StakedUSDe) | |
| USDeSilo (cooldown) | |
| Tool | When to use | Returns |
|---|---|---|
| Rate query, before any tx, cooldown check | rate, totalAssets, totalSupply, cooldown_seconds |
| APY / yield / return question | apy_current, apy_7d, apy_30d, tvl_usd |
| Balance check | usde_balance, susde_balance, cooldown_end_ts |
| Stake USDe | 2 tx calldata (approve + deposit) |
| Start unstake | cooldown tx calldata + live cooldown_hours |
| Claim after cooldown | unstake tx calldata |
ethena_*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-broadcastsStep 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_sign_transaction| Error | Cause | Fix |
|---|---|---|
| 403 on sign | Privy policy deny-all | Approve wildcard policy in Web UI |
| nonce conflict | Two txs broadcast too fast | Wait for Step 3 receipt before Step 4 |
| gas estimate fail | Approve not mined yet | Add 5s delay between approve and deposit |
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"sUSDe 现在的 APY 是多少?"
ethena_apy()
→ "当前 APY 3.72%,7日均值 3.68%""1 sUSDe 能换多少 USDe?"
ethena_rate()
→ "1 sUSDe = 1.227675 USDe(totalAssets/totalSupply 实时计算)""我有多少 USDe 和 sUSDe?"
ethena_balance("0x...")
→ {usde_balance: 500.0, susde_balance: 81.46, susde_in_usde: 100.0}"帮我质押 100 USDe"
ethena_rate() # get live rate for estimate
ethena_stake("100", receiver="0x...")
→ [{approve tx}, {deposit tx}] # execute in order"帮我质押 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"帮我开始赎回 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"赎回要等多久?"
ethena_rate()
→ "cooldown_seconds: 86400 → 当前需等待 24 小时""开始赎回 50 USDe 的 sUSDe"
ethena_cooldown_start("50")
→ {transaction: {...}, cooldown_hours: 24.0}"cooldown 到了,帮我提款"
ethena_unstake("0x...")
→ {transaction: {...}}"What's the current yield for staking USDe?"
ethena_apy()
→ "Current APY: 3.72%"ethena_stakeethena_cooldown_startethena_unstakeethena_rateethena_*wallet_sign_transaction(tx, broadcast=True)*ethena_rate()