Vitro

io.github.kadirzarex/vitro · v1.0.0 · crypto-web3

Vitro is healthy: it completed an MCP handshake in 1846 ms and exposes 30 tools.

Read Vitro markets on Robinhood Chain and prepare unsigned transactions. Unaudited, capped launch.

Endpoint: https://vitro-agent.fly.dev/mcp (streamable-http)

No repository listed · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count30
Latency1846 ms
Last checked (UTC)2026-11-01T19:50:22.919Z

Health history

Checked (UTC)StatusLatencyError
2026-11-01T19:50:22.919ZHealthy1846

Tools (30)

list_marketsAll Vitro markets with status, expiry, caps, totals and price (from the Proof API).
get_marketOne market in detail (Proof API) plus a live price and phase check from the chain.
list_seriesCurrent and past series with settlement round, price and who settled.
get_series_settlementHow a series settled (round id, price, path, caller), or which settlement window applies now and when the next opens.
get_positionA wallet's position: indexed history from Proof plus live collateral, debt, residual, claimable and synth balance from the chain. Omit market for all markets.
get_eventsIndexed events (mints, repays, withdrawals, liquidations, settlements, redemptions, ...), filterable and paginated.
get_statsTVL, fees to the treasury, liquidations and per-market use of caps.
get_healthProof indexer progress and lag versus the chain head.
quote_positionFee, collateral ratio, liquidation price and headroom for depositing collateral and minting, with the contracts' exact math at the current oracle price. Warns when the price is stale or the market is closed. Read-only.
explain_riskPlain-language risk for a position: distance to liquidation, weekend gaps, expiry, settlement rules, USDG pause and freeze risk. Pass owner for a real position, or collateral and debtTokens for a hypothetical one.
prepare_create_positionOpen or add to a position: USDG approval (if needed) and create(collateral, tokens). Enforces the 11 USDG minimum for a new position, both caps and a fresh price. Returns UNSIGNED transaction data (to, data, value, gas) for the user's own wallet; simulated against the latest block first and refused
prepare_depositAdd collateral to an existing position: approval (if needed) and deposit(amount). Checks both caps. Returns UNSIGNED transaction data (to, data, value, gas) for the user's own wallet; simulated against the latest block first and refused if it would revert. Never signs or sends.
prepare_repayBurn synth from the wallet to reduce debt: repay(tokens). "all" repays the whole debt. Returns UNSIGNED transaction data (to, data, value, gas) for the user's own wallet; simulated against the latest block first and refused if it would revert. Never signs or sends.
prepare_withdrawWithdraw collateral: withdraw(amount). "max" withdraws the most the minimum ratio and 10 USDG floor allow. Needs a fresh price when the position has debt. Returns UNSIGNED transaction data (to, data, value, gas) for the user's own wallet; simulated against the latest block first and refused if it wo
prepare_close_and_redeemAfter settlement: withdrawResidual (closes the sponsor position and pays the residual), redeem the wallet's synth if redemption is open, or claim a top-up. Returns UNSIGNED transaction data (to, data, value, gas) for the user's own wallet; simulated against the latest block first and refused if it w
prepare_settleAfter expiry: finds the first Chainlink round at or after expiry, encodes the proof as abi.encode(uint80 roundId) and picks the path that applies now: settle(proof) if that round landed within expiry + maxSettleLag; otherwise guardianSettle(proof) for the guardian Safe, or settleBackstop(proof) for
prepare_mandate_createCreate a mandate account: a smart account that is itself a sponsor, so limits can bind a session key. Existing positions can't be moved into it. The owner can never change: there is no owner recovery. Unaudited. Refused while mandates aren't enabled on this server. Returns UNSIGNED transaction data
prepare_mandate_set_limitsSet an account's limits and, optionally, the markets it may use with a cap for each. Refuses a minimum ratio at or below any market's own minimum. Binds session keys, not the owner. Returns UNSIGNED transaction data for the owner's own wallet; simulated first and refused if it would revert. Never si
prepare_mandate_grant_sessionLet a session key act for the account, inside its limits, on the listed markets until it expires. Replacing a session restarts its mint budget. The key is never held by this server. Returns UNSIGNED transaction data for the owner's own wallet; simulated first and refused if it would revert. Never si
prepare_mandate_revoke_sessionStop one session key, or all of them with all: true. Takes effect in the next transaction. Returns UNSIGNED transaction data for the owner's own wallet; simulated first and refused if it would revert. Never signs or sends.
prepare_mandate_withdrawSend idle tokens from the account to its owner, the only address the contract can send them to. Collateral in a position is not idle. Returns UNSIGNED transaction data for the owner's own wallet; simulated first and refused if it would revert. Never signs or sends.
prepare_mandate_create_positionOpen or add to the account's position: create(collateral, tokens) through the account, which sets its own allowance. Checks the account's limits, then returns UNSIGNED transaction data for the session key, simulated first. Above the approval threshold it returns EIP-712 typed data for the owner inst
prepare_mandate_depositAdd collateral to the account's position. Checks the account's limits, then returns UNSIGNED transaction data for the session key, simulated first. Above the approval threshold it returns EIP-712 typed data for the owner instead, which only works when the owner is an ordinary wallet: it refuses when
prepare_mandate_repayBurn synth held by the account to reduce its debt. "all" repays the whole debt. Works while the price is stale. Checks the account's limits, then returns UNSIGNED transaction data for the session key, simulated first. Above the approval threshold it returns EIP-712 typed data for the owner instead,
prepare_mandate_withdraw_collateralMove collateral from the position back to the account, never to any other address. "max" stops at the account's minimum ratio. Checks the account's limits, then returns UNSIGNED transaction data for the session key, simulated first. Above the approval threshold it returns EIP-712 typed data for the
prepare_mandate_close_and_redeemAfter settlement: withdrawResidual, redeem and claim, paid to the account. Checks the account's limits, then returns UNSIGNED transaction data for the session key, simulated first. Above the approval threshold it returns EIP-712 typed data for the owner instead, which only works when the owner is an
prepare_mandate_settleAfter expiry: settle(proof) through the account, only while the first round landed inside the lag. Other settlement paths are not agent actions: use prepare_settle from an ordinary wallet. Checks the account's limits, then returns UNSIGNED transaction data for the session key, simulated first. Above
prepare_mandate_owner_repayBurn synth held by the account to reduce its debt. "all" repays the whole debt. For the owner only: works with every session key revoked, ignores session limits, and still follows the market's rules. It prepares exactly this one market call and nothing else. Returns UNSIGNED transaction data for the
prepare_mandate_owner_withdraw_collateralMove collateral from the position to the account. "max" is the most the market allows. For the owner only: works with every session key revoked, ignores session limits, and still follows the market's rules. It prepares exactly this one market call and nothing else. Returns UNSIGNED transaction data
prepare_mandate_owner_withdraw_residualAfter settlement: close the account's position and pay the residual to the account. For the owner only: works with every session key revoked, ignores session limits, and still follows the market's rules. It prepares exactly this one market call and nothing else. Returns UNSIGNED transaction data for