# aeX402 — Cross-Chain DeFi MCP: LINQ, AMM, Bridge, AI

> Agent MCP for DeFi: cross-chain LINQ fan-out, AMM quotes/swaps, bridge, AI. Solana+EVM. Free+x402.

- name: com.aex402/rpc
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 79/100 flags: no-repository
- quality: 76/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.aex402%2Frpc
- tools: https://api.protogrid.dev/v1/servers/com.aex402%2Frpc/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "rpc": {
      "type": "http",
      "url": "https://rpc.aex402.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 98
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-96% ~updated-84d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 76/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: solana_getLatestBlockhash (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); aex402_buildSwap (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); agent_delegate (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 6,852 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 3 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 33, about 6,852 tokens to load them all
- tool set hash: 4cf07acf1150e3f47684dd278ec0a1bb
- tools last changed: 2026-09-25T10:51:16.258Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.aex402/rpc.svg)](https://protogrid.dev/servers/com.aex402/rpc)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-09-25 `launch_token` changed (description)
  - before: Launch a memecoin on the aeX402 launchpad on Robinhood Chain (EVM 4663) for a FIXED pump.fun-style bonding curve (1B supply, starts 0.0001 USDG, graduates at 10,000 USDG raised, quoted in USDG). You supply only identity — name + ticker (+ optional description/image/links). DEFAULT (custodial): the aeX402 backend SIGNS + SUBMITS the createVPool tx for you, so a claude.ai user with NO WALLET can launch in one call; returns {ok,status,txHash,vpId}. Optionally pass `creator` (a 0x address) to record as the coin owner. Pass build:true instead to get an UNSIGNED tx {to,value,data} to submit yourself (non-custodial — that requires `creator` and makes you the on-chain creator). A custodial call SIMULATES first, so a failure burns no gas: status "gated" means createVPool reverts in simulation (cause not determined — likeliest are the ticker still being claimed by a bonding coin, this vpId being taken, or the launchpad facet/USDG allowlist not being enabled yet; see `detail`/`revertData`), and status "unreachable" means the chain could not be reached, which is retryable.
  - after: Launch a memecoin on the aeX402 launchpad on Robinhood Chain (EVM 4663) for a FIXED pump.fun-style bonding curve (1B supply, starts 0.0001 USDG, graduates at 10,000 USDG raised, quoted in USDG). You supply only identity — name + ticker (+ optional description/image/links). DEFAULT (custodial): the aeX402 backend SIGNS + SUBMITS the createVPool tx for you, so a claude.ai user with NO WALLET can launch in one call; returns {ok,status,txHash,vpId}. Optionally pass `creator` (a 0x address) to record as the coin owner. Pass build:true instead to get an UNSIGNED tx {to,value,data} to submit yourself (non-custodial — that requires `creator` and makes you the on-chain creator). A custodial call SIMULATES first, so a failure burns no gas: status "gated" means createVPool reverts in simulation (cause not determined — likeliest are the ticker still being claimed by a bonding coin or this vpId being taken; see `detail`/`revertData`), and status "unreachable" means the chain could not be reached, which is retryable. The launchpad is NOT chain-gated: createVPool simulates clean from an arbitrary sender (measured 2026-09-25).
- 2026-09-24 `launch_token` changed (description)
  - before: Launch a memecoin on the aeX402 launchpad on Robinhood Chain (EVM 4663) for a FIXED pump.fun-style bonding curve (1B supply, starts 0.0001 USDG, graduates at 10,000 USDG raised, quoted in USDG). You supply only identity — name + ticker (+ optional description/image/links). DEFAULT (custodial): the aeX402 backend SIGNS + SUBMITS the createVPool tx for you, so a claude.ai user with NO WALLET can launch in one call; returns {ok,status,txHash,vpId}. Optionally pass `creator` (a 0x address) to record as the coin owner. Pass build:true instead to get an UNSIGNED tx {to,value,data} to submit yourself (non-custodial — that requires `creator` and makes you the on-chain creator). Live create is gated on the launchpad facet upgrade (pending); until enabled a custodial call returns status "gated" and burns no gas.
  - after: Launch a memecoin on the aeX402 launchpad on Robinhood Chain (EVM 4663) for a FIXED pump.fun-style bonding curve (1B supply, starts 0.0001 USDG, graduates at 10,000 USDG raised, quoted in USDG). You supply only identity — name + ticker (+ optional description/image/links). DEFAULT (custodial): the aeX402 backend SIGNS + SUBMITS the createVPool tx for you, so a claude.ai user with NO WALLET can launch in one call; returns {ok,status,txHash,vpId}. Optionally pass `creator` (a 0x address) to record as the coin owner. Pass build:true instead to get an UNSIGNED tx {to,value,data} to submit yourself (non-custodial — that requires `creator` and makes you the on-chain creator). A custodial call SIMULATES first, so a failure burns no gas: status "gated" means createVPool reverts in simulation (cause not determined — likeliest are the ticker still being claimed by a bonding coin, this vpId being taken, or the launchpad facet/USDG allowlist not being enabled yet; see `detail`/`revertData`), and status "unreachable" means the chain could not be reached, which is retryable.
- 2026-09-24 `launch_token` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/com.aex402%2Frpc/changes

## Remotes

- https://rpc.aex402.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.95535713)

## Packages

_none_

## Tools (33)

- `aex402_buildSwap`: Build an AeX402 AMM swap action. Fetches live pool state, computes output with slippage protection, returns all instruction parameters and account addresses for client signing.
- `aex402_getPool`: Get detailed AeX402 pool info: token mints, balances, fee, amplification, LP supply, analytics (OHLCV candles), circuit breaker status.
- `aex402_listPools`: List all AeX402 AMM pools on Solana. Returns pool addresses with basic info (mints, balances, fee, amp). Pools are 1024-byte accounts owned by program 3AMM53MsJZy2Jvf7PeHHga3bsGjWV4TSaYz29WUtcdje.
- `aex402_quote`: Get a swap quote from an AeX402 pool. Calculates expected output, price impact, and fees without executing.
- `aex402_rh_pool`: Get the live state of the aeX402 AMM on Robinhood Chain (EVM 4663) — the diamond-contract port of the Solana AMM. The AMM is the set of GRADUATED launchpad coins whose pools are seeded in-diamond on the canonical launchpad (0xED2F); this enumerates them live by scanning VPoolGraduated events + reading each pool's reserves, so it tracks reality as coins graduate. Returns graduatedPools[] (poolId, token, reserves, TVL), graduatedPoolCount, and status ("live" | "no-graduated-pools" | "unknown"), plus the legacy standalone 0xA1F6 USDG/WETH pool (legacy-drained). Distinct from the chain's Uniswap-fork DEX. No inputs.
- `agent_delegate`: Delegate a task to an independent specialist AI agent session. The delegate runs with full tool access and returns its response. Useful for breaking complex tasks into subtasks. Max depth: 3.
- `ai_chat`: Send a chat completion request to the aeX402 AI Router. Free tier: 3 calls/day. Paid: deducts credits based on token usage.
- `api_get`: GET any public read endpoint of rpc.aex402.com: /health, /credits?wallet=, /pumpfun?limit=, /pumpfun/tuple?mint=, /security/<pool>, /market/list, /sniper/leaderboard, /sniper/bets?id=, /settlement/<sig>, /settlements/<wallet>, /ai/models, /ai/stats, /leaderboard, /openapi.json, /llms.txt, /rh/pools (Robinhood), /hl/pools (HyperEVM), /base/pools (Base Uniswap v3), /eth/pools (Ethereum Uniswap v3), /arb/pools (Arbitrum Uniswap v3)
- `bridge_quote`: Bridge/swap ANY asset across ANY chain via LI.FI (the engine behind Jumper) — e.g. Arbitrum USDC → Robinhood Chain (4663) USDG, or bridge into ETH for gas. Returns the best route (estimated output, fees, bridge used, duration) PLUS an unsigned transactionRequest (to/data/value/gasLimit) that the CALLER signs and submits on the fromChain — no keys are held here. Chains by id or key (1 Ethereum, 42161 Arbitrum, 8453 Base, 10 Optimism, 137 Polygon, 999 HyperEVM, 4663 Robinhood Chain). Tokens by symbol or 0x address.
- `bridge_status`: Track a cross-chain bridge submitted via bridge_quote — returns DONE / PENDING / FAILED plus the receiving-chain tx once it completes. Pass the source-chain tx hash (and the bridge tool from the quote for a faster lookup).
- `describe_program`: Introspect ANY specific program/contract address on a chain. Solana/Slonana: returns executable, owner, data size, and whether it is a known program. EVM: RPC-verified facts (is-contract, code size, ERC-20 name/symbol/decimals, EIP-1967 proxy → implementation) PLUS Blockscout explorer enrichment when available.
- `discover_programs`: Discover on-chain programs/contracts across every chain this RPC supports (Solana, Slonana SVM, Robinhood, HyperEVM, Ethereum, Base, Stable, Plasma, Tempo, Codex). Returns a curated seed MERGED with programs/contracts AUTO-DISCOVERED from recent block activity (refreshed hourly) — each carries an `activity` count of recent invocations/calls; entries with type "discovered" were seen live on-chain but not yet named. Use this to learn what is actually active on-chain right now, then describe_program to introspect any specific address.
- `discovery_health`: Report the freshness and health of the cross-chain program/token discovery pipeline: when the hourly cron last ran, how many programs/tokens each chain scan produced, and which scans failed. Use this to check whether discover_programs / search_tokens data is current before relying on it.
- `evm_rpc`: Call ANY EVM JSON-RPC method on a supported chain — eth_getBalance, eth_call, eth_blockNumber, eth_sendRawTransaction, eth_getLogs, ... Chains: robinhood (4663) / robinhood-testnet (46630), hyperevm (999), ethereum (1), base (8453), stable (988), plasma (9745), tempo (4217), codex (81224), arc (5042, Circle mainnet).
- `fetch`: Fetch the full document for one search result id (from the search tool). Accepts token:<chain>:<address>, program:<chain>:<address>, or pool:<address>. Returns the entity detail (on-chain state for pools, census entry for tokens, registry/introspection for programs) as a document.
- `hl_info`: Query the Hyperliquid Info API — the perps/spot order-book data layer (read-only, no auth). The 'type' field selects the query: meta (perps universe + leverage), l2Book (order book for a coin), allMids (mid prices), clearinghouseState (a user's positions/margin), spotMeta, meta+assetCtxs (mark/funding/OI), candleSnapshot, and more. For type:metaAndAssetCtxs specifically: the raw response is TWO PARALLEL top-level arrays (universe names, asset contexts) correlated only by array position — do not try to read/scan it directly for '200+ coins' style questions (funding-rate outliers, biggest open interest, highest volume). Pass rankBy instead: it joins the two arrays server-side, sorts, and returns only the top N — the correct way to answer 'what has the highest/most extreme funding/OI/volume right now'.
- `launch_token`: Launch a memecoin on the aeX402 launchpad on Robinhood Chain (EVM 4663) for a FIXED pump.fun-style bonding curve (1B supply, starts 0.0001 USDG, graduates at 10,000 USDG raised, quoted in USDG). You supply only identity — name + ticker (+ optional description/image/links). DEFAULT (custodial): the aeX402 backend SIGNS + SUBMITS the createVPool tx for you, so a claude.ai user with NO WALLET can launch in one call; returns {ok,status,txHash,vpId}. Optionally pass `creator` (a 0x address) to record as the coin owner. Pass build:true instead to get an UNSIGNED tx {to,value,data} to submit yourself (non-custodial — that requires `creator` and makes you the on-chain creator). A custodial call SIMULATES first, so a failure burns no gas: status "gated" means createVPool reverts in simulation (cause not determined — likeliest are the ticker still being claimed by a bonding coin or this vpId being taken; see `detail`/`revertData`), and status "unreachable" means the chain could not be reached, which is retryable. The launchpad is NOT chain-gated: createVPool simulates clean from an arbitrary sender (measured 2026-09-25).
- `mcp_call`: Call a tool on another MCP server this RPC federates with, for tools that have no equivalent in solana_rpc/evm_rpc (no underlying JSON-RPC method — e.g. Slonana's aea_list_services/aea_resolve agent registry). Known servers: slonana. Call that server's tools/list first if you don't know its tool names.
- `mcp_linq`: Primary LINQ-style MCP workflow tool. Run one bounded MCP call: fan out up to 32 READ-ONLY tool calls across chains, then compose the combined result with fluent chains like results.selectMany(...).where(...).groupBy(...).orderByDesc(...).take(...), JSON pipeline steps, or reducers. Use mcp_linq when you want one aggregate answer instead of N tool calls.
- `payment_help`: How to pay for API access (x402 micropayments) — the complete self-serve guide for agents: current prices, every accepted asset/chain (USDC/USDT/SOL/ANSEM on Solana, ETH/USDG on Robinhood Chain, USDC/HYPE on HyperEVM), the merchant addresses, step-by-step topup → session-token → API-key flow, and how to attach credentials to MCP calls. This tool is FREE and NEVER rate-limited — call it when you hit a 402 / rate limit to convert into a paid session ($0.01 minimum buys 100 calls, no signup).
- `reconstruct_abi`: Reconstruct a PARTIAL function/event interface for an EVM contract on a supported EVM chain from its BYTECODE — no source or verification needed. Extracts PUSH4 function selectors + recent event topic0 hashes and resolves the ones public signature DBs (openchain/4byte) know to human signatures. Works on UNVERIFIED contracts because bytecode is ground truth, but it is NOT a full ABI: novel/proprietary selectors DBs have never seen stay unresolved (decompile for those). Use it to understand what an unknown contract does before trusting behavior-based guesses.
- `search`: Search the aeX402 universe by keyword: tokens (Robinhood Chain + HyperEVM census), known programs/contracts (Solana, Robinhood, HyperEVM, Slonana), and live AeX402 AMM pools. Returns a result list; pass a result id to the fetch tool for full detail. Use the specialist tools (search_tokens, discover_programs, aex402_listPools) when you already know the entity type.
- `search_tokens`: Search the live token/NFT census for Robinhood Chain (4663) and HyperEVM (999) by symbol or name. Returns matching tokens with address, standard (erc20/erc721/erc1155), decimals, holders, market cap, and — for HyperEVM canonical tokens — live spot price + 24h volume. The census is refreshed hourly (canonical tokens from Hyperliquid spotMeta, top tokens from Blockscout, spam-filtered). Use this instead of discover_programs when you want a specific asset (e.g. "USDC on hyperevm", "stablecoins on robinhood") rather than the whole list.
- `solana_buildTransfer`: Build a SOL or SPL token transfer instruction. Returns instruction JSON (programId, keys, data) for client-side TX construction and signing.
- `solana_getAccountInfo`: Get raw account info (owner, lamports, data) for any Solana address.
- `solana_getBalance`: Get SOL balance for a wallet address (in lamports). Divide by 1e9 for SOL.
- `solana_getLatestBlockhash`: Get latest blockhash for transaction building. Returns blockhash + lastValidBlockHeight.
- `solana_getSignaturesForAddress`: Get recent transaction signatures for an address. Returns up to 20 most recent.
- `solana_getSlot`: Get the current slot number.
- `solana_getTokenAccountsByOwner`: Get all SPL token accounts owned by a wallet. Returns mint, balance, decimals for each token.
- `solana_getTransaction`: Get full transaction details by signature, including instructions, logs, and status.
- `solana_rpc`: Call ANY Solana-compatible JSON-RPC method by name — full RPC surface beyond the typed solana_* tools (getProgramAccounts, getBlock, getEpochInfo, simulateTransaction, ...). Defaults to Solana mainnet; pass network:slonana to query Slonana (rpc.slonana.com), which additionally exposes RPC methods no other network has: getAlpenglowHealth (consensus migration status), getBridgeStatus, getAexchanRelays, getValidatorStats, quote. (listSvmNetworks/enableSvmNetwork/disableSvmNetwork/setNetworkRpcUrl also exist but are inert API-compat stubs — listSvmNetworks always reports one hardcoded network and the enable/disable/set calls ignore their arguments and return true; verified in source, not live network-management controls.) For tools that exist ONLY on Slonana's MCP server with no RPC-method equivalent (the aea_* agent registry), use mcp_call instead.
- `solana_sendTransaction`: Submit a signed transaction to the network. Returns transaction signature.
