Skip to content

Repository files navigation

FundQuest

License: MIT Solidity Foundry PRs Welcome

去中心化NFT众筹平台 | Decentralized NFT Crowdfunding Platform

English | 中文


简介

FundQuest 是一个创新的去中心化众筹平台,让创作者通过发行 NFT 来筹集资金,支持者则获得 NFT 作为回报和项目治理权。

为什么选择 FundQuest?

  • 创作者友好 - 无需复杂的技术知识,轻松发起众筹
  • 资金安全 - 里程碑式资金解锁,智能合约托管
  • DAO 治理 - 支持者投票决定项目方向和资金使用
  • 动态 NFT - NFT 属性随项目进展自动升级
  • 多链支持 - 部署在 Ethereum、Arbitrum、Base、Optimism
  • Gas 优化 - 使用最新技术大幅降低交易成本

核心功能

智能众筹系统

  • 阶梯式奖励: 不同贡献金额对应不同稀有度的 NFT
  • 软顶/硬顶机制: 保护创作者和支持者双方利益
  • 自动退款: 众筹失败时自动退还资金
  • 多币种支持: ETH + 主流稳定币 (USDC, USDT, DAI)

里程碑管理

  • 分期解锁: 资金按里程碑分期释放
  • 社区投票: 每个里程碑需通过 DAO 投票才能解锁
  • 透明追踪: 项目进展公开透明,实时可查

动态 NFT 系统

  • 四级稀有度: Common、Rare、Epic、Legendary
  • 属性升级: 随项目里程碑达成自动升级
  • 链上元数据: 核心属性存储在链上,永久保存
  • 版税机制: 支持 ERC2981 二级市场版税

DAO 治理

  • 投票权重: 基于贡献金额和 NFT 稀有度
  • 提案系统: 社区可提议项目调整
  • 时间锁: 重要决策有执行延迟期
  • 紧急暂停: 多重签名控制的安全机制

激励系统

  • 早鸟奖励: 早期支持者获得额外福利
  • 推荐机制: 推荐新支持者获得奖励
  • 忠诚度奖励: 长期持有者享受特殊权益

技术架构

技术栈

智能合约层
├── Solidity 0.8.26+        # 最新稳定版
├── Foundry                 # 现代化开发框架
├── OpenZeppelin 5.0+       # 安全合约库
└── ERC721A                 # Gas 优化的 NFT 标准

前端层
├── Next.js 15              # React 框架
├── wagmi v2 + viem         # Web3 交互
├── shadcn/ui               # UI 组件
└── TailwindCSS             # 样式框架

索引层
└── The Graph Protocol      # 链上数据索引

核心合约

合约 功能 状态
FundQuestFactory 工厂合约,创建众筹项目 开发中
FundQuestProject 众筹项目逻辑 开发中
CrowdNFT NFT 铸造与管理 开发中
GovernanceModule DAO 治理模块 计划中
RewardDistributor 奖励分配 计划中

快速开始

前置要求

安装

# 克隆仓库
git clone https://github.com/yourusername/FundQuest.git
cd FundQuest

# 安装依赖
forge install

# 安装前端依赖(如果需要)
cd frontend && npm install

编译合约

forge build

运行测试

# 运行所有测试
forge test

# 运行测试并查看 Gas 报告
forge test --gas-report

# 运行特定测试
forge test --match-test testFundProject

# 查看测试覆盖率
forge coverage

部署到测试网

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的密钥

# 部署到 Sepolia 测试网
forge script script/Deploy.s.sol --rpc-url sepolia --broadcast --verify

使用示例

创建众筹项目

// 通过工厂合约创建项目
address project = factory.createProject(
    1 ether,                    // 众筹目标
    block.timestamp + 30 days,  // 截止时间
    "My NFT Collection",        // NFT 名称
    "MNFT",                     // NFT 符号
    "ipfs://...",              // 基础 URI
    1000,                       // 最大供应量
    tiers                       // 阶梯配置
);

支持项目

// 支持者贡献 ETH
IFundQuestProject(projectAddress).fund{value: 0.5 ether}();

创建治理提案

// 创建者提交里程碑提案
uint256 proposalId = project.createProposal(
    0,                          // 里程碑 ID
    "Complete initial development"
);

投票

// 支持者对提案投票
project.vote(proposalId, true); // true 表示支持

项目结构

FundQuest/
├── contracts/
│   ├── core/              # 核心合约
│   ├── modules/           # 功能模块
│   ├── libraries/         # 工具库
│   ├── interfaces/        # 接口定义
│   └── utils/             # 辅助合约
├── test/
│   ├── unit/              # 单元测试
│   ├── integration/       # 集成测试
│   ├── fork/              # 分叉测试
│   └── invariant/         # 不变量测试
├── script/                # 部署脚本
├── docs/                  # 文档
├── frontend/              # 前端应用
└── audit/                 # 审计报告

开发路线图

Phase 1: MVP (Q1 2025)

  • 项目设计和架构
  • 核心合约开发
  • 单元测试覆盖
  • 测试网部署

Phase 2: Beta (Q2 2025)

  • 前端界面开发
  • 治理模块集成
  • 安全审计
  • 公开测试

Phase 3: 主网上线 (Q3 2025)

  • 以太坊主网部署
  • Layer 2 扩展
  • 文档完善
  • 社区建设

Phase 4: 生态扩展 (Q4 2025)

  • API 开放
  • 第三方集成
  • 跨链桥接
  • DAO 自治

贡献指南

我们欢迎所有形式的贡献!无论是报告 Bug、提出功能建议,还是提交代码。

如何贡献

  1. Fork 本仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的改动 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

详细信息请查看 CONTRIBUTING.md

开发规范

  • 遵循 Solidity Style Guide
  • 所有新功能必须包含测试
  • 保持测试覆盖率 >95%
  • 提交前运行 forge fmt 格式化代码

安全

安全是我们的首要任务。如果你发现安全漏洞,请 不要 公开发布 Issue。

请发送邮件至:sggmico@gmail.com

我们承诺:

  • 24小时内响应
  • 定期安全审计
  • Bug 赏金计划(即将推出)

许可证

本项目采用 MIT License 开源协议。


致谢

感谢以下开源项目和社区的支持:


Star History

如果这个项目对你有帮助,请给我们一个 Star!

Star History Chart


About

FundQuest is an innovative decentralized crowdfunding platform.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages