Skip to main content

System Architecture

Components

Giza Client

The entry point for all SDK interactions. Initialize once and reuse throughout your application.
import { Giza, Chain } from '@gizatech/agent-sdk';

const giza = new Giza({ chain: Chain.BASE });

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

1

Inactive

Smart account exists but no agent is activated. User funds are not being managed.
2

Activating

Agent initialization in progress. Session keys being granted, initial deposits being allocated. Brief transition state.
3

Active

Agent is running and optimizing. Capital is deployed across protocols, automatic rebalancing occurs.
4

Deactivating

Withdrawal in progress. Agent pulling funds from all protocols, revoking permissions. Brief transition state.
5

Deactivated

Agent stopped, funds returned to user. No active management. Can be reactivated.
6

Activation Failed

Activation encountered an error. Funds remain safe in smart account. User can retry or withdraw.

Optimization Cycle

Once active, the agent runs a continuous optimization loop:
  1. Monitor — Continuously monitors APRs across selected protocols
  2. Analyze — Calculates optimal allocation considering APRs, gas costs, slippage, protocol limits, and user constraints
  3. Execute — If rebalancing improves net returns (after gas), executes transactions
  4. Report — Updates performance metrics and portfolio data
  5. 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.
  1. User grants permissions to a session key when activating the agent
  2. Session key has specific capabilities (approved contracts, functions, limits)
  3. Agent uses session key to execute rebalancing transactions
  4. User can revoke permissions at any time by deactivating
Session keys are time-bound, limited in scope, and revocable. See Smart Accounts for the full security model.

Next Steps