Inspiration
We started in February trying to build a trading bot. When results weren’t consistent, we pivoted at the hackathon: instead of a closed fund, we’re building an open, non-custodial layer on Starknet where anyone can compare, choose, and move funds like a payment into the best on-chain yield. The core idea: digitally replicate the fund experience—but self-custodied, portable across chains, and mobile-first.
What it does
Buffett is a non-custodial comparator on Starknet (not an exchange) that unifies:
- On-chain strategies/assets (lending, vaults, LPs, perps) and, next, copy-trading & RWAs.
- Search & comparison by rate, risk, TVL, and terms (lockup, fees) with a standardized asset sheet (apples-to-apples).
- A prompt engine so AI proposes portfolios (e.g., “optimize my USDC for 90 days with low risk”).
- 1-click move as a payment: on-ramp with Chipi Pay → route/zap →
deposit()into a vault on Starknet—without key custody. - Mobile-first PWA: installable, responsive (320/375), deep links to each asset, and alerts when rates change.
Elevator pitch: Buffett is a buffet of assets you can invest in; AI helps you build your portfolio. Any chain, any protocol, any asset type. All in one wallet—now on Starknet with 1-click payments into yield.
How we built it
Front end: Next.js/React with Liquid Glass (light/dark), reusable components, WCAG 2.2 AA; mobile-first PWA (install + deep links).
Wallet: WalletConnect / SIWE — end-to-end non-custodial; Starknet chain switch.
On-chain (Starknet): ERC-4626-style vaults per strategy + adapters; AUM via mint-as-shares; deployment/ABIs alineados con OpenZeppelin patterns (roles/pausas/timelock).
Payments: Chipi Pay on-ramp → quote router (0x/CoW-like flow) → convert to vault asset → deposit(); receipt (tx hash + fee breakdown).
Data: normalized rates, risks, and metrics (7D/30D/1Y, drawdown, Sharpe/Sortino).
Hosting: marketplace & landing on Vercel; events for conversion/funnel.
Repo: TypeScript-first (~93%), plus JS, Solidity/Cairo bindings, PL/pgSQL, CSS.
Challenges
Tech: shifting from “let’s build a fund” to a non-custodial marketplace on Starknet with per-strategy vaults and payment-like flows. Making deposit/redeem truly 1-click required approvals, slippage control, and routing.
Product: creating a common language for diverse assets and reducing the comparison to 5 core metrics (rate, risk, TVL, lockup, total fees).
Design: keeping Liquid Glass without sacrificing contrast/legibility; passing WCAG 2.2 AA (focus, keyboard, states), mobile-first.
Time: pivoting fast while keeping a B2B2C path (strategy publishers using the same disclosure standard).
What we learned
AI is orchestration, not “magic trading.” The value is guiding users (prompts, filters, rebalances) and standardizing data, not promising alpha.
Non-custody can be delightful. With solid zaps and preview* (4626), true 1-click is possible while preserving ownership.
Standardization = trust. A clear sheet—rate, risk, TVL, lockup, total fees—accelerates decisions and is portable across platforms.
Security & ops: OpenZeppelin-style roles/timelock improve safety and auditability for changes.
How we built it (deeper)
Contracts: ERC-4626-style vaults per strategy on Starknet; accrueManagementFee() mints fee shares (AUM) without touching user funds; bootstrap/inflation mitigations; event logs for indexing.
Payments UX: Chipi Pay on-ramp → best route → deposit() with a receipt-like confirmation; errors and retries claros.
Front/UX: standardized cards; overlays with tabs (Overview, Terms, Risks, History); skeletons, toasts, focus-trap and Esc close; deep links to each asset for sharing.
Infra: indexing of Deposit/Withdraw/Transfer, daily NAV/PnL; endpoints for marketplace and sheets.
What’s next
Stablecoin-first catalog on Starknet, plus a funding-rate comparator for perps. AI-guided rebalances & push alerts (“your rate dropped X%, move here in 1 click”). B2B2C listings: managers publish strategies under the same standardized disclosure—still 100% self-custody. Broader assets (RWAs, tokenized bonds, tokenized stocks/ETFs) while keeping the comparator layer and payments-into-yield experience.
Log in or sign up for Devpost to join the conversation.