Celina’s SDK needed a user-facing proof that agents can transact without a server key: the human signs, the model only prepares.
← All work
Problem What I built Technical notes

- A chat UI on Celo mainnet: balances, sends, swaps, Aave supply/withdraw, and GoodDollar UBI — you confirm in-wallet.
- Composite swap routing that quotes Mento FX, GoodDollar reserve, and Uniswap v4 in parallel and picks the better output.
- TxConfirmCard simulation before broadcast, plus MiniPay / CIP-64 fee-currency support.
- EIP-8004 agent manifest at celeste.usecelina.xyz/agent.json.
- Next.js + Vercel AI SDK + OpenRouter, wagmi + RainbowKit, Dexie for local chat history.
- Uses `@andrewkimjoseph/celina-sdk` with `surface: "browser"` — no MCP, no `CELO_PRIVATE_KEY`.
- Dual on-chain attribution: legacy UTF-8 suffix plus ERC-8021 `toDataSuffix` codes.
- Independent of Celina MCP: same catalog, different host, wallet-native signing.

