{
  "protocol": "Rodev",
  "version": "1.1.0",
  "name": "Rodev Protocol",
  "description": "Financial infrastructure for autonomous AI agents. Yield-bearing vaults, identity-aware credit, and revenue bonds.",
  "website": "https://tryrodev.xyz",
  "docs": "https://github.com/Rodev-Protocol/docs",
  "dashboard": "https://tryrodev.xyz/dashboard",
  "networks": {
    "base": {
      "chainId": 8453,
      "rpc": "https://mainnet.base.org",
      "explorer": "https://robinscan.io",
      "status": "live",
      "primary": true,
      "contracts": {
        "han": {
          "address": "0x3746a5ebCA295Dee695dd1bcba50A8626Df3099C",
          "name": "Humanoid Network by Virtuals",
          "symbol": "HAN"
        },
        "weth": {
          "address": "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",
          "name": "Wrapped Ethereum",
          "symbol": "WETH"
        },
        "usdg": {
          "address": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168",
          "name": "Global Dollar",
          "symbol": "USDG"
        },
        "virtual": {
          "address": "0xc6911796042b15d7Fa4F6CDe69e245DdCd3d9c31",
          "name": "Virtuals Protocol",
          "symbol": "VIRTUAL"
        },
        "cashcat": {
          "address": "0x020bfC650A365f8BB26819deAAbF3E21291018b4",
          "name": "Cash Cat",
          "symbol": "CASHCAT"
        },
        "usde": {
          "address": "0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34",
          "name": "USDe",
          "symbol": "USDe"
        }
      }
    },
    "base-sepolia": {
      "chainId": 84532,
      "rpc": "https://sepolia.base.org",
      "explorer": "https://base-sepolia.blockscout.com",
      "status": "deprecated",
      "contracts": {
        "vault": {
          "address": "0xa8eF658E125C7f6D7aFa9B6b8035b66b32CBE98d",
          "name": "RodevVault",
          "token": "raUSDC"
        },
        "credit": {
          "address": "0x019540E33a0292a9DDE36bD9Ef11774d5A1Ce6FC",
          "name": "AgentCredit"
        },
        "router": {
          "address": "0x0281e7D37683c585325004F84e0b94170c78d5B4",
          "name": "ATIRouter"
        },
        "usdc": {
          "address": "0x29440A12f15fe6bDf5F624f4eeEB298CCb782f05",
          "name": "MockUSDC",
          "decimals": 6
        }
      },
      "note": "Testnet \u2014 deprecated. Use base (mainnet, chainId 8453)."
    }
  },
  "ati": {
    "name": "Agent Treasury Interface",
    "version": "1.1",
    "description": "Three core functions. Two discovery views. Any agent framework.",
    "functions": {
      "deposit": {
        "signature": "deposit(uint256 amount) returns (uint256 shares)",
        "selector": "0xb6b55f25",
        "description": "Deposit USDC into the vault. Returns raUSDC shares.",
        "params": {
          "amount": "USDC amount in 6 decimals (e.g. 1000000000 = 1000 USDC)"
        },
        "returns": {
          "shares": "raUSDC shares minted"
        },
        "requires": "Caller must approve vault to spend USDC first"
      },
      "withdraw": {
        "signature": "withdraw(uint256 shares) returns (uint256 amount)",
        "selector": "0x2e1a7d4d",
        "description": "Withdraw USDC by redeeming raUSDC shares.",
        "params": {
          "shares": "raUSDC shares to redeem"
        },
        "returns": {
          "amount": "USDC returned including yield"
        }
      },
      "balance": {
        "signature": "balance(address agent) view returns (uint256)",
        "selector": "0xe3d670d7",
        "description": "Query current USDC value of an agent's position.",
        "params": {
          "agent": "Address of the agent or wallet"
        },
        "returns": {
          "value": "USDC value in 6 decimals"
        }
      },
      "asset": {
        "signature": "asset() returns (address)",
        "selector": "0x38d52e0f",
        "description": "Returns the underlying deposit token address (USDC). Agents call this to discover what to approve.",
        "params": {},
        "returns": {
          "token": "Address of the underlying asset (USDC)"
        }
      },
      "totalAssets": {
        "signature": "totalAssets() returns (uint256)",
        "selector": "0x01e1d114",
        "description": "Total value of all assets under management. Use to assess vault health.",
        "params": {},
        "returns": {
          "total": "Total USDC value (6 decimals)"
        }
      },
      "maxDeposit": {
        "signature": "maxDeposit(address agent) returns (uint256)",
        "selector": "0x402d267d",
        "description": "Maximum USDC that can be deposited. Returns 0 if vault is paused or full.",
        "params": {
          "agent": "Address of the depositing agent"
        },
        "returns": {
          "max": "Maximum deposit amount in USDC (6 decimals)"
        }
      }
    }
  },
  "abi": {
    "vault": [
      {
        "name": "deposit",
        "type": "function",
        "inputs": [
          {
            "name": "amount",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "shares",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "name": "withdraw",
        "type": "function",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "amount",
            "type": "uint256"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "name": "balance",
        "type": "function",
        "inputs": [
          {
            "name": "agent",
            "type": "address"
          }
        ],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "totalAssets",
        "type": "function",
        "inputs": [],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "exchangeRate",
        "type": "function",
        "inputs": [],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "previewDeposit",
        "type": "function",
        "inputs": [
          {
            "name": "assets",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "previewWithdraw",
        "type": "function",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "balanceOf",
        "type": "function",
        "inputs": [
          {
            "name": "account",
            "type": "address"
          }
        ],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "totalSupply",
        "type": "function",
        "inputs": [],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      },
      {
        "name": "approve",
        "type": "function",
        "inputs": [
          {
            "name": "spender",
            "type": "address"
          },
          {
            "name": "amount",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      }
    ],
    "usdc": [
      {
        "name": "approve",
        "type": "function",
        "inputs": [
          {
            "name": "spender",
            "type": "address"
          },
          {
            "name": "amount",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "type": "bool"
          }
        ],
        "stateMutability": "nonpayable"
      },
      {
        "name": "balanceOf",
        "type": "function",
        "inputs": [
          {
            "name": "account",
            "type": "address"
          }
        ],
        "outputs": [
          {
            "type": "uint256"
          }
        ],
        "stateMutability": "view"
      }
    ]
  },
  "quickstart": {
    "steps": [
      "1. Fetch this file: GET https://tryrodev.xyz/protocol.json",
      "2. Get the vault address from networks.base.contracts.vault.address (mainnet, chainId 8453)",
      "3. Approve USDC: call approve(vaultAddress, amount) on the USDC contract",
      "4. Deposit: call deposit(amount) on the vault contract",
      "5. Check balance: call balance(yourAddress) on the vault contract",
      "6. Withdraw: call withdraw(shares) on the vault contract",
      "Easiest path: point any LLM at the MCP server https://mcp.arcis.money/mcp and ask it to deposit."
    ],
    "mcp": "https://mcp.arcis.money/mcp",
    "sdk": "@tryRodev/sdk",
    "cli": "@tryRodev/cli",
    "skills": "https://tryrodev.xyz/skills/index.json"
  },
  "sdk": {
    "npm": "@Rodev/sdk",
    "github": "https://github.com/Rodev-Protocol/sdk",
    "install": "npm install @Rodev/sdk viem"
  },
  "integrations": {
    "supported": [
      "viem",
      "ethers.js",
      "web3.py",
      "Trust Wallet",
      "Coinbase Agentic Wallets",
      "MCP (any client)",
      "ElizaOS",
      "LangChain",
      "CrewAI",
      "AutoGen",
      "OpenAI",
      "Claude (Anthropic)",
      "Gemini",
      "Grok (xAI)",
      "Coinbase AgentKit",
      "Pydantic AI",
      "Google ADK",
      "GAME (Virtuals)",
      "Vercel AI SDK",
      "OpenClaw",
      "Hermes"
    ],
    "guide": "https://github.com/Rodev-Protocol/docs/blob/main/INTEGRATION.md"
  },
  "status": "live-mainnet",
  "discovery": {
    "llms": "https://tryrodev.xyz/llms.txt",
    "ardCatalog": "https://tryrodev.xyz/.well-known/ai-catalog.json",
    "skills": "https://tryrodev.xyz/skills/index.json"
  }
}