技术透明
代码公开透明
我们承诺所有奖励发放完全自动化,由代码执行,无人工干预。以下是核心代码逻辑,供社区监督验证。
安全说明
资金池私钥安全存储在服务器环境变量中,代码中仅使用 process.env.POOL_WALLET_PRIVATE_KEY 引用, 永不硬编码、永不暴露给前端。所有转账操作仅在服务端API中执行。
公开地址
核心发放逻辑
以下是奖励发放API的核心代码(已脱敏),展示了完整的验证和转账流程:
// /app/api/claim-reward/route.ts
export async function POST(request: Request) {
const { walletAddress, score, examId } = await request.json()
// 1. 验证钱包地址格式
if (!walletAddress || !/^0x[a-fA-F0-9]{40}$/.test(walletAddress)) {
return { error: '无效的钱包地址' }
}
// 2. 验证考试分数 (必须 >= 90分)
if (score < 90) {
return { error: '考试未及格,无法领取奖励' }
}
// 3. 验证代币持有量 (必须 >= 1,000,000 枚)
const tokenBalance = await checkTokenBalance(walletAddress)
if (tokenBalance < 1000000) {
return { error: '代币持有不足' }
}
// 4. 检查今日是否已领取 (每天仅限一次)
if (hasClaimedToday(walletAddress)) {
return { error: '今日已领取,明天再来' }
}
// 5. 检查资金池余额是否充足
const poolBalance = await getPoolBalance()
if (poolBalance < 0.1 + 0.001) { // 奖励 + Gas费
return { error: '奖池余额不足,请稍后重试' }
}
// 6. 执行转账 (服务端自动执行)
const wallet = new ethers.Wallet(
process.env.POOL_WALLET_PRIVATE_KEY, // 私钥仅在服务端
provider
)
const tx = await wallet.sendTransaction({
to: walletAddress,
value: ethers.parseEther('0.1'), // 固定0.1 BNB
gasLimit: 21000n,
})
// 7. 等待交易确认
const receipt = await tx.wait()
// 8. 记录领取记录,防止重复领取
recordClaim(walletAddress)
return {
success: true,
txHash: receipt.hash,
amount: '0.1 BNB'
}
}代币验证逻辑
用户持币验证通过BSC RPC直接调用代币合约的balanceOf方法:
// /app/api/check-token-balance/route.ts
const TOKEN_CONTRACT = '0x06b846a16a58254101cb96a71fe919e5be837777'
const MIN_REQUIRED = 1000000 // 100万枚
async function checkTokenBalance(walletAddress: string) {
// 调用ERC20标准的balanceOf方法
const data = '0x70a08231' + walletAddress.slice(2).padStart(64, '0')
const response = await fetch(BSC_RPC_URL, {
method: 'POST',
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_call',
params: [{ to: TOKEN_CONTRACT, data }, 'latest'],
id: 1,
}),
})
const result = await response.json()
const balanceWei = BigInt(result.result)
const balance = Number(balanceWei) / 1e18 // 18位小数
return balance >= MIN_REQUIRED
}验证流程图
1
连接钱包
用户连接MetaMask/Binance钱包
2
代币验证
自动查询链上代币余额,验证是否持有≥100万枚
3
完成考试
用户答题,系统计算得分
4
分数验证
验证得分≥90分(及格线)
5
防重复检查
检查该钱包今日是否已领取
6
余额检查
确认资金池有足够BNB发放
7
自动转账
服务端使用ethers.js发起链上转账
8
交易确认
等待BSC网络确认,返回txHash
我们的承诺
- 所有奖励发放100%自动化,无人工干预
- 私钥安全存储于服务器环境变量,代码中绝不硬编码
- 所有转账记录可在BSCScan上公开查询验证
- 代码逻辑公开透明,接受社区监督
- 每日每钱包仅限领取一次,防止滥用
- 双重验证机制:前端+后端同时验证代币持有量