Étude de cas

AI2Work

Marketplace freelance on-chain — smart contracts sur Celo, PWA Next.js, wallet Android natif avec signature ECDSA.

SolidityNext.js 15CeloKotlinCapacitorECDSATypeScript
20+
fonctions smart contract
3
tokens ERC-20 supportés
4
plateformes (Web + Android)
100%
règlement on-chain

Problème

Le constat

Les freelances perdent 5 à 20% en frais de plateforme sur les marketplaces traditionnelles. Les litiges de paiement prennent des jours. Les paiements transfrontaliers ajoutent 3-5% de change et 2-3 jours ouvrés. Les plateformes Web3 existantes sont desktop-only et nécessitent MetaMask — inaccessibles aux 70% d'utilisateurs sur mobile.

Solution

La réponse

AI2Work est une marketplace freelance Web3 mobile-first sur Celo — L1 carbon-negative optimisée mobile. Les freelances publient des bounties en cUSD, CELO ou USDC. Fonds séquestrés dans un smart contract auditable. 2% de frais protocolaires (vs 5-20%). Règlement : instantané on-chain. Sans KYC. Sans banque. Fonctionne sur n'importe quel appareil Android.

Stack technique

Architecture

Smart Contracts

Solidity · Foundry · OpenZeppelin v5

  • • ClaudelanceCore.sol — escrow, résolution de litiges, règlement des stakes
  • • ReentrancyGuard + Ownable2Step + Pausable
  • • 20+ fonctions mutables, testées avec forge test
  • • Déployé sur Celo Mainnet (chain 42220), vérifié sur Celoscan

PWA Web

Next.js 15 · TypeScript · Tailwind · WalletConnect v2

  • • Rendu côté serveur avec App Router
  • • PWA avec support hors-ligne, installable sur mobile
  • • Hébergé sur Render.com, CI/CD via GitHub Actions

Android natif

Kotlin · Capacitor · Android Keystore

  • • Plugin Capacitor sur mesure pour la signature ECDSA
  • • Android Keystore pour le stockage des clés privées (backed hardware)
  • • Keccak256 implémenté from scratch en Kotlin
  • • Signature de transactions EIP-1559 + encodage RLP
  • • Pont WebView injectant window.ethereum

SDK & Types

Packages npm · client typé

  • @yeheskieltame/claudelance-sdk — client typé pour le contrat
  • @yeheskieltame/claudelance-types — ABI + types TypeScript partagés
  • • Publié sur npm + GitHub Packages

Zoom technique

ECDSA natif sur Android

L'innovation clé est un plugin Capacitor sur mesure qui implémente la signature de transactions Ethereum nativement en Kotlin — sans wallet Web3 externe. Cela élimine la dépendance à MetaMask qui bloque l'adoption du Web3 mobile.

Choix techniques

  • • secp256k1 via BouncyCastle (SpongyCastle sur Android)
  • • Keccak256 implémenté manuellement — aucune dépendance supplémentaire
  • • Encodage RLP pour la sérialisation des transactions
  • • Android Keystore pour la génération de clés (backed hardware si disponible)
  • • Bridge.js injecté dans la WebView — les dapps voient un window.ethereum standard
// EthWalletHelper.kt — Cœur Keccak256 fun keccak256(data: ByteArray): ByteArray { val digest = Keccak(256) return digest.digest(data) } // Signature de transaction EIP-1559 fun signTransaction(tx: EthTransaction, key: PrivateKey): ByteArray { val encoded = rlpEncode(tx.toList()) val hash = keccak256(encoded) return signECDSA(hash, key) // secp256k1 déterministe }

Métriques

Résultats & Impact

Coût gas par bounty~0,01 $ (Celo)
Frais protocolaires2 %
Taille APK4,2 Mo
API Android24+ (99,1 % des appareils)
Signature des transactionsAucun wallet externe requis

Retour d'expérience

Leçons apprises

1

Les plugins Capacitor sont la bonne abstraction pour le Web3 mobile — ils comblent le fossé entre l'UX web et la crypto native sans forcer l'utilisateur à passer par une app wallet séparée.

2

Les frais de gas infimes de Celo rendent le freelancing on-chain viable. Sur Ethereum mainnet, une seule création de bounty coûterait 5-20 $ en gas. Sur Celo : 0,01 $.

3

Le plus dur du Web3 mobile, c'est la gestion des clés. Android Keystore + backing hardware est la seule solution acceptable — pas de clés en clair dans SharedPreferences.

4

L'accent de l'écosystème Celo sur le mobile-first et les actifs réels (cUSD, USDC) s'aligne parfaitement avec les paiements freelance — les stablecoins sont non-négociables pour un usage professionnel.

Un projet similaire ?

Je construis des produits Web3 full-stack — smart contracts, apps mobiles, orchestration d'agents.

Me contacter
Demander un devis →