CeloBank Agent
CeloBank Agent est un agent bancaire IA qui permet à quiconque de gérer des actifs
crypto sur Celo Mainnet (chain ID 42220) en langage naturel, sans jamais confier
ses fonds ni sa clé privée à l'agent. Il cible en particulier les 1,4 milliard de
personnes non-bancarisées, avec un chat disponible en 19 langues (anglais,
français par défaut, espagnol, portugais, swahili, arabe, italien, chinois, hindi,
bengali, yoruba, haoussa, amharique, indonésien, allemand, russe, turc, vietnamien,
tagalog).
Identité vérifiable on-chain (ERC-8004)
L'agent a une identité enregistrée et vérifiable sur Celo Mainnet via un contrat
ERC-8004 :
0x4ebef67f7a20485ccc9e66ee58fcc99f23e93de1
Ce contrat est vérifié "Exact Match" sur Celoscan. N'importe qui peut consulter
cette identité directement sur Celoscan
pour confirmer que l'agent avec lequel il/elle interagit est bien l'instance
officielle de CeloBank Agent.
Capabilities (src/tools/)
src/tools/celo.ts
| Tool |
Nom exposé |
Description |
getCeloPriceTool |
get_celo_price |
Prix temps réel des tokens Celo (alias de getMultiPriceTool, via CoinGecko) |
getMultiPriceTool |
get_multi_price |
Prix USD + variation 24h pour plusieurs tokens en une requête |
getBalanceTool |
get_balance |
Solde CELO natif d'une adresse (lecture seule, valeur unique) |
getPortfolioTool |
get_portfolio |
Portefeuille complet : CELO + tous les tokens ERC20 enregistrés (cUSD, cEUR, cREAL, USDC, USDT, stCELO, G$) |
sendCeloTool |
send_celo |
Prépare une transaction non signée pour envoyer CELO ou tout token enregistré — c'est le wallet de l'utilisateur connecté qui signe |
src/tools/defi.ts
| Tool |
Nom exposé |
Description |
getAavePositionTool |
get_aave_position |
Lit la position Aave V3 d'une adresse : collatéral, dette, facteur de santé |
saveCUSDTool |
save_cusd |
Prépare une transaction non signée pour déposer cUSD ou USDC sur Aave V3 (yield) |
swapCeloTool |
swap_celo |
Prépare un swap CELO → cUSD/cEUR/cREAL via Mento V2 (transaction non signée) |
swapTokensTool |
swap_tokens |
Swap universel entre n'importe quelle paire de tokens Celo (Mento V2 pour CELO↔stablecoins, Uniswap V3 sinon) |
defi.ts ré-exporte aussi getPortfolioTool et getMultiPriceTool depuis
celo.ts (implémentation canonique, pas de duplication).
Setup
git clone https://github.com/wkalidev/celobank-agent.git
cd celobank-agent
npm install
cp .env.example .env
# Éditer .env avec vos propres clés
npm run dev
# UI sur http://localhost:5173, API sur le port du serveur Express
Variables d'environnement (.env)
| Variable |
Rôle |
PRIVATE_KEY |
Wallet de l'agent — lecture seule en v2 (fallback pour les lectures, jamais utilisé pour signer une transaction utilisateur) |
CELO_RPC |
Endpoint RPC Celo Mainnet (défaut : https://forno.celo.org) |
ANTHROPIC_API_KEY |
Clé Claude (LLM principal de l'agent) |
GROQ_API_KEY |
Clé Groq (fallback LLM si ANTHROPIC_API_KEY absent) |
CONTRACT_ADDRESS |
Adresse du contrat d'identité ERC-8004 (0x4ebef67f7a20485ccc9e66ee58fcc99f23e93de1) |
TOKEN_FACTORY_ADDRESS |
Contrat TokenFactory pour le déploiement de tokens ERC20 |
Research Workflow
| Besoin |
Tool à utiliser |
| Connaître le prix d'un ou plusieurs tokens |
get_celo_price / get_multi_price |
| Vérifier le solde CELO natif d'une adresse |
get_balance |
| Voir le portefeuille complet (tous les tokens) |
get_portfolio |
| Envoyer des fonds à quelqu'un |
send_celo |
| Vérifier une position de prêt/emprunt Aave |
get_aave_position |
| Faire fructifier des cUSD/USDC (épargne) |
save_cusd |
| Échanger CELO contre une stablecoin |
swap_celo |
| Échanger n'importe quelle paire de tokens Celo |
swap_tokens |
Important Rules
- Non-custodial : l'agent ne détient jamais les fonds de l'utilisateur. Toute
action d'écriture (
send_celo, save_cusd, swap_celo, swap_tokens, etc.)
retourne une transaction non signée que le wallet de l'utilisateur connecté
(MiniPay, RainbowKit, MetaMask...) doit signer lui-même. Le wallet de l'agent
(PRIVATE_KEY) n'est utilisé que pour des appels RPC en lecture seule.
- Identité vérifiable : chaque interaction peut être rattachée à l'identité
ERC-8004 de l'agent sur Celo Mainnet — vérifiable indépendamment sur Celoscan,
sans faire confiance à une déclaration de l'agent.
- Frais sub-cent : les frais de gas sur Celo sont généralement inférieurs à
0,001 $, ce qui rend l'agent adapté aux micro-transactions pour des utilisateurs
à faibles revenus.
- Détection de langue : l'agent détecte la langue du premier message de
l'utilisateur et y répond dans la même langue pendant toute la conversation,
sauf demande explicite de changement.
- Avant toute transaction préparée, l'agent doit expliquer en langage clair ce
que fait la transaction, le résultat attendu (montants, APY...) et les risques
pertinents (slippage, frais, risque de smart contract, liquidation) avant de la
soumettre à la signature de l'utilisateur.
1---2name: celobank-agent-skill3description: Agent IA bancaire autonome et non-custodial pour les non-bancarisés, opérant sur Celo Mainnet avec une identité vérifiable on-chain via ERC-8004 (portefeuille, prix, envoi, swap, épargne Aave en langage naturel).4license: MIT5---67# CeloBank Agent89CeloBank Agent est un agent bancaire IA qui permet à quiconque de gérer des actifs10crypto sur **Celo Mainnet** (chain ID `42220`) en langage naturel, sans jamais confier11ses fonds ni sa clé privée à l'agent. Il cible en particulier les **1,4 milliard de12personnes non-bancarisées**, avec un chat disponible en **19 langues** (anglais,13français par défaut, espagnol, portugais, swahili, arabe, italien, chinois, hindi,14bengali, yoruba, haoussa, amharique, indonésien, allemand, russe, turc, vietnamien,15tagalog).1617## Identité vérifiable on-chain (ERC-8004)1819L'agent a une identité enregistrée et vérifiable sur Celo Mainnet via un contrat20**ERC-8004** :2122```230x4ebef67f7a20485ccc9e66ee58fcc99f23e93de124```2526Ce contrat est vérifié "Exact Match" sur Celoscan. N'importe qui peut consulter27cette identité directement sur [Celoscan](https://celoscan.io/address/0x4ebef67f7a20485ccc9e66ee58fcc99f23e93de1#code)28pour confirmer que l'agent avec lequel il/elle interagit est bien l'instance29officielle de CeloBank Agent.3031## Capabilities (src/tools/)3233### `src/tools/celo.ts`3435| Tool | Nom exposé | Description |36|------|-----------|--------------|37| `getCeloPriceTool` | `get_celo_price` | Prix temps réel des tokens Celo (alias de `getMultiPriceTool`, via CoinGecko) |38| `getMultiPriceTool` | `get_multi_price` | Prix USD + variation 24h pour plusieurs tokens en une requête |39| `getBalanceTool` | `get_balance` | Solde CELO natif d'une adresse (lecture seule, valeur unique) |40| `getPortfolioTool` | `get_portfolio` | Portefeuille complet : CELO + tous les tokens ERC20 enregistrés (cUSD, cEUR, cREAL, USDC, USDT, stCELO, G$) |41| `sendCeloTool` | `send_celo` | Prépare une transaction **non signée** pour envoyer CELO ou tout token enregistré — c'est le wallet de l'utilisateur connecté qui signe |4243### `src/tools/defi.ts`4445| Tool | Nom exposé | Description |46|------|-----------|--------------|47| `getAavePositionTool` | `get_aave_position` | Lit la position Aave V3 d'une adresse : collatéral, dette, facteur de santé |48| `saveCUSDTool` | `save_cusd` | Prépare une transaction non signée pour déposer cUSD ou USDC sur Aave V3 (yield) |49| `swapCeloTool` | `swap_celo` | Prépare un swap CELO → cUSD/cEUR/cREAL via Mento V2 (transaction non signée) |50| `swapTokensTool` | `swap_tokens` | Swap universel entre n'importe quelle paire de tokens Celo (Mento V2 pour CELO↔stablecoins, Uniswap V3 sinon) |5152`defi.ts` ré-exporte aussi `getPortfolioTool` et `getMultiPriceTool` depuis53`celo.ts` (implémentation canonique, pas de duplication).5455## Setup5657```bash58git clone https://github.com/wkalidev/celobank-agent.git59cd celobank-agent60npm install61cp .env.example .env62# Éditer .env avec vos propres clés63npm run dev64# UI sur http://localhost:5173, API sur le port du serveur Express65```6667### Variables d'environnement (`.env`)6869| Variable | Rôle |70|----------|------|71| `PRIVATE_KEY` | Wallet de l'agent — **lecture seule** en v2 (fallback pour les lectures, jamais utilisé pour signer une transaction utilisateur) |72| `CELO_RPC` | Endpoint RPC Celo Mainnet (défaut : `https://forno.celo.org`) |73| `ANTHROPIC_API_KEY` | Clé Claude (LLM principal de l'agent) |74| `GROQ_API_KEY` | Clé Groq (fallback LLM si `ANTHROPIC_API_KEY` absent) |75| `CONTRACT_ADDRESS` | Adresse du contrat d'identité ERC-8004 (`0x4ebef67f7a20485ccc9e66ee58fcc99f23e93de1`) |76| `TOKEN_FACTORY_ADDRESS` | Contrat TokenFactory pour le déploiement de tokens ERC20 |7778## Research Workflow7980| Besoin | Tool à utiliser |81|--------|------------------|82| Connaître le prix d'un ou plusieurs tokens | `get_celo_price` / `get_multi_price` |83| Vérifier le solde CELO natif d'une adresse | `get_balance` |84| Voir le portefeuille complet (tous les tokens) | `get_portfolio` |85| Envoyer des fonds à quelqu'un | `send_celo` |86| Vérifier une position de prêt/emprunt Aave | `get_aave_position` |87| Faire fructifier des cUSD/USDC (épargne) | `save_cusd` |88| Échanger CELO contre une stablecoin | `swap_celo` |89| Échanger n'importe quelle paire de tokens Celo | `swap_tokens` |9091## Important Rules9293- **Non-custodial** : l'agent ne détient jamais les fonds de l'utilisateur. Toute94 action d'écriture (`send_celo`, `save_cusd`, `swap_celo`, `swap_tokens`, etc.)95 retourne une transaction **non signée** que le wallet de l'utilisateur connecté96 (MiniPay, RainbowKit, MetaMask...) doit signer lui-même. Le wallet de l'agent97 (`PRIVATE_KEY`) n'est utilisé que pour des appels RPC en lecture seule.98- **Identité vérifiable** : chaque interaction peut être rattachée à l'identité99 ERC-8004 de l'agent sur Celo Mainnet — vérifiable indépendamment sur Celoscan,100 sans faire confiance à une déclaration de l'agent.101- **Frais sub-cent** : les frais de gas sur Celo sont généralement inférieurs à102 0,001 $, ce qui rend l'agent adapté aux micro-transactions pour des utilisateurs103 à faibles revenus.104- **Détection de langue** : l'agent détecte la langue du premier message de105 l'utilisateur et y répond dans la même langue pendant toute la conversation,106 sauf demande explicite de changement.107- **Avant toute transaction préparée**, l'agent doit expliquer en langage clair ce108 que fait la transaction, le résultat attendu (montants, APY...) et les risques109 pertinents (slippage, frais, risque de smart contract, liquidation) avant de la110 soumettre à la signature de l'utilisateur.