Skip to main content
POST
https://partners-backend-1038109371738.europe-west1.run.app
/
api
/
v1
/
proxy
/
zerodev
/
smart-accounts
curl -X POST "https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts" \
  -H "Content-Type: application/json" \
  -H "X-Partner-API-Key: your-api-key" \
  -H "X-Partner-Name: your-partner-name" \
  -d '{
    "eoa": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "chain": 8453,
    "agent_id": "giza-app"
  }'
{
  "smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
  "backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}
SDK Alternative: Use giza.createAgent(eoa) for a simpler TypeScript interface. See SDK docs

Description

Creates a new ZeroDev smart account for a user’s externally owned account (EOA). The smart account address is deterministic — calling this endpoint with the same EOA and chain always returns the same address, so it is safe to call multiple times. This is the first step in the agentic integration flow. After creating the smart account, the user deposits funds to the returned address, then you activate the agent.

Request Body

eoa
string
required
The user’s externally owned account (wallet) address. Must be a valid Ethereum address (0x + 40 hex characters).
chain
integer
required
Chain ID for the smart account.Supported values: 1 (Ethereum), 137 (Polygon), 8453 (Base), 42161 (Arbitrum), 84532 (Base Sepolia), 11155111 (Sepolia)
agent_id
string
Agent identifier. Defaults to giza-app.

Example Request

curl -X POST "https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts" \
  -H "Content-Type: application/json" \
  -H "X-Partner-API-Key: your-api-key" \
  -H "X-Partner-Name: your-partner-name" \
  -d '{
    "eoa": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "chain": 8453,
    "agent_id": "giza-app"
  }'

Response

smartAccount
string
The created smart account address. This is where the user should deposit funds.
backendWallet
string
The Giza backend wallet that will hold session keys for agent operations.
Response Example
{
  "smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
  "backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}

Error Responses

StatusDescription
400Invalid input data
401Unauthorized - invalid API key
422Validation error (invalid address format)
500Internal server error
curl -X POST "https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts" \
  -H "Content-Type: application/json" \
  -H "X-Partner-API-Key: your-api-key" \
  -H "X-Partner-Name: your-partner-name" \
  -d '{
    "eoa": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "chain": 8453,
    "agent_id": "giza-app"
  }'
{
  "smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
  "backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}