What are Smart Accounts?
Smart accounts are smart contract wallets that enable advanced features like gasless transactions, session keys, and programmable permissions. In Giza, every user gets a smart account that serves as the deposit address for agent-managed funds. Unlike regular wallets (EOAs - Externally Owned Accounts), smart accounts:- Are smart contracts, not just private key pairs
- Can execute logic and have programmable rules
- Enable gasless transactions through paymasters
- Support session keys for delegated permissions
- Can batch multiple transactions together
Architecture
ZeroDev Integration
Giza smart accounts are powered by ZeroDev, a leading account abstraction infrastructure provider.ERC-4337 Compliant
ERC-4337 Compliant
Follows the official Ethereum account abstraction standard for maximum compatibility and security.
Battle-Tested
Battle-Tested
Used by thousands of applications, managing millions in assets.
Gasless Transactions
Gasless Transactions
Agents can execute rebalancing without users paying gas for each transaction.
Session Keys
Session Keys
Enable secure, time-bound delegated permissions perfect for autonomous agents.
Deterministic Addresses
Smart accounts are deterministic - the same origin wallet always generates the same smart account address. This means:- Safe to call
createSmartAccountmultiple times - Users get the same address across sessions
- No risk of losing funds to a “new” address
API Reference
See createSmartAccount() for implementation details
Smart Account Lifecycle
States
- Created: Smart account exists on-chain but empty
- Funded: User has deposited tokens
- Active: Agent has session key permissions, actively managing
- Deactivated: Permissions revoked, agent no longer managing
Backend Wallet
ThebackendWallet is a Giza-controlled wallet that:
- Holds session keys to execute transactions
- Acts on behalf of the smart account (with limited permissions)
- Pays gas fees for agent operations
- Is revocable at any time by the user
The backend wallet never controls user funds directly.
It only has permission to call specific functions on specific contracts.
Session Keys & Permissions
When an agent is activated, the smart account grants session keys to the backend wallet with specific permissions:Permission Structure
| Permission Type | Description |
|---|---|
| Approved Targets | Specific protocol contracts (Aave, Compound, etc.) |
| Approved Functions | supply, withdraw, transfer |
| Time Limits | Start and end timestamps |
| Transaction Limits | Max amounts per transaction |
Security Guarantees
Limited Scope
Limited Scope
Session keys can ONLY:
- Call approved protocol contracts
- Execute approved functions (deposit, withdraw, swap)
- Within approved time windows
- Up to specified limits
Time-Bound
Time-Bound
Session keys automatically expire. Agents must request renewal, giving users a regular checkpoint to review and revoke if desired.
Revocable
Revocable
Users can deactivate agents at any time, immediately revoking all session key permissions.
Non-Custodial
Non-Custodial
Users always retain ultimate control via their origin wallet. Giza never has custody of funds.
Gas Management
One of the key benefits of smart accounts is gasless transactions for users: How it works:- Agent determines optimal rebalancing is needed
- Backend wallet crafts and signs the transaction
- Giza’s paymaster sponsors the gas fee
- Smart account executes the transaction
- User pays nothing for the rebalancing operation
- Covered by Giza during active management
- Factored into the performance fee structure
- Optimized through transaction batching
Troubleshooting
Smart account creation fails
Smart account creation fails
Check:
- Origin wallet is a valid Ethereum address (0x + 40 hex chars)
- Chain ID is supported
- API credentials are correct
Can't find existing smart account
Can't find existing smart account
Make sure:
- You’re using the same
origin_walletas when it was created - You’re querying the correct chain
- The smart account was actually created (check blockchain explorer)
Deposits not showing up
Deposits not showing up
Verify:
- Transaction was sent to correct
smartAccountAddress - Transaction confirmed on-chain (check explorer)
- You’re checking the right chain
- Agent was activated after deposit