System Architecture
Components
Giza Client
The entry point for all SDK interactions. Initialize once and reuse throughout your application.Agent Class
Manages a single user’s smart account. Handles activation, monitoring, withdrawals, and protocol management.Optimizer
A stateless service that calculates optimal capital allocation across DeFi protocols. Used automatically by agents (Agentic approach) or called directly (IaaS approach). See Optimizer for details.Smart Accounts
ERC-4337 smart contract wallets powered by ZeroDev. Each user gets a deterministic smart account address where they deposit funds. See Smart Accounts for details.Agent Lifecycle
Activating
Agent initialization in progress. Session keys being granted, initial deposits being allocated. Brief transition state.
Active
Agent is running and optimizing. Capital is deployed across protocols, automatic rebalancing occurs.
Deactivating
Withdrawal in progress. Agent pulling funds from all protocols, revoking permissions. Brief transition state.
Optimization Cycle
Once active, the agent runs a continuous optimization loop:- Monitor — Continuously monitors APRs across selected protocols
- Analyze — Calculates optimal allocation considering APRs, gas costs, slippage, protocol limits, and user constraints
- Execute — If rebalancing improves net returns (after gas), executes transactions
- Report — Updates performance metrics and portfolio data
- Repeat — Continues monitoring for next opportunity
Data Flow
Session Keys
Session keys let agents execute specific functions on behalf of smart accounts without requiring user signatures each time.- User grants permissions to a session key when activating the agent
- Session key has specific capabilities (approved contracts, functions, limits)
- Agent uses session key to execute rebalancing transactions
- User can revoke permissions at any time by deactivating