# Plexa Rug Check — Pre-Trade Token Safety Check

> Plexa Rug Check — Pre-Trade Token Safety Check is a paid API for AI agents from api.getplexa.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-14).

Checks whether an ERC-20 token on Base (or supported L2s) is provably unsellable right now by detecting on-chain traps: no liquidity pool, insufficient exit liquidity relative to trade size, or a disabled trading gate (honeypot pattern).

## Facts

- Endpoint: POST https://api.getplexa.com/v1/rug-check
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/plexa-rug-check-pre-trade-token-safety-check-f32e08f9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_wiwOJRIVdAri4fOam_oGz

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability plexa-rug-check-pre-trade-token-safety-check-f32e08f9 -d '<json body>'
```

Example prompt: Before I buy, can you run a rug check on token 0x4200000000000000000000000000000000000006 on Base for a $2000 position size — I want to know if there's a honeypot trap or if I'd be able to exit?

## When to prefer this

Use this endpoint when you need a fast, on-chain-provable pre-trade safety check specifically on Base (or supported L2s) before executing a token buy. Prefer it over generic token scanners when you need an objective, measurable verdict (no pool, insufficient liquidity, trading gate off) rather than a predictive or heuristic score. Especially valuable for automated trading bots or agents that need a programmatic go/no-go signal tied to a specific USD position size.

## Known failure modes

- 400 — token parameter is a symbol (e.g. 'WETH') instead of a 0x hex address
- 422 — non-Base chain specified (chains other than Base currently not supported for calibrated safety flags)
- Invalid sizeUSD format — comma-separated numbers or non-numeric strings are rejected
- Malformed token address (not matching 0x + 40 hex pattern)

## How this service works

Plexa /v1/pretrade/check — pre-trade token safety check on Base: can you still sell this token? avoid fires only on a trap proven on-chain now: no pool to exit into, an exit pot under 5% of your size, or the trading gate off (the honeypot shape). A drained pot is what a rug leaves behind — measured, not predicted. clear = no provable trap, NOT safe. Alias: same engine and price as /v1/pretrade/check.

## Output

Returns a structured verdict indicating whether a provable on-chain trap exists for the token: flags for no liquidity pool, insufficient exit liquidity relative to the requested USD size (under 5% threshold), or a disabled trading gate (honeypot). Also returns an executable quote sub-result calibrated to the requested sizeUSD. A 'clear' result means no provable trap was detected — explicitly not a safety guarantee.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "chain": {
   "enum": [
    "base",
    "polygon",
    "matic",
    "arbitrum",
    "arbitrum-one",
    "arb",
    "eip155:8453",
    "eip155:137",
    "eip155:42161"
   ],
   "type": "string",
   "description": "Optional, default \"base\". One of: base | polygon | matic | arbitrum | arbitrum-one | arb | eip155:8453 | eip155:137 | eip155:42161 — case-sensitive (see `enum`). The safety flags are Base-tuned, so a non-base value currently answers 422 rather than returning Base-calibrated flags for another chain."
  },
  "token": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{40}$",
   "description": "ERC-20 to vet before buying. 0x + 40 hex (see `pattern`) — a symbol like \"WETH\" is rejected with 400."
  },
  "sizeUSD": {
   "type": "string",
   "pattern": "^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$",
   "maxLength": 78,
   "description": "Optional USD notional for the executable-quote sub-result, default \"1000\". A STRING, not a number; positive, no thousands separator (\"1,000\" is rejected) — see `pattern`."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/plexa-rug-check-pre-trade-token-safety-check-f32e08f9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.getplexa.com](https://www.zero.xyz/host/api.getplexa.com/llms.txt)
