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"
}'
const response = await fetch(
'https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Partner-API-Key': 'your-api-key',
'X-Partner-Name': 'your-partner-name',
},
body: JSON.stringify({
eoa: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
chain: 8453,
agent_id: 'giza-app',
}),
}
);
const data = await response.json();
console.log('Smart Account:', data.smartAccount);
import requests
response = requests.post(
'https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts',
headers={
'X-Partner-API-Key': 'your-api-key',
'X-Partner-Name': 'your-partner-name',
},
json={
'eoa': '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
'chain': 8453,
'agent_id': 'giza-app',
}
)
data = response.json()
print('Smart Account:', data['smartAccount'])
{
"smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}
{
"detail": "Invalid input data"
}
{
"detail": [
{
"loc": ["body", "eoa"],
"msg": "Invalid Ethereum address",
"type": "value_error"
}
]
}
Agents
Create Smart Account
Create a new smart account for a user
POST
/
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"
}'
const response = await fetch(
'https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Partner-API-Key': 'your-api-key',
'X-Partner-Name': 'your-partner-name',
},
body: JSON.stringify({
eoa: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
chain: 8453,
agent_id: 'giza-app',
}),
}
);
const data = await response.json();
console.log('Smart Account:', data.smartAccount);
import requests
response = requests.post(
'https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts',
headers={
'X-Partner-API-Key': 'your-api-key',
'X-Partner-Name': 'your-partner-name',
},
json={
'eoa': '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
'chain': 8453,
'agent_id': 'giza-app',
}
)
data = response.json()
print('Smart Account:', data['smartAccount'])
{
"smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}
{
"detail": "Invalid input data"
}
{
"detail": [
{
"loc": ["body", "eoa"],
"msg": "Invalid Ethereum address",
"type": "value_error"
}
]
}
SDK Alternative: Use
giza.createAgent(eoa) for a simpler TypeScript interface. See SDK docsDescription
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
string
required
The user’s externally owned account (wallet) address.
Must be a valid Ethereum address (0x + 40 hex characters).
integer
required
Chain ID for the smart account.Supported values:
1 (Ethereum), 137 (Polygon), 8453 (Base), 42161 (Arbitrum), 84532 (Base Sepolia), 11155111 (Sepolia)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
string
The created smart account address. This is where the user should deposit funds.
string
The Giza backend wallet that will hold session keys for agent operations.
Response Example
{
"smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}
Error Responses
| Status | Description |
|---|---|
400 | Invalid input data |
401 | Unauthorized - invalid API key |
422 | Validation error (invalid address format) |
500 | Internal 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"
}'
const response = await fetch(
'https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Partner-API-Key': 'your-api-key',
'X-Partner-Name': 'your-partner-name',
},
body: JSON.stringify({
eoa: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
chain: 8453,
agent_id: 'giza-app',
}),
}
);
const data = await response.json();
console.log('Smart Account:', data.smartAccount);
import requests
response = requests.post(
'https://partners-backend-1038109371738.europe-west1.run.app/api/v1/proxy/zerodev/smart-accounts',
headers={
'X-Partner-API-Key': 'your-api-key',
'X-Partner-Name': 'your-partner-name',
},
json={
'eoa': '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
'chain': 8453,
'agent_id': 'giza-app',
}
)
data = response.json()
print('Smart Account:', data['smartAccount'])
{
"smartAccount": "0xAbC1234567890aBcDeF1234567890AbCdEf123456",
"backendWallet": "0xDeF9876543210FeDcBa9876543210FeDcBa987654"
}
{
"detail": "Invalid input data"
}
{
"detail": [
{
"loc": ["body", "eoa"],
"msg": "Invalid Ethereum address",
"type": "value_error"
}
]
}