FundQuest 是一个创新的去中心化众筹平台,让创作者通过发行 NFT 来筹集资金,支持者则获得 NFT 作为回报和项目治理权。
- 创作者友好 - 无需复杂的技术知识,轻松发起众筹
- 资金安全 - 里程碑式资金解锁,智能合约托管
- DAO 治理 - 支持者投票决定项目方向和资金使用
- 动态 NFT - NFT 属性随项目进展自动升级
- 多链支持 - 部署在 Ethereum、Arbitrum、Base、Optimism
- Gas 优化 - 使用最新技术大幅降低交易成本
- 阶梯式奖励: 不同贡献金额对应不同稀有度的 NFT
- 软顶/硬顶机制: 保护创作者和支持者双方利益
- 自动退款: 众筹失败时自动退还资金
- 多币种支持: ETH + 主流稳定币 (USDC, USDT, DAI)
- 分期解锁: 资金按里程碑分期释放
- 社区投票: 每个里程碑需通过 DAO 投票才能解锁
- 透明追踪: 项目进展公开透明,实时可查
- 四级稀有度: Common、Rare、Epic、Legendary
- 属性升级: 随项目里程碑达成自动升级
- 链上元数据: 核心属性存储在链上,永久保存
- 版税机制: 支持 ERC2981 二级市场版税
- 投票权重: 基于贡献金额和 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 installforge 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/ # 审计报告
- 项目设计和架构
- 核心合约开发
- 单元测试覆盖
- 测试网部署
- 前端界面开发
- 治理模块集成
- 安全审计
- 公开测试
- 以太坊主网部署
- Layer 2 扩展
- 文档完善
- 社区建设
- API 开放
- 第三方集成
- 跨链桥接
- DAO 自治
我们欢迎所有形式的贡献!无论是报告 Bug、提出功能建议,还是提交代码。
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的改动 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启一个 Pull Request
详细信息请查看 CONTRIBUTING.md
- 遵循 Solidity Style Guide
- 所有新功能必须包含测试
- 保持测试覆盖率 >95%
- 提交前运行
forge fmt格式化代码
安全是我们的首要任务。如果你发现安全漏洞,请 不要 公开发布 Issue。
请发送邮件至:sggmico@gmail.com
我们承诺:
- 24小时内响应
- 定期安全审计
- Bug 赏金计划(即将推出)
本项目采用 MIT License 开源协议。
感谢以下开源项目和社区的支持:
- OpenZeppelin - 安全的智能合约库
- Foundry - 现代化的开发工具
- ERC721A - Gas 优化的 NFT 标准
如果这个项目对你有帮助,请给我们一个 Star!