| name | yield-optimization |
| description | Multi-chain yield optimization via yield.xyz (StakeKit). Discover 2,988+ yield opportunities across 75+ blockchains, build deposit/withdrawal transactions with shell scripts, and sign them with a MoonPay wallet. Use when the user wants to earn yield, find the best lending or staking rate, enter/exit a position, or check portfolio balances.
|
| tags | ["yield","defi","lending","staking","multi-chain"] |
yield.xyz — Multi-Chain Yield Optimization
Overview
yield.xyz (powered by StakeKit) aggregates 2,988+ yield opportunities across 75+ blockchains — lending, staking, vaults, restaking, and liquidity pools. The agent skill uses shell scripts to discover yields, build unsigned transactions, and sign them with your MoonPay wallet.
find-yields.sh → discover opportunities by chain + token
enter-position.sh → build unsigned deposit transaction
mp transaction send → sign and broadcast with MoonPay wallet
check-portfolio.sh → monitor balances and pending rewards
exit-position.sh → build unsigned withdrawal transaction
Prerequisites
which curl jq
npm install -g @moonpay/cli
mp login
export YIELDS_API_KEY="..."
Installation
npx clawhub@latest install yield-agent
Or manually:
git clone https://github.com/stakekit/yield-agent.git ~/.openclaw/skills/yield-agent
chmod +x ~/.openclaw/skills/yield-agent/scripts/*.sh
Commands
| Script | Description |
|---|
find-yields.sh [chain] [token] | Discover yields by network and token |
get-yield-info.sh [yield-id] | Retrieve yield schema and validator info |
list-validators.sh [yield-id] | List validators for staking positions |
enter-position.sh [yield-id] [address] [params] | Build unsigned deposit transaction |
exit-position.sh [yield-id] [address] | Build unsigned withdrawal transaction |
manage-position.sh [yield-id] [action] | Claim rewards, restake, redelegate |
check-portfolio.sh [yield-id] [address] | View balances and pending actions |
Core Workflow
1. Discover Yields
./scripts/find-yields.sh base USDC
./scripts/find-yields.sh ethereum ETH
2. Inspect a Yield
./scripts/get-yield-info.sh base-usdc-aave-v3-lending
Always fetch the yield schema before executing — it specifies required params and multi-step order.
3. Enter a Position
./scripts/enter-position.sh base-usdc-aave-v3-lending 0xYOUR_ADDRESS '{"amount":"100"}'
4. Sign with MoonPay
mp transaction sign \
--wallet "yield-agent" \
--chain base \
--transaction '<unsignedTransaction from step 3>'
mp transaction send \
--chain base \
--transaction '<signedTransaction from step 1>'
For multi-step transactions, execute in stepIndex order. Sign each step exactly as returned — never modify unsignedTransaction.
5. Monitor Portfolio
./scripts/check-portfolio.sh base-usdc-aave-v3-lending 0xYOUR_ADDRESS
6. Exit a Position
./scripts/exit-position.sh base-usdc-aave-v3-lending 0xYOUR_ADDRESS
7. Manage Rewards
./scripts/manage-position.sh base-usdc-aave-v3-lending claim
./scripts/manage-position.sh ethereum-eth-lido-staking redelegate
Wallet Setup with MoonPay
mp wallet create --name "yield-agent"
mp wallet retrieve --wallet "yield-agent"
Funding Your Wallet
Buy with Fiat
mp buy --token usdc_base --amount 500 --wallet <base-address> --email <email>
mp buy --token usdc_ethereum --amount 1000 --wallet <eth-address> --email <email>
mp buy --token eth_ethereum --amount 0.05 --wallet <eth-address> --email <email>
Bridge Cross-Chain
mp token bridge \
--from-wallet yield-agent --from-chain ethereum \
--from-token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 \
--from-amount 500 \
--to-chain base \
--to-token 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
Bank Transfer (Large Capital)
mp virtual-account create && mp virtual-account kyc submit
mp virtual-account bank-account add
mp virtual-account onramp create \
--name "yield-onramp" --fiat usd --stablecoin usdc --chain ethereum --wallet <eth-address>
Check Balances / Withdraw
mp token balance list --wallet <eth-address> --chain ethereum
mp virtual-account offramp create --amount 2000 --chain ethereum --wallet <eth-address>
Security
yield.xyz only builds unsigned transactions — your MoonPay wallet handles all signing. Keys are AES-256-GCM encrypted locally and never leave the machine. For large positions use a hardware wallet:
mp wallet hardware add --name "yield-ledger"
End-to-End Workflow
npx clawhub@latest install yield-agent
mp wallet create --name "yield-agent"
mp buy --token usdc_base --amount 500 --wallet <address> --email <email>
./scripts/find-yields.sh base USDC
./scripts/get-yield-info.sh <yield-id>
./scripts/enter-position.sh <yield-id> <address> '{"amount":"500"}'
mp transaction sign --wallet "yield-agent" --chain base --transaction <unsignedTx> then mp transaction send --chain base --transaction <signedTx>
./scripts/check-portfolio.sh <yield-id> <address>
mp virtual-account offramp create to withdraw earned yield
Resources
Related Skills
- moonpay-check-wallet — Verify balances before depositing
- moonpay-swap-tokens — Swap tokens to what a yield pool requires
- moonpay-virtual-account — Bank transfer for large capital inflows
- moonpay-trading-automation — Automate rebalancing on a schedule