0xtimepunk/rhaios-staging/SKILL.md
Interact with the Rhaios staging REST API for yield operations. Discover -> prepare -> setup-if-needed -> sign -> execute flow with pluggable signer backend. Triggers on requests involving DeFi yield, vault deposits, redeems, rebalancing, or Rhaios API.
npx skillsauth add openclaw/skills rhaios-stagingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before first use, install dependencies from the repo root:
# Pick your package manager:
npm install --prefix ${CLAUDE_SKILL_DIR}
# or: bun install --cwd ${CLAUDE_SKILL_DIR}
# or: pnpm install --dir ${CLAUDE_SKILL_DIR}
If you see Cannot find module errors, dependencies are not installed. Run the install command above.
This skill targets the staging environment at https://api.staging.rhaios.com. It provides one command surface (prepare-sign-execute) for end-to-end execution.
Vault discovery: Before preparing an intent, agents can call POST /v1/yield/discover to browse and rank vaults by APY, risk, TVL, and Sharpe ratio. Pass the returned vaultId to yield_prepare (via deposit.vaultId in the input contract) to target a specific vault instead of auto-selection.
Default chain is base.
SIGNER_PRIVATE_KEY and Privy app secrets are sensitive. Never print, echo, or include them in logs/chat output.
If SIGNER_BACKEND=privy, PRIVY_APP_ID and PRIVY_APP_SECRET are master credentials.
# Optional. Defaults to privy. Use private-key for local key signing.
# SIGNER_BACKEND=privy
# Required only for SIGNER_BACKEND=privy
# PRIVY_APP_ID and PRIVY_APP_SECRET are provided by the Privy skill —
# they should already be in your environment. Do NOT ask the user for these.
PRIVY_WALLET_ID=<wallet-id>
PRIVY_WALLET_ADDRESS=<0x-wallet-address>
# Required only for SIGNER_BACKEND=private-key
SIGNER_PRIVATE_KEY=<0x-32-byte-private-key>
Notes:
https://api.staging.rhaios.com and cannot be overridden.SIGNER_BACKEND=privy, PRIVY_APP_ID and PRIVY_APP_SECRET must already be set (provided by the Privy skill). Only PRIVY_WALLET_ID and PRIVY_WALLET_ADDRESS need to be set per-wallet.SIGNER_BACKEND=privy, PRIVY_WALLET_ID must resolve to an ownerless wallet (owner_id = null).SIGNER_BACKEND=private-key, agentAddress (if provided) must match the private key address.const wallet = await privy.wallets().create({ chain_type: 'ethereum' });
# Using bun (recommended — runs TypeScript natively):
cat payload.json | bun run --cwd ${CLAUDE_SKILL_DIR} prepare-sign-execute
# Using npx + tsx (if bun is not available):
cat payload.json | npx --prefix ${CLAUDE_SKILL_DIR} tsx ${CLAUDE_SKILL_DIR}/scripts/prepare-sign-execute.ts
{
"operation": "deposit",
"chain": "base",
"agentAddress": "0xYourAgentAddress",
"deposit": {
"asset": "USDC",
"amount": "1",
"vaultId": "VAULT_ID_FROM_DISCOVER"
},
"controls": {
"dryRun": false,
"strictMode": true,
"requireConfirm": true,
"confirm": "yes",
"maxGasGwei": "1",
"maxAmount": "1000"
}
}
Operation-specific fields:
deposit: requires deposit.asset, deposit.amount, deposit.vaultId (from yield_discover — present results to the user and let them choose)redeem: requires redeem.vaultId and exactly one of redeem.percentage or redeem.sharesrebalance: requires rebalance.vaultId, rebalance.asset, and exactly one of rebalance.percentage or rebalance.sharesPreflightPreparePOST /v1/yield/prepare.Setup (automatic only when needed)needsSetup=true and dryRun=false:
setupType=full): signs a Type-4 (EIP-7702) transaction with authorization_list for first-time delegation + module initialization.setupType=modules): signs a regular Type-2 (EIP-1559) self-call for module re-initialization when delegation already exists but modules failed to initialize.POST /v1/yield/setup-relay for server-side relay + post-check.POST /v1/yield/prepare.needsSetup=true and dryRun=true, exits with Setup: WARN and does not broadcast.SignExecutePOST /v1/yield/execute with intentEnvelope, intentSignature, and intentId unless dryRun=true.result: "already_executed" with the original txHash.EXECUTED or DEDUP (fallback: receipt.source=cached when result is absent).Post-checkGET /v1/yield/status for quick position/value verification.Staging runs managed test RPCs — chain forks that mirror mainnet state. Agents can mint test balances without spending real tokens.
Check test RPC health first:
https://api.staging.rhaios.com/v1/testing/fork-status
Then fund your wallet:
-H "Content-Type: application/json" \
https://api.staging.rhaios.com/v1/testing/fund-wallet \
-d '{
"chain": "base",
"walletAddress": "0xYourAgentAddress",
"ethWei": "20000000000000000",
"usdcAmount": "10000000"
}'
The script enforces:
critical blocks executionintentEnvelope.chainId and signing payload consistencycat <<'JSON' | bun run --cwd ${CLAUDE_SKILL_DIR} prepare-sign-execute
{
"operation": "deposit",
"deposit": { "asset": "USDC", "amount": "1", "vaultId": "VAULT_ID_FROM_DISCOVER" },
"controls": {
"dryRun": true,
"strictMode": true,
"requireConfirm": false
}
}
JSON
Important: Always call yield_discover first, present the ranked vaults to the user, and let them choose. Then pass their chosen vaultId to this script. Do not auto-select vaults on behalf of the user.
Vault capacity: Some vaults may be at capacity (maxDeposit=0). If yield_prepare returns vault_at_capacity, inform the user and let them pick a different vault from the discover results.
cat <<'JSON' | bun run --cwd ${CLAUDE_SKILL_DIR} prepare-sign-execute
{
"operation": "deposit",
"deposit": { "asset": "USDC", "amount": "1", "vaultId": "VAULT_ID_FROM_DISCOVER" },
"controls": {
"dryRun": false,
"strictMode": true,
"requireConfirm": true,
"confirm": "yes",
"maxGasGwei": "1",
"maxAmount": "1000"
}
}
JSON
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。