Skip to main content

Agentic Activity with Real World Utility

Celo is a leading Ethereum Layer 2 optimized for agentic activity with real-world utility, enabling AI agents to autonomously perform onchain actions tied directly to payments, commerce, and financial coordination. Agents on Celo can tap into the network’s expansive payments ecosystem, leveraging fast finality, sub-cent transaction costs, and a stablecoin-optimized financial stack spanning peer-to-peer transfers, merchant payments, remittances, and onchain FX. Combined with native support for AI agent standards like ERC-8004 and Celo’s Agent Skills, Celo provides a production-ready environment for deploying AI agents that do more than trade tokens—they move money, coordinate economic activity, and interact with real users at global scale.

Why Build AI Agents on Celo

On Celo, AI Agents can experiment and execute at scale. Celo’s infrastructure is optimized for high-frequency, real-world transactions that AI agents rely on to operate autonomously and cost-effectively. Key advantages include:
  • Fast finality and sub-cent transaction costs, enabling agents to act continuously without prohibitive fees
  • Stablecoin-optimized design, supporting payments, savings, subscriptions, and settlements across 25 stable assets tracking a wide range of local currencies
  • Mobile-first reach, allowing agents to interact with users through wallets and apps used daily across global markets
  • Ethereum alignment, giving agents access to the broader Ethereum ecosystem while operating in a purpose-built execution environment
This makes Celo uniquely suited for agentic workflows tied to commerce, coordination, and financial automation.

What Is an AI Agent on Celo

An AI agent on Celo is a software system that can:
  • Observe onchain and offchain data
  • Make decisions using AI models or rule-based logic
  • Execute transactions and contract calls autonomously
  • Interact with users, wallets, and protocols without constant manual input
On Celo, agents are first-class participants in the economy. They can send and receive stablecoins, pay for services, manage balances, interact with DeFi protocols, and coordinate activity across multiple users and applications.

Types of AI Agents

1. Basic AI Agents
  • Simple tasks like chatbots with decision trees.
  • Examples: Command processors, basic I/O automation.
2. Functional Agents
  • Specialized agents with defined purposes.
  • Examples: Code review agents, research assistants, or domain-specific solvers.
3. Autonomous Agents
  • Operate with minimal human intervention.
  • Capabilities: Multi-step reasoning, task automation, self-improvement.
4. Multi-Agent Systems
  • Collaborative systems where agents work together.
  • Examples: Collective problem-solving, distributed decision-making, or agent-to-agent communication.

Fee Abstraction for Agents

AI agents on Celo can pay gas fees in stablecoins like USDC or USDT instead of needing a separate CELO balance. This simplifies agent treasury management to a single token — the same stablecoin the agent already holds for payments and settlements. Celo supports a feeCurrency field on transactions that lets you specify which token to use for gas. viem has native support for this field, making it the recommended library for agent backends.

Quick Start

This example shows an agent sending a USDC transfer while paying gas in USDC:
import { createWalletClient, createPublicClient, http, parseUnits } from "viem";
import { celo } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";
import { erc20Abi } from "viem";

// Agent's wallet
const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY as `0x${string}`);

const walletClient = createWalletClient({
  account,
  chain: celo,
  transport: http(),
});

const publicClient = createPublicClient({
  chain: celo,
  transport: http(),
});

// Addresses
const USDC = "0xcebA9300f2b948710d2653dD7B07f33A8B32118C";
const USDC_ADAPTER = "0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B";

async function sendUSDCWithFeeAbstraction(to: `0x${string}`, amount: bigint) {
  const hash = await walletClient.writeContract({
    address: USDC,
    abi: erc20Abi,
    functionName: "transfer",
    args: [to, amount],
    feeCurrency: USDC_ADAPTER, // Pay gas in USDC
  });

  const receipt = await publicClient.waitForTransactionReceipt({ hash });
  return receipt;
}

// Agent sends 1 USDC, gas paid in USDC — no CELO needed
await sendUSDCWithFeeAbstraction("0xRecipient...", parseUnits("1", 6));
When using USDC or USDT as fee currency, always use the adapter address (not the token address). Adapters normalize the 6-decimal tokens to the 18-decimal format that Celo’s gas pricing requires. For 18-decimal tokens like USDm, use the token address directly.

Adapter Addresses

For the full guide — including gas estimation, CIP-64 transaction types, and CLI usage — see Implementing Fee Abstraction.