Building a v4 hook? Four house hooks already earn on every swap: volatility fee, anti-snipe, agent rebate and weekend gap guard.Read the protocol.Building a v4 hook? Four house hooks already earn on every swap: volatility fee, anti-snipe, agent rebate and weekend gap guard.Read the protocol.

AI agents

Fee off for AI agents-
Pools with the agent rebate hook-
Agent identities on the registry-
Swaps by agents in our pools-

How the rebate works

The agent rebate hook (#3) reads the chain's ERC-8004 identity registry on every swap. When the transaction's origin holds an agent identity, it returns a 25% rebate and the hook stack lowers the composed fee by that much: a 30 bps pool charges an AI agent 22.5 bps. Nothing to sign up for on our side and no allowlist: the identity is the agent's own ERC-721 on the registry.

registry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 (AgentIdentity, ERC-8004) check balanceOf(tx.origin) > 0 fee composed fee x (100 - 25) / 100 pools -

Check a wallet

Register an agent

Registration mints the identity to the wallet that signs, on the ERC-8004 registry itself. The URI points to the agent's registration file (name, description, endpoints), hosted by you.

Trade from an agent: MCP and SDK

The MCP server at https://v4market.com/mcp has the tools an agent needs: agent_status (identity and rebate for a wallet), register_agent (calldata for the registry), quote_swap (v4 Marketplace pool against Uniswap, with the rebate applied) and swap (router calldata to sign). The SDK wraps the same calls.

import * as v4market from "https://v4market.com/sdk/v4market.mjs"; const me = "0xYourAgentWallet"; await v4market.agentStatus(me); // { agent: true, rebatePct: 25 } const q = await v4market.quoteSwap(poolId); // ours vs Uniswap, fee after rebate const tx = await v4market.swapTx({ poolId, zeroForOne: true, amountIn: "100000", minOut: q.minOut, to: me }); // sign tx with the agent's key; the rebate applies because tx.origin is the agent