Skip to content

L-Macy/YieldPilot-AI

Repository files navigation

YieldPilot AI

DeFi Mullet Hackathon 参赛项目 · AI × Earn 赛道

YieldPilot AI 是一个面向普通用户的 AI 收益副驾(Co-pilot),帮助用户跨链发现、执行、管理 DeFi 收益机会。采用前端 + BFF 后端的正式产品架构,以 LI.FI Earn & Composer API 为核心路由引擎。


核心功能

模块 说明
Vault 发现 AI 加权评分 + 策略预设(High Yield / Hybrid / Conservative)
Portfolio Dashboard 真实链上余额(Blockscout 多链聚合),钱包资产与协议持仓分区显示
Vault 执行 LI.FI Quote → MetaMask 签名 → 链上 Deposit / Withdraw
Activity Wall 订单台账 + Blockscout 实时 ERC-20 转账记录
Baskets / AI Allocator 一键配置多 Vault 组合,按策略自动分配
AI 再平衡建议 基于当前持仓结构给出调仓提示

数据架构

链上余额(Portfolio)

  • 原生资产:通过 Blockscout REST API(/api/v2/addresses/{addr})获取 coin_balance,用 ethers.formatUnits 安全转换
  • ERC-20 代币:通过 Blockscout /api/v2/addresses/{addr}/token-balances 获取,只计入 reputation === 'ok' 的已认证资产,过滤掉测试币和垃圾空投
  • 多链并行Promise.all 同时查询已连接链 + Ethereum 主网
  • 价格来源:优先 Blockscout exchange_rate,其次 CoinGecko(ETH、BTC、USDC、MATIC)

数据分层

wallet  类型  → 用户钱包持有资产(ETH、USDC 等)
defi    类型  → 通过 YieldPilot 实际存入协议的持仓

模块状态标记

  • Official — 来自 LI.FI / Blockscout 官方 API
  • Fallback — 上游不可达,使用精选备用目录
  • Local — 本地规则引擎生成(AI 策略、再平衡建议)

项目结构

src/
  App.jsx                   # 主界面(Portfolio / Vaults / Baskets / Activity)
  services/
    wallet.js               # MetaMask 连接 + 链事件监听
    lifi.js                 # LI.FI Quote & Status API
    api.js                  # BFF 后端接口封装
  components/
    AiAllocator.jsx         # Basket 智能配置模块
    PortfolioCharts.jsx     # 资产分布饼图

server/
  index.js                  # Express BFF 入口
  routes/
    vaults.js               # GET /api/vaults(Earn API + Fallback 目录)
    portfolio.js            # GET /api/portfolio/:wallet
    quote.js                # POST /api/quote(LI.FI Quote 代理)
    orders.js               # GET/POST /api/orders(订单台账)
  lib/
    lifiClient.js           # LI.FI 上游客户端
    orderStore.js           # 本地持久化订单
  data/
    orders.json             # 执行台账(JSON 文件持久化)

技术栈

  • 前端:React 18 + Vite + Tailwind CSS + Framer Motion
  • 钱包:ethers.js v6(BrowserProvider + 链事件监听)
  • 链上数据:Blockscout REST API(Arbitrum / Ethereum / Base / Optimism / Polygon)
  • 价格:CoinGecko Public API
  • 路由 & 跨链:LI.FI Earn API + Composer/Quote API
  • 后端:Node.js + Express + dotenv
  • 持久化server/data/orders.json(本地台账,可替换为 DB)
  • UI 组件库:Lucide React + Recharts

快速启动

# 安装依赖
npm install

# 启动前端(Vite,默认 :5173)
npm run dev

# 启动后端 BFF(默认 :8787)
npm run dev:server

新建 .env 文件(参考 .env.example):

VITE_API_BASE_URL=http://localhost:8787/api
VITE_SHOW_DEBUG_QUOTE=false
SERVER_LIFI_API_KEY=(可选,填入后享受更高 LI.FI 速率限制)
SERVER_EARN_BASE_URL=https://earn.li.fi/v1/earn
PORT=8787

注意SERVER_LIFI_API_KEY 只在服务端读取,永远不会打包进前端。


BFF API

方法 路径 说明
GET /health 健康检查
GET /api/vaults Vault 列表(Earn API + Fallback)
GET /api/portfolio/:wallet 持仓快照
POST /api/quote LI.FI Quote 代理
GET /api/orders 历史订单(?wallet=0x…
POST /api/orders 创建新订单
GET /api/orders/:id/status 刷新单笔订单状态

Demo 演示流程

  1. 连接 MetaMask 钱包
  2. Portfolio 页面自动加载多链真实余额(钱包资产 / 协议持仓分区显示)
  3. 切换到 Vaults 选择策略,查看 AI 排序 Vault
  4. 选中 Vault → 配置金额和来源链 → 获取 LI.FI Quote
  5. 签名并执行,Activity Wall 实时更新
  6. 切换 Baskets 查看 AI 组合配置建议

构建

npm run build
# 输出至 dist/

About

An AI yield co-pilot that helps users discover, execute, and manage DeFi yield opportunities across chains — without needing to be an expert.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages