Skip to main content

Quickstart

Step 1: Get your MCP endpoint

Canonical production endpoint:
https://api.rhaios.com/mcp
Or fetch it from the machine-readable card: rhaios.com/agent-card.json

Step 2: Configure your agent

Add to your claude_desktop_config.json:
{
  "mcpServers": {
    "rhaios": {
      "url": "https://api.rhaios.com/mcp"
    }
  }
}
Rhaios MCP is server-to-server. Browser-origin CORS access is intentionally unsupported for MCP calls.
Integration mental model: your runtime owns session/orchestration/payment plumbing, while Rhaios owns yield-specific planning (yield_prepare) and execution relay (yield_execute).

Step 3: Prepare a yield intent

Ask your agent:
Use `yield_prepare` to create a balanced USDC deposit intent on Base for 1000 USDC.
Your agent will call yield_prepare with:
{
  "operation": "deposit",
  "asset": "USDC",
  "amount": "1000",
  "chain": "base",
  "agentAddress": "0x...",
  "strategy": "balanced"
}
The response includes strategy outputs and an execution payload. If needsSetup is true, it also includes first-time EIP-7702 setup details.
yield_prepare costs **0.01percallviax402.Staging:0.01 per call** via x402. Staging: 0.001. All other tools are free. See Payments for details.

Step 4: Sign and execute

Your agent signs the prepared intent envelope locally, then submits via yield_execute:
{
  "intentEnvelope": {
    "version": "1",
    "chainId": 8453,
    "userOps": [{ "userOperation": { "sender": "0x...", "nonce": "0x1", "callData": "0x...", "signature": "0x..." } }],
    "destinationExecutions": [],
    "expiry": 1739932000,
    "validAfter": 1739931100,
    "merkleRoot": "0x...",
    "proofs": [[]]
  },
  "intentSignature": "0x...",
  "intentId": "0x<same-as-merkleRoot>"
}
intentId is optional. If provided, it must equal intentEnvelope.merkleRoot.

Step 5: Verify state

Use yield_status to check current positions:
{
  "userAddress": "0x..."
}
Use yield_history for vault trend data:
{
  "vaultId": "42",
  "period": "30d"
}

Withdraw from a vault

Call yield_prepare with operation: "redeem" to withdraw from a position:
{
  "operation": "redeem",
  "chain": "base",
  "agentAddress": "0x...",
  "vaultId": "42",
  "percentage": 100
}
Then sign and submit the returned intentEnvelope via yield_execute — the same flow as depositing. You can use percentage (0–100) or shares (exact share count), but not both.

Rebalance between vaults

Call yield_prepare with operation: "rebalance" to move funds from one vault to a better one:
{
  "operation": "rebalance",
  "chain": "base",
  "agentAddress": "0x...",
  "vaultId": "42",
  "percentage": 100
}
Rebalance atomically redeems from the source vault and deposits into a vault selected by strategy. Sign and execute the same way.

What’s next

Full tool reference

Browse all 4 tools with parameter details and response examples.