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.
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)
| Package | Description |
|---|---|
apps/api | Core API: auth, policy, intents and execution |
apps/web | React dashboard for portfolio and risk monitoring |
apps/mcp | MCP server so AI clients can trade natively |
packages/core | Domain logic for agents, policy, intents and execution |
packages/safe-kit | Safe ProtocolKit integration |
packages/adapters/uniswap | Uniswap Routing API adapter |
packages/db | Prisma + SQLite persistence |
Execution runs on a Tenderly Virtual TestNet (Ethereum mainnet fork), so trades hit real Uniswap liquidity without real funds.
How it works
- Register: the agent registers, gets assigned a Safe and receives a bearer token.
- Submit intent: the agent sends a swap intent (
tokenIn,tokenOut, amount, max slippage). - Enforce policy: Fundz authenticates the agent and checks the intent against its policy.
- Execute: Fundz fetches a Uniswap quote server-side, builds the calldata and executes it through the Safe.
Policy engine
- Token allowlist
- Chain allowlist
- Max amount per operation
- Daily rolling limits
- Cooldown between operations
- Deadline validation
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