x402-native, pay-per-call. Two HTTP tools an agent pays for inline — no accounts, no keys held. Quotes on Base, Polygon & Arbitrum — pay in USDC from any of them or Solana.
x402-nativemultichaindecision-grade
the gap
A wallet guard like Blockaid tells an agent whether a transaction is malicious — can I sign this? It can't tell the agent should I trade this? — what price actually fills under size, and whether the token is an economic trap. Plexa answers the economic question.
two endpoints, one engine
POST /v1/quote$0.02
Executable liquidity under a given size: real fill price (not mid/spot), price impact (bps), realizable depth, per-leg route, worst-case slippage, confidence. Priced from canonical on-chain quoters, on Base, Polygon & Arbitrum.
POST /v1/pretrade/check$0.05
avoid — only when a trap is proven at that block: nowhere to sell, less than 5% of your size sitting in the pool as the counter asset, or trading switched off by the contract itself. Otherwise clear — no proven traps, which is not “safe”. Plus risk_profile: age, concentration, depth, the amount a sale would be paid from — as numbers; the call is yours. Analysis runs on Base today; you can pay from any of the four rails.
example
// POST /v1/pretrade/check{"token": "0xab3586ab5aeff01888ae5875cce57c30dbbae63b", "sizeUSD": "5000", "chain": "base" }// →{"chain": "base",
"verdict": "avoid",
"triggers": ["EXIT_LIQUIDITY_DRAINED"],
"confidence": "high",
"reasons": ["EXIT_LIQUIDITY_DRAINED: the pools hold $0.02 of counter asset (WETH+USDC) in total against a $5000 position — under 5% of the size you asked about, so the position cannot be exited at this size"],
"risk_profile": {"age": {"ageDays": 363.78 },
"concentration": {"top1SharePct": 93.4764, "top10SharePct": 93.8806 },
"liquidity": {"poolCount": 1, "exitLiquidityUsd": 0.02 },
"oracle": {"source": null },
"transferability": {"hasBlacklist": false, "fingerprints": "none" }},
"quote": {"direction": "buy", "executablePrice": 64.66467444499229, "depthAtSize": 323323.3722249614 }}
executablePrice — how much token 1 USDC buys at the requested size: the real fill, not a mid.
connect & configure
As an MCP tool
Add the Plexa MCP server to any agent (Claude Code / Claude Desktop / any MCP host). It exposes plexa_quote and plexa_pretrade_check. Payment is handled automatically via x402 from a wallet you configure — Plexa never sees the key.
Direct HTTP (x402)
Any x402 client works (e.g. @x402/fetch). Call the endpoint; on 402 the client signs a USDC payment (EIP-3009) and retries — the response is served only after on-chain settle. Pass chain: base / polygon / arbitrum.
Use a dedicated, low-balance wallet. This key signs payments; it is not an API key. Keep it in your environment and let the host expand ${AGENT_WALLET_KEY} — if your MCP host does not support expansion, put the literal value in a file with restrictive permissions and never commit it. Plexa never sees the key: it stays in your client.
Live on npm: @getplexa/mcp — run with npx -y @getplexa/mcp. The public API is live at api.getplexa.com.
open-source reference agent
See Plexa in action
A complete, MIT-licensed reference agent — a dust consolidator that discovers small token balances, checks each through Plexa, and swaps the safe ones. Client-only: it uses nothing but the public API, so it doubles as a working integration pattern you can fork.