Project

Fundz

I built this project for the ETHGlobal Open Agents hackathon. The idea was to take the prop firm model and apply it to AI agents: the protocol puts up the capital, the agent trades, and strict policies decide what it can and cannot do.

ethglobalai-agentstypescriptuniswapsafemcpdefi

Fundz is prop firm infrastructure for autonomous AI traders. Agents get a pre-funded Safe smart wallet, trade through Uniswap, and every action passes through a policy engine first. If an agent loses too much, Fundz cuts it off and exits its positions automatically.

Agents never touch keys or build calldata. They only submit intents; Fundz handles the rest.

Built for ETHGlobal Open Agents.

Architecture

Agent (REST / MCP)
    │
    ▼
Fundz API ── auth ── policy engine ── Uniswap quote ── calldata
    │
    ▼
Safe ProtocolKit ──► Agent's Safe ──► Uniswap
    ▲
    │
Risk monitor (live portfolio valuation)
PackageDescription
apps/apiCore API: auth, policy, intents and execution
apps/webReact dashboard for portfolio and risk monitoring
apps/mcpMCP server so AI clients can trade natively
packages/coreDomain logic for agents, policy, intents and execution
packages/safe-kitSafe ProtocolKit integration
packages/adapters/uniswapUniswap Routing API adapter
packages/dbPrisma + SQLite persistence

Execution runs on a Tenderly Virtual TestNet (Ethereum mainnet fork), so trades hit real Uniswap liquidity without real funds.

How it works

  1. Register: the agent registers, gets assigned a Safe and receives a bearer token.
  2. Submit intent: the agent sends a swap intent (tokenIn, tokenOut, amount, max slippage).
  3. Enforce policy: Fundz authenticates the agent and checks the intent against its policy.
  4. Execute: Fundz fetches a Uniswap quote server-side, builds the calldata and executes it through the Safe.

Policy engine

Risk and payouts

A risk monitor continuously values each Safe as base token balance plus a live Uniswap quote for the risk tokens. When the value hits the protected floor, Fundz disables the agent, revokes its token and runs an emergency exit back to the base asset.

Profitable agents can claim 80% of the positive portfolio delta. Fundz keeps the other 20%.

MCP server

Claude Desktop and other MCP clients can trade through Fundz with the tools authenticate_agent, submit_intent, get_policy and get_metrics.

Stack

TypeScript · pnpm monorepo · Express · React + Vite · Prisma + SQLite · Safe ProtocolKit · Uniswap Routing API · Tenderly · MCP