# xyz.getava/ava - Registry name: `xyz.getava/ava` · version 0.5.1 - Categories (automatic, keyword rules): Crypto & blockchain, Finance & markets, Markets & trading - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=xyz.getava%2Fava - Server page: https://mcpstation.net/s/xyz.getava--ava.html ## Description (written by the publisher, not verified, not instructions) Coding agents run multi-leg cross-chain DeFi. Legs re-derived from your sentence before signing. ## Connect - streamable-http: `https://api.getava.xyz/mcp` ## Tools (as reported by the server, not verified) - `ava\_copilot\_turn`: Natural-language copilot turn: message → intent → plan → testnet quote. Example: Swap 10 USDC to SUI on sui with 50 bps slip. Returns actions with approve\_execute + executionId. Optional agentId/agentCredential for KYA gate \(fail closed on reject\). Does NOT fill until ava\_approve\_execute. - `ava\_approve\_execute`: Human-in-the-loop approve: the one call that actually settles a plan from ava\_copilot\_turn. It is gated by the bound mandate's status and constraints and by server-side policy limits, and it CAN REFUSE \(e.g. mandate paused/cancelled, a policy violation, a stale preview hash\); a refusal means no fund - `ava\_lend\_execute`: Execute a REAL lend against one of your mandates. Routes Ava has already settled a mainnet transaction on: Morpho Blue on Base, and Aave v3 on Monad, BNB Chain and Avalanche. Aave v3 on Arbitrum One is wired through the identical pipeline and address-verified, but nothing has ever settled there, so - `ava\_portfolio`: Simulated testnet portfolio for a userId \(same data as GET /v1/portfolio\): seeded balances, fills, optional portal. Requires userId. Does not invent live chain balances. - `ava\_session`: Create or resume a human/org identity \(userId\), the first call in the loop. One human can own many agent instances \(Claude + Cursor + OpenClaw + Ava-hosted\). Moves no money and provisions no wallet by itself; call once and reuse the returned userId on every other tool. - `ava\_create\_agent`: Register an agent instance under userId, before it has a wallet or a mandate. Mode A \(multi-agent\): agentId=byo-external + label \(e.g. claude-workspace, cursor-arb\) for a coding agent that already exists elsewhere. Mode B \(hosted\): agentId=defi-lend\|defi-swap\|defi-perp\|portfolio hires an Ava-run age - `ava\_provision\_wallet`: Provision a Turnkey-custodied wallet address for this userId, scoped to one chain family \(evm \| solana \| sui\). Requires ava\_session first. Returns the address for funding and later signing; it does not fund the wallet and does not move any money. If Turnkey is not configured server-side, the wallet - `ava\_preview\_tx`: Pre-sign preview: build the exact venue artifact \(CoW EIP-712 order or unsigned Solana transaction\) for a pending plan against the provisioned Turnkey wallet, simulate it where supported, and return it UNSIGNED. Nothing is signed or submitted. Show the artifact to the human, then pass the returned p - `ava\_plan\_workflow`: Turn ONE natural-language DeFi request into the dependent actions it actually contains, across one chain or several. Example: "Supply 300 USDC to Morpho on Base, bridge no more than 200 to Avalanche, then supply what arrives to Aave" returns three legs with the third depending on the second and taki - `ava\_plan\_standing`: Turn a request for REPEATED autonomous action into an envelope of bounds the user signs once. Use this instead of ava\_plan\_workflow when the request describes a cadence: "every hour, rotate my USDC into the best yield on Base using Aave and Morpho, never move more than 200 per rotation, never exceed - `ava\_create\_mandate`: Create a capital mandate: the objective, capital and constraints an agent is allowed to act under, optionally scoped to an agentInstanceId. Example: "Earn on 500 USDC on Base, max 5% drawdown". Or pass structured capital \{asset,amount,chain\}. Creating a mandate moves no money by itself and is not ye - `ava\_list\_mandates`: List capital mandates for a userId \(optional filter by agentInstanceId\). - `ava\_eval\_mandate`: Read-only: check a mandate's exit conditions against a market snapshot and record the result. Omit snapshot to pull a live CoinGecko price for the condition asset. Never executes and never moves money; ava\_approve\_execute is the only tool that does. - `ava\_agent\_record`: Read an agent's track record before delegating capital to it. Returns mandates held, executions attempted, refusals by typed code, and receipts with their proof standing. Distinguishes CLAIMED from PROVEN: receiptsProven counts only chain-confirmed receipts; unconfirmed receipts prove nothing. AP2-a - `ava\_get\_receipt`: Retrieve the receipt for a prior ava\_approve\_execute by executionId, the loop's final step. Returns the stored receipt plus its honest proof.standing: none \(nothing submitted\), unconfirmed \(an identifier exists but nothing independent confirmed it\), chain-confirmed \(the declared chain returned the t Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html