🧪 AI Moment NFT 是一个创新的去中心化应用,结合实时天气数据、地理位置信息和AI图像生成技术,为用户创建独特的"此地此刻"数字纪念NFT。
⚙️ 基于 Scaffold-ETH 2 构建,使用 NextJS、RainbowKit、Foundry、Wagmi、Viem 和 TypeScript 技术栈。
- 🌍 实时天气驱动: 基于用户所在位置与实时天气数据,保证每张图都是独一无二的时空片段
- 🎨 AI 智能生成: 使用最新AI技术自动生成风格化海报,每一张都是艺术品
- 💎 NFT 铸造: ERC-721标准,每天每地限量1枚,保证稀缺性和收藏价值
- 🔥 防重复机制: 智能合约防止同一地址在同一城市同一天重复铸造
- 📱 响应式设计: 支持移动端和桌面端,提供流畅的用户体验
- 🔐 多钱包支持: 集成RainbowKit,支持多种钱包连接方式
- WeatherNFT.sol: 核心NFT合约,基于OpenZeppelin标准
- ERC-721: 标准NFT代币实现
- Foundry: 智能合约开发和测试框架
- Next.js 15: React框架,支持App Router
- Tailwind CSS: 现代化CSS框架
- DaisyUI: 组件库,提供美观的UI组件
- RainbowKit: Web3钱包连接解决方案
- OpenAI API: AI图像生成
- Pinata: IPFS文件存储
- OpenWeatherMap: 实时天气数据
- 克隆项目并安装依赖
git clone <your-repo-url>
cd AI-pixel-NFT
yarn install- 启动本地区块链网络
yarn chain- 部署智能合约
yarn deploy- 启动前端应用
yarn start- 访问应用
打开浏览器访问:
http://localhost:3000
- 连接钱包: 使用MetaMask或其他支持的钱包连接
- 选择城市: 输入城市名称或使用GPS定位
- 获取天气: 系统自动获取当前天气数据
- AI生成: 基于天气和地理位置生成独特海报
- 铸造NFT: 确认信息后铸造到区块链
- 首页 (
/): 项目介绍和功能概览 - 创建 (
/create): 创建新的天气NFT - 我的收藏 (
/me): 查看已拥有的NFT - 调试 (
/debug): 智能合约交互界面
AI-pixel-NFT/
├── packages/
│ ├── foundry/ # 智能合约
│ │ ├── contracts/ # Solidity合约
│ │ ├── script/ # 部署脚本
│ │ └── test/ # 合约测试
│ └── nextjs/ # 前端应用
│ ├── app/ # Next.js页面
│ ├── components/ # React组件
│ ├── hooks/ # 自定义Hooks
│ └── lib/ # 工具库
- 合约位置:
packages/foundry/contracts/WeatherNFT.sol - 测试:
yarn foundry:test - 部署:
yarn deploy
- 主页面:
packages/nextjs/app/page.tsx - 创建页面:
packages/nextjs/app/create/page.tsx - 样式:
packages/nextjs/styles/globals.css
创建 .env.local 文件并配置以下环境变量:
# OpenAI API
OPENAI_API_KEY=your_openai_api_key
# Pinata IPFS
PINATA_JWT=your_pinata_jwt
# 天气API (可选)
OPENWEATHER_API_KEY=your_openweather_api_key
# Alchemy (用于主网部署)
ALCHEMY_API_KEY=your_alchemy_api_keyyarn foundry:testcd packages/nextjs
yarn testyarn chain # 启动本地网络
yarn deploy # 部署合约
yarn start # 启动前端# 配置目标网络
yarn deploy --network sepolia # 测试网
yarn deploy --network mainnet # 主网
# 部署前端
yarn vercel # Vercel部署
yarn ipfs # IPFS部署mintWithURI(): 铸造NFTweatherData(): 查询NFT天气数据mintedCombinations(): 检查铸造资格
useScaffoldReadContract: 读取合约数据useScaffoldWriteContract: 写入合约数据useScaffoldEventHistory: 监听合约事件
我们欢迎社区贡献!请查看 CONTRIBUTING.md 了解详细指南。
- Fork 项目
- 创建功能分支
- 提交更改
- 发起 Pull Request
本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。
- Scaffold-ETH 2 - 优秀的以太坊开发框架
- OpenZeppelin - 安全的智能合约库
- OpenAI - AI图像生成服务
- Pinata - IPFS文件存储服务
- 项目地址: [GitHub Repository]
- 问题反馈: [GitHub Issues]
- 社区讨论: [Discord/Telegram]
用AI记录每一个独特的时刻 🌤️
Built with ❤️ using Scaffold-ETH 2