---
name: rialto
description: Venice AI agent kit for Robinhood Chain. Use when an agent needs to hold USDG on Robinhood Chain, pay x402 endpoints in USDG, read tokenized stock prices or wallets on Robinhood Chain, or fund and call Venice AI from the same wallet without an API key.
---

# Rialto

Rialto gives an agent one EVM wallet that lives on Robinhood Chain (chain id 4663) and pays for everything it uses:

- **USDG payments** to any x402 endpoint on Robinhood Chain (v1 or v2, `exact` scheme, EIP-3009 on USDG, no gas).
- **Venice AI inference** paid from that same wallet: `rialto fund <usdg>` bridges USDG to USDC on Base and tops up the wallet's Venice credit. Every Venice call then carries a signed `SIGN-IN-WITH-X` header.
- **Robinhood Chain reads**: chain status, ETH and USDG balances, wallet reports, tokenized stock prices (AAPL, TSLA, NVDA and any ticker), top pools.

## Install

```bash
npx rialto-kit init          # creates ~/.rialto/config.json with a fresh wallet
```

Or from the hosted tarball when the package is not on npm yet:

```bash
npx https://rialto.casa/downloads/rialto-kit-0.1.0.tgz init
```

Then fund the printed address on Robinhood Chain: USDG for spending plus a few cents of ETH for gas.

## Commands

| Command | What it does |
|---|---|
| `rialto init [--venice-key <key>]` | Create or show the wallet. Optional API-key mode for Venice. |
| `rialto status` | Balances on Robinhood Chain, Venice credit, chain status. |
| `rialto fund <usdg>` | USDG -> USDC on Base (Relay, Across fallback) -> Venice top-up. Raises the amount itself so at least 5 USD land at Venice after bridge fees. |
| `rialto chat "<prompt>" [--web] [-m model]` | Ask Venice. |
| `rialto agent "<goal>" -b <usd>` | Budgeted reference agent with chain tools and x402 payments. |
| `rialto pay <url> [--dry-run] [--max <usdg>]` | Fetch a URL, pay in USDG if it answers 402. |
| `rialto stocks price <ticker>` / `find` / `pools` / `list` | Tokenized stocks and pools on Robinhood Chain. |
| `rialto wallet <address>` | Read-only wallet report. |
| `rialto send <to> <usdg>` | Transfer USDG. Irreversible. |
| `rialto quote <usdg>` / `rialto bridge <usdg>` / `rialto topup <usd>` | Bridge pieces, individually. |
| `rialto venice balance` / `ledger` / `models` / `search "<q>"` | Venice account and web search. |
| `rialto mcp` | Start the MCP server on stdio. |
| `rialto config [key] [value]` | `defaultModel`, `agentBudgetUsd`, `maxPaymentUsdg`, `payAllowlist`, `veniceApiKey`. |

## MCP

Local (full tools, has the wallet):

```json
{ "mcpServers": { "rialto": { "command": "npx", "args": ["-y", "rialto-kit", "mcp"] } } }
```

Hosted, read-only, no install: `https://rialto.casa/mcp` (mirror: `https://rialto-kit.higgsfield.app/mcp`) (Streamable HTTP, stateless).

Tools: `rialto_wallet`, `hood_chain_status`, `hood_balances`, `hood_wallet_report`, `hood_stock_price`, `hood_stock_find`, `hood_top_pools`, `hood_send_usdg`, `x402_pay`, `venice_chat`, `venice_web_search`, `venice_models`, `venice_balance`, `venice_transactions`, `rialto_quote_bridge`, `rialto_fund_venice`, `rialto_agent`.

## Guardrails an agent must respect

- `maxPaymentUsdg` (default 1) caps one x402 payment. `payAllowlist` restricts hosts.
- `agentBudgetUsd` (default 1) caps one `rialto agent` run, measured from Venice's `X-Balance-Remaining`.
- `hood_send_usdg` and `rialto_fund_venice` move real funds. Confirm with the user before calling them.
- The private key never leaves `~/.rialto/config.json` (mode 600) or `RIALTO_PRIVATE_KEY`.

## Facts the code relies on (verified 2026-09-09)

- USDG on Robinhood Chain: `0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168`, 6 decimals, EIP-712 domain `Global Dollar` v`1`, supports `transferWithAuthorization` (EIP-3009) and `permit`.
- Venice x402: prepaid USD ledger per wallet, top-up with USDC on Base (`eip155:8453`) or Solana, minimum 5 USD. Auth header `SIGN-IN-WITH-X`.
- Relay and Across both bridge USDG (4663) to USDC (8453) in about 2 seconds for roughly 0.1 percent.
