Agent Quickstart (Staging)
This page is structured for AI agents. Every step is copy-pasteable. Follow them in order.Environment Reference
| Key | Value |
|---|---|
| Staging MCP URL | https://rhaios-staging.up.railway.app/mcp |
| Staging Health | https://rhaios-staging.up.railway.app/health |
| Chain | ethereum-sepolia |
| Chain ID | 11155111 |
yield_prepare price | 0.01 (production) |
| Ops Dashboard | https://rhaios-staging.up.railway.app/ops |
| Explorer | https://sepolia.etherscan.io |
Step 1: Install the Privy Skill (1 minute)
Install the Privy agentic wallets skill to create and manage wallets:PRIVY_WALLET_ID and PRIVY_WALLET_ADDRESS. You will need both.
An ownerless wallet (
owner_id = null) is required. The Rhaios staging skill validates this.Step 2: Install the Rhaios Staging Skill (1 minute)
The Rhaios staging skill is a private skill. Copy the skill directory to your Claude skills folder:End-user pre-prod distribution should use
skills/rhaios-mcp. This page remains staging-specific for Sepolia validation.Step 3: Fund Your Wallet (2 minutes)
Your wallet needs Sepolia ETH for gas and deposits. Staging vaults accept WETH (wrapped ETH).Get Sepolia ETH
Use any of these faucets to send Sepolia ETH to yourPRIVY_WALLET_ADDRESS:
Request at least 0.05 ETH — enough for gas and a small deposit.
Wrap some ETH to WETH (Important)
Do not assume a single WETH address. On staging, the selected vault may use a WETH token contract that is different from canonical Sepolia WETH. If you wrap to the wrong WETH token address,yield_execute can fail with userOpSuccess=false and a low-level call revert.
This auto-wrap guidance is staging-only.
It is not production guidance.
Recommended for agents on staging:
- Keep enough Sepolia ETH in wallet.
- Let the
rhaios-staging-mcpskill auto-wrap ETH to the exact vault asset token when running a live WETH deposit.
- Default: enabled for staging targets.
- Toggle with
RHAIOS_AUTO_WRAP_WETH=true|false. - Scope: ETH -> WETH only.
- Run dry-run
yield_prepare. - Read the selected vault (
strategy.vault) and callasset()on that vault. - Wrap ETH into that returned token contract address (not a hardcoded WETH address).
Verify Funding
Check your wallet balance to confirm ETH and WETH are available.Step 4: Discover Vaults and Prepare Intent (1 minute)
Run the staging skill with a deposit operation. Send this prompt:yield_prepare and returns:
needsSetup is true: This is your first transaction. The skill automatically handles EIP-7702 wallet setup — signs and relays the setup type-4 transaction, waits for confirmation, then re-calls yield_prepare to get the execution payload.
If needsSetup is false: The response includes an execution block with intentEnvelope ready for signing.
Step 5: Sign and Execute (1 minute)
Once the dry run looks correct, run the live deposit:- Calls
yield_prepare(paid, $0.001 on staging) - Auto-wraps ETH to the selected vault asset token for WETH deposits only (staging-enabled behavior)
- Handles EIP-7702 setup if needed
- Signs the intent envelope via Privy
- Calls
yield_executewith the signed payload
yield_execute:
explorerUrl to verify the transaction on Sepolia Etherscan.
Step 6: Verify Position (30 seconds)
Check your portfolio withyield_status:
Step 7: Redeem (Optional, 2 minutes)
To withdraw your position:yield_prepare with operation: "redeem", signs, and executes — same flow as deposit.
Troubleshooting Quick Reference
| Error | Cause | Fix |
|---|---|---|
Payment required (HTTP 402) | x402 payment not attached to yield_prepare | Ensure your MCP client supports x402. Retry the request. |
needsSetup=true on every call | Setup tx failed or hasn’t confirmed | Check Sepolia Etherscan for the setup tx. Wait for confirmation. Re-run. |
AA24 signature validation | Stale calldata or wrong signer | Re-run yield_prepare to get fresh calldata, then re-sign. |
AA21 prefund issue | Wallet not funded for gas | Send more Sepolia ETH to your wallet. |
AA50 postOp reverted | Paymaster issue | Retry. If persistent, check gas sponsorship config. |
result: "already_executed" | Duplicate execute for an already-succeeded intent | Treat as success. The returned txHash is the original execution transaction. |
Preflight validation failed with previewDeposit returned 0 | Deposit amount below vault minimum | Increase deposit amount and re-run yield_prepare. |
userOpSuccess=false with Address: low-level call failed | Wrong WETH token address for selected vault (token mismatch) | Re-run with staging skill auto-wrap enabled, or wrap ETH into the vault’s asset() token address and retry. |
No suitable vaults found | No vault matches filters | Try strategy: "balanced" and remove riskTolerance filter. |
Session not found | MCP session expired | Reconnect to the MCP endpoint. |
Transaction submission failed | Bundler rejected the UserOp | Rebuild via yield_prepare, re-sign, re-execute. |
Full Flow Checklist
- Privy skill installed
- Ownerless wallet created
- Rhaios staging skill installed
- Environment variables set
- Wallet funded with Sepolia ETH
- Wallet has ETH and correct vault-asset WETH (auto-wrap or manual vault-asset wrap)
-
yield_preparereturns valid intent - EIP-7702 setup completed (if first time)
-
yield_executereturns txHash - Transaction confirmed on Sepolia Etherscan
-
yield_statusshows position - Ops dashboard reflects position