FlexiYeild
Auto-rebalancing stablecoin basket on Solana: deposit USDC, earn yield with de-peg safety
Problem Statement
FlexiYield: Dynamic Stablecoin Basket ProtocolFlexiYield is a Solana-native DeFi protocol that creates a dynamic stablecoin basket system, transforming traditional stablecoins into an auto-optimized, diversified portfolio. It is built specifically for a hackathon environment using devnet infrastructure.Core Concept & Problem Solved:FlexiYield addresses the manual complexity of stablecoin management by creating a “meta-stablecoin” called FLEX that automatically rebalances between different stablecoins based on:Yield optimization through mock APY signalsDe-peg protection via health monitoringRisk diversification across multiple stablecoin assetsRules-based rebalancing with configurable thresholdsTechnical Architecture:Smart Contract Layer (Rust/Anchor):Basket Program – Core deposit/withdrawal logic, NAV calculations, FLEX token mintingStrategy Program – Target weight management, threshold controls, mock oracle integrationRebalance Program – Automated rebalancing execution with cap enforcementFrontend (Next.js/TypeScript):Real-time dashboard with composition charts and NAV trackingSeamless wallet integration (Phantom devnet)Admin controls for strategy parameter adjustmentsTransaction monitoring with Solana explorer integrationKey Innovation Points:Solana Speed & Cost Advantage:Leverages Solana’s sub-second finality for frequent rebalancingUltra-low transaction fees enable micro-optimizationsReal-time UI updates showcasing blockchain performanceHackathon-Optimized Features:Devnet-only implementation with mock assets (USDCd, USDTd)Internal swap simulator for reliable demo experienceOne-command deployment via comprehensive script automationMock oracle system for APY/peg health simulationDemo Flow & User Experience:Setup: Airdrop SOL and mint demo USDCd tokensDeposit: Convert 25 USDCd and receive 25 FLEX tokens (1:1 NAV)Strategy Control: Toggle APY preferences and trigger automatic rebalancingMonitoring: View real-time composition changes with transaction explorer linksWithdrawal: Redeem FLEX and receive USDCd proportionallyTechnical Specifications:Token Standard: SPL Token with 6 decimals (stablecoin UX)Architecture: PDA-based state management for deterministic readsSecurity: Guardian pause functionality, admin multisig controlsTesting: Comprehensive unit tests for math operations and state transitionsDeployment: Automated scripts for devnet setup, token creation, and program deploymentHackathon Compliance & Constraints:Scope Limitations (By Design):Devnet-only operation (no real funds at risk)Single DEX path or internal simulator (no complex routing)Mock oracles via admin UI (no external API dependencies)Manual rebalancing triggers (keeper automation optional)Deliverables:Live devnet dApp at https://flexi-yield.vercel.appComplete source code with /programs, /app, and /scriptsOne-command setup for judges and developersComprehensive documentation and demo recordingsInnovation Impact:FlexiYield demonstrates how Solana’s performance characteristics enable previously impractical DeFi strategies—frequent, cost-effective rebalancing that would be prohibitively expensive on other chains. This creates a foundation for next-generation automated portfolio management in the stablecoin ecosystem.The project showcases practical blockchain UX with transparent, real-time updates and clear transaction tracking, making complex DeFi strategies accessible to mainstream users while maintaining full decentralization and user custody.
Solution
What i built: A Solana-native “meta-stablecoin” basket (FLEX) that auto-allocates between two devnet stables (USDCd, USDTd), with rules-based rebalancing, peg-health caps, and a clean, deterministic dashboard. Devnet-only, unaudited, no real funds. Single-DEX path with an internal swap simulator fallback for reliable demos.Tech stack: On-chain: Rust + Anchor (programs: basket, strategy, rebalance), SPL Token (6 decimals), program events, PDA-based state. Frontend: Next.js (App Router) + TypeScript, @solana/web3.js, @coral-xyz/anchor, Solana wallet adapter (Phantom), pnpm workspace. Tooling: Anchor workspace (Anchor.toml), Cargo workspace, scripts in TypeScript for airdrop/mints/seed/deploy/demo. Hosting: Vercel (frontend). Optional DEX CPI: Raydium/Orca on devnet; if flaky, fallback to internal constant-product swap simulator.How the pieces fit:Programs (Anchor/Rust) Basket Program (complete):Accounts/PDAs: BasketConfig, USDCd/USDTd vaults, FLEX mint authority.Instructions: initialize_basket, deposit_usdc (mints FLEX vs NAV), redeem_flex (burn FLEX → USDCd), update_config.Events: DepositEvent, RedeemEvent.Token standard: switched from Token-2022 to standard SPL Token for compatibility; enforced 6 decimals for stablecoin UX.NAV: sum of vault balances assuming 1.0 stable price for demo.Strategy Program (compilation-ready):Admin-gated setters: set_targets, set_thresholds, set_oracle_values.Stores target weights, drift threshold, per-asset caps, and mock oracle flags (APY tilt, peg caution).Rebalance Program (compilation-ready):rebalance_once: compute deltas vs targets; enforce caps; execute single-DEX swap or internal simulator; update vaults; emit Rebalanced event.Safety: guardian pause/unpause.Rebalancing logic (demo rules):Trigger when |current_weight - target_weight| > drift_threshold OR when APY preference flips.Caps limit exposure; peg-health temporarily reduces max allocation to a risky asset.Manual “Rebalance Now” supported (keeper optional).Frontend (Next.js + TypeScript):Wallet connect via Phantom (devnet), faucet CTA, one-click “Mint USDCd.”Deposit/Withdraw flows; composition chart; NAV, FLEX supply, and mock APY/peg badges.Admin mode: sliders/inputs for targets, thresholds, caps, and toggles for mock APY/peg; “Rebalance Now” button.Deterministic reads from PDAs; optimistic UI updates followed by on-chain confirmation; explorer links for every transaction.IDLs exported from programs into app/src/idl; client uses Anchor to derive accounts and deserialize state.Scripts (TypeScript):airdrop-devnet-sol.ts: fund devnet wallets.create-mints.ts: create USDCd, USDTd, FLEX (6 decimals); persist mint addresses.seed-balances.ts: seed demo vaults and user token accounts.deploy-programs.ts: build/deploy Anchor programs; export fresh IDLs to app/src/idl and program IDs to .env.local.demo-helper.ts: simulate strategy tweaks and trigger rebalances; record mock signatures to demo-recording.json.Convenience runners:pnpm setup-devnet → airdrop → create-mints → seed-balances → deploy-programspnpm full-demo → full setup + demo scenariosEnvironment centralized in app/.env.local (mints, vaults, program IDs, RPC URL); keypairs in .root/.keypairs.json.Data model and math:6-decimal SPL tokens across the board.NAV and composition in USDC terms (price ~1.0 for both stables in demo).Rebalance delta: compute desired vs current; apply cap-adjusted target weights; execute single-path swap; update vault state atomically.What was hacky (on purpose):Internal swap simulator: fallback when devnet DEX CPI is unreliable; ensures smooth demo.Mock oracles via PDAs: APY preference and peg caution flags drive deterministic UI and rebalancing without external APIs.IDL auto-export: build/deploy scripts automatically drop fresh IDLs into the frontend to avoid drift.Stable UX simplification: standardized 6 decimals and ~1.0 price assumption to focus on rebalancing mechanics.Optimistic UI + explorer links: highlight Solana speed and fees, then confirm state with on-chain reads.Dev experience and testing:Monorepo with pnpm-workspace.yaml and Cargo workspace for shared builds.Quick start: cp app/.env.example app/.env.local → pnpm dev (frontend) → scripts for full devnet provisioning.Unit tests planned for deposit/redeem math, NAV calc, cap enforcement, and rebalance deltas; early basket logic verified.Clear loader/error/empty states to avoid UI confusion during devnet hiccups.Fallback: demo recording/GIF if RPC/DEX unstable during live judging.Why these partner tools helped:Anchor: reduced Solana program boilerplate (accounts, PDAs, events, client bindings via IDLs).Phantom + Solana wallet adapter: frictionless devnet UX (connect, airdrop, mint sample USDCd).Vercel: zero-config deploys of the Next.js dashboard for live demo link.Raydium/Orca devnet: optional real CPI target; fallback to simulator for reliability.Constraints we embraced (ETHOnline-style hackathon scope):Devnet-only; no bridges, no mainnet yield farms.Single-DEX path; simple rules-based rebalancing (not an optimizer).No external price/APY dependencies; everything mockable in admin UI.Admin/multisig gating for config; guardian pause for rebalancing.What we’d ship next (post-hackathon):Robust oracles, multi-DEX routing, yield-bearing stable integrations, security audits, and governance.
Hackathon
ETHOnline 2025
2025
Contributors
- AnkanMisra
57 contributions
- vercel[bot]
1 contributions
- coderabbitai[bot]
1 contributions