nft-blockchain-NFT盲盒-代币经济-分红矿池-RWA美股买币的Web3平台

nft-blockchain-NFT盲盒-代币经济-分红矿池-RWA美股买币的Web3平台
这是一个 NFT 盲盒 + 代币经济 + 分红矿池 + RWA(美股买币) 的 Web3 平台,后端基于 FastAdmin(ThinkPHP),链上用 Hardhat 部署 Solidity 合约,前端是静态 DApp 网页(nft-web)。
截图和视频-NFT盲盒-代币经济-分红矿池-RWA美股买币的Web3平台.rar
链接: https://pan.baidu.com/s/1ytFOWyI6oyjH2IcLqPupHA?pwd=jupg 提取码: jupg
一、项目整体构成(三大块)
nft-blockchain/
├─ 后端(PHP):FastAdmin + ThinkPHP 5.x
│ ├─ application/admin/ 管理后台(运营人员用)
│ ├─ application/api/ 给 DApp 的接口(手机/网页调用)
│ └─ application/index/ 普通 Web 页
├─ 链上(Solidity):contracts/,用 Hardhat 部署到本地链
│ ├─ MBToken ERC20 代币(平台的钱)
│ ├─ AMKNFT ERC721 NFT(盲盒开出来的东西,1~5 星)
│ ├─ LotteryPool 盲盒抽奖合约
│ └─ DividendVault 分红矿池合约
├─ 数据库(MySQL):eth_ 前缀表
│ ├─ nft2_20230916.sql 老业务表(用户、钱包、提现、佣金等)
│ └─ dapp_init.sql DApp 新表(合约地址、链上事件、盲盒订单等)
└─ 前端:nft-web/(Web3 DeFi 静态网页)+ public/
数据流向:
- 用户在网页上连钱包(MetaMask)。
- 网页调用 PHP 接口,接口去查数据库 + 读链上合约。
- 开盲盒这类”花钱”的动作,PHP 通过一个 守护进程(daemon.js) 调 Node 脚本(action.js)去操作本地链,开完再把结果写回数据库。
二、代币经济学(链上部分,contracts/src/)
1. MBToken —— 平台的代币(tokens/MBToken.sol)
- 总量 8.1 亿,18 位小数。
- 买卖各收 2% 税,税进 RWA 金库(用来买美股 SPCXB)。
- 抽奖、分红、NFT 这三个合约在”白名单”里,它们之间的转账免税。
2. AMKNFT —— 盲盒 NFT(tokens/AMKNFT.sol)
- 总共 精确 10000 张,按 1~5 星分档。
- 五星精确 100 张,其他星级各有配额上限(TIER_QUOTA 写死在合约里)。
- NFT 本身只管铸造和发放,随机性交给下面的抽奖合约。
3. LotteryPool —— 盲盒抽奖合约(market/LotteryPool.sol,可升级)
- 用户花钱(MB 代币)开盲盒。
- 随机性用 Chainlink VRF v2(真随机,防作弊)。
- 花掉的钱分成三块:
- 55% 销毁(通缩)
- 40% 进矿池(分给持 NFT 的人)
- 5% 给推荐人(直推 4% + 间推 1%;没有上级就回流矿池)
4. DividendVault —— 分红矿池(market/DividendVault.sol,可升级)
- 两个池子:
- 矿池:盲盒的 40% + OTC 转手的 3%
- RWA 池:买币(SPCXB)产生的 MB 税
- 每 24 小时发一次分红。
- 按 NFT 星级决定分红权重(五星 25、四星 22、三星 20、二星 18、一星 15,单位基点)。
- 持有对应星级的 NFT 的人,平分该星级的池子。
“可升级”意思是这两个合约用了 UUPS 代理模式,以后出 bug 可以换逻辑而不用换地址。
三、后端模块(PHP)
给 DApp 的接口(application/api/controller/)
| 控制器 | 干什么 |
|---|---|
| Dapp.php | 核心。首页、代币余额、RWA、NFT、市场、我的、抽奖、盲盒(openbox)、分红(claim)、OTC 买卖、种子数据 |
| DappBase.php | Dapp 的基类,不套登录鉴权,直接出 JSON |
| Defi.php | 理财(DeFi):质押列表、批准、收益、邀请奖励、NFT 购买 |
| Token.php | 授权、刷新 |
| User.php | 登录、提现、个人信息、邀请人、领取奖励 |
| Record.php | 各种流水记录 |
| Cron.php | 定时任务(比如定期算分红) |
| 其余 | 短信、邮件、验证等基础件 |
管理后台(application/admin/controller/)
运营人员登录后操作的页面:
- 数据看板:Dashboard(总览)
- 财务:AccountDetails(账户明细)、WalletCoin(授权币种)、ExchangeRecord(兑换记录)、CommissionDetails(佣金明细)、UserWithdraw(用户提现)
- NFT 业务:Category(分类)、Token(NFT 产品)、PledgeActivity(质押活动)、PledgeOrder(质押订单)
- 推广体系:UserReport(用户报表)、PlatformReport(平台报表)、ProxyReport(代理报表)
- 内容:News(新闻)、Notice(公告)、Address(收款地址)
- 配置:WithdrawSettings(提现设置)
- 用户管理:user/、users/ 目录(会员及其团队)
数据模型(application/common/model/)
主要实体:用户(User)、钱包币(WalletCoin)、NFT(Token/Fish)、质押(Pledge*)、提现(UserWithdraw/Withdraw*)、佣金(CommissionDetails)、团队(UserTeam)、流水(MoneyLog/ScoreLog/IncomeDetails)、地区、公告等。
四、数据库(两张 SQL 初始化脚本)
老业务表(nft2_20230916.sql,eth_ 前缀)
主要存人跟钱:
- 会员/用户(user、user_group、user_team)
- 钱包与币(wallet_coin、token、user_token)
- 收支流水(user_money_log、user_income、score_log、commission_details)
- 提现(user_withdraw、withdraw、withdraw_action、withdraw_settings)
- NFT 产品与质押(fish、category、pledge_activity、pledge_order)
- 账户明细(account_details)
- 报表(user_report、platform_report、proxy_report)
DApp 新表(dapp_init.sql)
专为链上业务设计:
- eth_contract_addr:存 4 个合约的地址和 ABI(前端就靠它找合约)
- eth_chain_event:链上事件原始日志(索引用)
- eth_blindbox_order:开盲盒记录(花了多少 MB、销毁多少、进池多少、给推荐多少、tx 哈希)
- eth_nft_holding:NFT 持有快照
- eth_otc_order:场外(OTC)交易订单
- eth_dividend_claim:分红领取记录
- eth_referral:推荐关系
- eth_rwa_record:RWA(买美股)记录
五、前后端怎么连起来(执行链路)
- 前端
nft-web/(静态页,标题 “Web3 DeFi”)用 MetaMask 连钱包。 - 页面请求 PHP 接口(
/api/dapp/xxx)。 - 查数据类请求:PHP 直接读 MySQL + 合约地址,返回 JSON。
- 花钱类动作(开盲盒 openbox、领分红 claim):
- PHP 调 daemon.js(本地 8799 端口的 Node 服务)
- daemon 再 spawn 一个 action.js(Hardhat 脚本)
- action.js 用测试账户在本地链上真实执行:铸造 → 授权 → 开盲盒 → VRF 随机回填
- 跑完自动触发”索引器”,把链上结果写回 MySQL,保证数据库和链上数据一致
本地链是 Hardhat(chainId 31337),合约部署在 localhost:8545。生产要上正式链的话,改 RPC 地址即可。
六、目录速查(关键文件)
| 路径 | 作用 |
|---|---|
contracts/src/tokens/MBToken.sol |
ERC20 代币 |
contracts/src/tokens/AMKNFT.sol |
ERC721 盲盒 NFT |
contracts/src/market/LotteryPool.sol |
盲盒抽奖(VRF 真随机) |
contracts/src/market/DividendVault.sol |
分红矿池(按星级) |
contracts/scripts/deploy.js |
一键部署 4 合约 + 白名单 + VRF Mock |
contracts/scripts/daemon.js |
PHP 调链上的桥(HTTP 服务) |
contracts/scripts/action.js |
具体链上动作(开盒/领券/回填) |
dapp_init.sql |
DApp 表结构 |
nft2_20230916.sql |
老业务表 + 数据 |
application/api/controller/Dapp.php |
DApp 主接口 |
application/admin/controller/ |
运营后台 |
nft-web/ |
前端静态 DApp |
七、业务玩法
- 平台上发一种币(MB),大家买卖会交税。
- 用户花钱开盲盒,开出 1~5 星的 NFT(五星最稀有,只有 100 张)。
- 开盲盒的钱,一部分销毁(币变值钱)、一部分进矿池、一部分给拉你的人。
- 矿池里的钱 + 买美股交的钱,每天发给持有 NFT 的人,星级越高分越多。
- 用户可以用 NFT/币 做质押(DeFi)赚收益,也可以场外(OTC)把币换成美股 SPCXB。
- 后台负责:看数据、批提现、管 NFT 分类、管质押活动、算佣金和代理分成。