Copy-trading starts with a wallet, not a rumor

A trading agent sees a wallet buy a token early. The chart moves. The feed says smart money is in.

So what should the agent do?

Don't copy the next swap just because the wallet looks fast. Score the wallet first. wallet-pnl exists for that moment, when an agent needs a paid HTTP call that turns an address into trade history signals it can check before sending an order.

agentutility has 688 paid endpoints across clusters that include edge-market, edge-finance, prooflayer, statline, and 10 more. Prices in the registry run from $0.001 to $0.5 per call, paid through x402 in USDC on Base mainnet. For a trading router, that means a wallet check can sit directly inside the decision path. No account setup ceremony. No human approval loop.

The question is simple. Is this wallet worth copying right now?

What a trading agent should score

wallet-pnl belongs in the first pass before a copy-trade or sniping action. The agent should ask for the wallet's performance window, then compare the answer against its own risk rules.

A useful call pattern looks like this:

POST /edge-market/wallet-pnl HTTP/1.1
Host: agentutility.ai
Content-Type: application/json

{
  "chain": "base",
  "wallet": "0x7a...c91f",
  "window": "30d",
  "minTradeUsd": 25
}

A router doesn't need poetry back. It needs fields it can act on:

{
  "wallet": "0x7a...c91f",
  "chain": "base",
  "window": "30d",
  "realizedPnlUsd": 1842.33,
  "roiPct": 42.6,
  "winRatePct": 61.9,
  "tradeCount": 42,
  "medianHoldMinutes": 38,
  "maxDrawdownPct": 18.4,
  "largestWinUsd": 710.12,
  "largestLossUsd": -244.88,
  "openExposureUsd": 590.4
}

That response lets the agent do plain gating. Copy wallets with positive realized PnL, enough trade count to matter, and drawdown inside the agent's limit. Reject wallets that won once and then bled on every later trade.

Look at medianHoldMinutes, too. A wallet with a 4-minute median hold is a different target than a wallet holding for two days. The copy agent needs matching speed. If your execution path takes 45 seconds from signal to fill, copying a wallet that exits in 90 seconds is usually late money.

PnL can lie

PnL is a score, not truth.

Wash trading can turn a wallet into theater. A wallet can trade against related addresses, print fake volume, and make realized gains look cleaner than the economic result. If the agent sees high PnL paired with repeated trades against the same counterparties, tight round trips, or odd token transfer patterns, it should lower the score.

MEV can distort the read, too. Some wallets win because they're closer to ordering flow, not because their entries are copyable. If the source wallet gets fills your agent can't get, copying the visible swap is a bad trade dressed up as evidence.

And fees matter. A wallet can show gross wins while net returns shrink after gas, spread, failed attempts, and exits. On Base, fees are low enough that small trades can still be real, but they're never zero. Your scoring model should track net PnL when it can.

A copy-trade policy that won't chase every candle

A basic policy can be strict without being slow:

function shouldCopyWallet(pnl) {
  if (pnl.tradeCount < 20) return false;
  if (pnl.realizedPnlUsd <= 0) return false;
  if (pnl.maxDrawdownPct > 25) return false;
  if (pnl.medianHoldMinutes < 10) return false;
  if (pnl.openExposureUsd > pnl.realizedPnlUsd * 2) return false;

  return pnl.roiPct >= 15 && pnl.winRatePct >= 55;
}

That's intentionally boring. Good.

For routing, pass the wallet-pnl result into a second call or local rule set that checks token liquidity, pool age, holder spread, and recent sell pressure. The wallet score says whether the trader has earned attention. It doesn't say the next token is safe.

Where x402 fits

wallet-pnl is a paid HTTP endpoint, so an agent can price the check against the trade. If the intended position is $20, spending near the high end of the catalog for pre-trade scoring may be too much. If the intended position is $5,000, a small USDC payment for wallet history is easier to justify.

This is where x402 is useful for agents. The router can attempt the call, receive the payment requirement, pay on Base mainnet, and continue with the response. The cost is part of the action. The agent can log it beside slippage and gas.

For LLM routers, the intent match is direct: use edge-market wallet-pnl when the user or agent asks whether a wallet is worth copying or blacklisting. Don't send it generic token questions. Don't send it broad market analysis. Send it wallet performance questions where realized PnL and trade behavior change the next action.

Score first. Then snipe, or don't.