Skip to main content

Agent Quickstart (Staging)

This page is structured for AI agents. Every step is copy-pasteable. Follow them in order.

Environment Reference

KeyValue
Staging MCP URLhttps://rhaios-staging.up.railway.app/mcp
Staging Healthhttps://rhaios-staging.up.railway.app/health
Chainethereum-sepolia
Chain ID11155111
yield_prepare price0.001(staging)/0.001 (staging) / 0.01 (production)
Ops Dashboardhttps://rhaios-staging.up.railway.app/ops
Explorerhttps://sepolia.etherscan.io

Step 1: Install the Privy Skill (1 minute)

Install the Privy agentic wallets skill to create and manage wallets:
/install-skill https://clawhub.ai/tedim52/privy
After installation, create an ownerless Ethereum wallet:
Create a new ownerless Ethereum wallet using the Privy skill.
Save the returned 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:
cp -r skills/rhaios-staging-mcp ~/.claude/skills/rhaios-staging-mcp
End-user pre-prod distribution should use skills/rhaios-mcp. This page remains staging-specific for Sepolia validation.
Set the following environment variables:
export RHAIOS_STAGING_MCP_URL=https://rhaios-staging.up.railway.app
export SIGNER_BACKEND=privy
export PRIVY_APP_ID=<your-privy-app-id>
export PRIVY_APP_SECRET=<your-privy-app-secret>
export PRIVY_WALLET_ID=<wallet-id-from-step-1>
export PRIVY_WALLET_ADDRESS=<0x-address-from-step-1>

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 your PRIVY_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:
  1. Keep enough Sepolia ETH in wallet.
  2. Let the rhaios-staging-mcp skill auto-wrap ETH to the exact vault asset token when running a live WETH deposit.
Auto-wrap behavior:
  • Default: enabled for staging targets.
  • Toggle with RHAIOS_AUTO_WRAP_WETH=true|false.
  • Scope: ETH -> WETH only.
For any non-WETH vault asset on staging (for example USDC), fund that exact token separately (faucet/bridge/manual transfer). The skill does not auto-source non-WETH assets. Manual fallback (if auto-wrap disabled):
  1. Run dry-run yield_prepare.
  2. Read the selected vault (strategy.vault) and call asset() on that vault.
  3. 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:
Use the rhaios-staging-mcp skill to prepare a WETH deposit of 0.01 on ethereum-sepolia with balanced strategy. Use dry run first.
This calls yield_prepare and returns:
{
  "operation": "deposit",
  "intentId": "f3ab8fb8-...",
  "needsSetup": true,
  "strategy": {
    "vaultName": "Morpho Blue WETH",
    "expectedAPY": 0.082,
    "riskScore": "low"
  }
}
If 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:
Use the rhaios-staging-mcp skill to deposit 0.01 WETH on ethereum-sepolia with balanced strategy. Live execution, not dry run.
The skill:
  1. Calls yield_prepare (paid, $0.001 on staging)
  2. Auto-wraps ETH to the selected vault asset token for WETH deposits only (staging-enabled behavior)
  3. Handles EIP-7702 setup if needed
  4. Signs the intent envelope via Privy
  5. Calls yield_execute with the signed payload
Expected response from yield_execute:
{
  "executionModel": "erc4337-supervalidator-intent-v1",
  "result": "executed",
  "userOpHash": "0x4f3e...",
  "txHash": "0x9c3e...",
  "chainId": 11155111,
  "chain": "ethereum-sepolia",
  "receipt": {
    "status": "success",
    "gasUsed": "241919",
    "blockNumber": 7430172
  },
  "explorerUrl": "https://sepolia.etherscan.io/tx/0x9c3e..."
}
Open the explorerUrl to verify the transaction on Sepolia Etherscan.

Step 6: Verify Position (30 seconds)

Check your portfolio with yield_status:
Use the rhaios-staging-mcp skill to check yield status for my wallet address.
Expected response:
{
  "positions": [
    {
      "vaultId": "42",
      "vaultName": "Morpho Blue WETH",
      "protocol": "Morpho Blue",
      "chain": "ethereum-sepolia",
      "depositedAmount": "0.01",
      "currentValue": "0.01002",
      "apy": 0.082,
      "unrealizedYield": "0.00002"
    }
  ],
  "totalValueUsd": 25.05,
  "totalDeposited": 25.00,
  "totalYieldEarned": 0.05,
  "positionCount": 1
}
View the ops dashboard to confirm the position is reflected:
https://rhaios-staging.up.railway.app/ops

Step 7: Redeem (Optional, 2 minutes)

To withdraw your position:
Use the rhaios-staging-mcp skill to redeem 100% from vault 42 on ethereum-sepolia.
This calls yield_prepare with operation: "redeem", signs, and executes — same flow as deposit.

Troubleshooting Quick Reference

ErrorCauseFix
Payment required (HTTP 402)x402 payment not attached to yield_prepareEnsure your MCP client supports x402. Retry the request.
needsSetup=true on every callSetup tx failed or hasn’t confirmedCheck Sepolia Etherscan for the setup tx. Wait for confirmation. Re-run.
AA24 signature validationStale calldata or wrong signerRe-run yield_prepare to get fresh calldata, then re-sign.
AA21 prefund issueWallet not funded for gasSend more Sepolia ETH to your wallet.
AA50 postOp revertedPaymaster issueRetry. If persistent, check gas sponsorship config.
result: "already_executed"Duplicate execute for an already-succeeded intentTreat as success. The returned txHash is the original execution transaction.
Preflight validation failed with previewDeposit returned 0Deposit amount below vault minimumIncrease deposit amount and re-run yield_prepare.
userOpSuccess=false with Address: low-level call failedWrong 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 foundNo vault matches filtersTry strategy: "balanced" and remove riskTolerance filter.
Session not foundMCP session expiredReconnect to the MCP endpoint.
Transaction submission failedBundler rejected the UserOpRebuild 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_prepare returns valid intent
  • EIP-7702 setup completed (if first time)
  • yield_execute returns txHash
  • Transaction confirmed on Sepolia Etherscan
  • yield_status shows position
  • Ops dashboard reflects position