前置条件
设置 Privy
设置 Privy
-
创建您的 Privy 应用:
选择 “Web” 作为平台。然后点击 “Create app”。
在下一个页面,请确保保存您的 App ID。
-
设置登录方式:

-
禁用外部钱包:

-
向下滚动并启用 “Automatically create embedded wallets on login” 并选择 “EVM Wallets”:

设置 0x
设置 0x
- 创建您的 0x 账户: 前往 0x 仪表盘 并创建您的账户。 在下一页,请确保保存您的 API Key。
- 获取您的 API Key: 要获取您的 API key,请创建一个应用,然后前往 API Keys。 复制该 API key 并保存以备后用。
设置
-
克隆仓库:
-
cd进入项目目录: -
安装依赖:
-
在根目录创建
.env.local文件: -
开始向
.env.local文件添加环境变量:如果您丢失了 Privy App ID,可以在 Privy 仪表盘中找到。 -
为 Web 推送通知生成 VAPID 密钥:
将生成的密钥复制到您的 .env.local 文件中(替换步骤 5 中的占位值)。
-
运行应用:
开发模式:
应用将在 http://localhost:3000 上可用。 生产模式: 完整的 PWA 功能(包括安装提示):
模板文件夹结构
更改应用名称
- 编辑
public/manifest.json:- 修改
name和short_name字段
- 修改
- 运行
npm run build更新应用
通知设置
浏览器设置
Chrome/Edge
Chrome/Edge
- 点击地址栏中的锁形图标 🔒
- 将 “Notifications” 设置为 “Allow”
- 或前往 Settings → Privacy and security → Site Settings → Notifications
Firefox
Firefox
- 点击地址栏中的盾牌图标 🛡️
- 如有需要,为此站点关闭 “Enhanced Tracking Protection”
- 在出现提示时允许通知
- 或前往 Settings → Privacy & Security → Permissions → Notifications
Safari
Safari
- 前往 Safari → Settings → Websites → Notifications
- 找到您的站点并将其设置为 “Allow”
系统设置
macOS
macOS
- System Preferences → Notifications & Focus
- 找到您的浏览器并确保通知已启用
- 在浏览器设置中勾选 “Allow notifications from websites”
Windows
Windows
- Settings → System → Notifications & actions
- 确保您的浏览器可以发送通知
- 检查浏览器通知设置
iOS
iOS
- Settings → Notifications → [您的浏览器]
- 启用 “Allow Notifications”
- 同时在浏览器设置中启用
Android
Android
- Settings → Apps → [您的浏览器] → Notifications
- 启用通知
- 检查浏览器通知权限
需要后端集成
这需要后端实现:
- 在用户订阅时 保存订阅数据(参见代码中的 TODO 注释)
- 在用户取消订阅时 删除订阅数据
- 实现
/notification端点 以发送实际的推送通知 - 使用
web-push库 或类似方案进行服务器端通知投递
自定义通知内容
要自定义推送通知内容,请编辑app/notification/route.ts ,并修改 sendNotification 调用中的 title、message、icon 及其他属性。
修改应用图标和启动画面
应用图标
将public/icons/ 目录下的图标文件替换为您的自定义图标:
icon-512x512.png- 主应用图标(512×512px)android-chrome-192x192.png- Android 图标(192×192px)apple-touch-icon.png- iOS 主屏幕图标(180×180px)
public/favicon.ico- 浏览器 faviconapp/favicon.ico- Next.js 应用 favicon
启动画面
启动画面根据您的应用图标和在以下位置定义的主题颜色自动生成:manifest.json。要自定义:
- 在以下位置更新
theme_color和background_color:manifest.json - 确保您的主图标(
icon-512x512.png)代表您的品牌 - 运行
npm run build以应用更改
添加更多代币
该模板目前支持 WMON 和 USDT 代币。要添加更多可交易代币,请按以下步骤操作:1. 查找代币信息
在添加代币之前,您需要以下信息:- 合约地址:代币的智能合约地址
- 符号:代币的符号(例如 “ETH”、“USDC”)
- 名称:代币的完整名称
- 小数位数:小数位数(大多数 ERC-20 代币为 18)
- Logo URI:代币 logo 图像的 URL
2. 更新代币常量
编辑utils/constants.ts 并在三处添加您的新代币:
A. 添加到 MONAD_TESTNET_TOKENS 数组
utils/constants.ts
B. 添加到 MONAD_TESTNET_TOKENS_BY_SYMBOL 记录
utils/constants.ts
C. 添加到 MONAD_TESTNET_TOKENS_BY_ADDRESS 记录
utils/constants.ts
3. 示例:添加 shMON
以下是添加 USDC 的完整示例:utils/constants.ts
4. 重要说明
- 小数位数:大多数代币使用 18 位小数,但某些代币(例如 USDT、USDC)使用 6 位
- Logo URL:使用永久、可靠的图像 URL。考虑自行托管 logo 以获得更好的可靠性
- 测试:在生产环境使用前,先用小额进行充分测试
- 0x 协议支持:确保该代币在您的目标网络上受 0x 协议支持
5. 重新构建并测试
添加代币后:配置滑点容忍度
滑点容忍度决定了您在交易中愿意接受的价格波动幅度。该应用目前使用 0x API 的默认滑点容忍度 1%(100 个基点)。添加滑点配置
1. 更新常量
在此处添加滑点选项:utils/constants.ts:
utils/constants.ts
2. 更新 API 路由
为两个 API 路由都添加slippageBps 参数:
app/api/price/route.ts and app/api/quote/route.ts:
app/api/price/route.ts
3. 将滑点添加到组件
更新价格/报价请求以包含slippageBps 参数:
In app/components/0x/price.tsx:
app/components/0x/price.tsx
滑点参数细节
- 范围:0-10000 个基点(0%-100%)
- 默认:100(1%)
- 格式:基点(100 bps = 1%)
部署到 Vercel
使用 Vercel 仪表盘
-
连接您的仓库:
- 将您的代码推送到 GitHub
- 访问 vercel.com 并导入您的仓库
-
配置环境变量:
- 在您的 Vercel 项目仪表盘,前往 Settings → Environment Variables
- 添加与您的
.env.local相同的变量:
- 部署:Vercel 将自动构建并部署您的应用
-
更新 Privy 设置:在您的 Privy 仪表盘中,将您的 Vercel 域名(例如
your-app.vercel.app)添加到允许的来源
使用 Vercel CLI
或者,使用 Vercel CLI 部署:-
安装 Vercel CLI:
-
登录 Vercel:
-
部署:
按照提示配置您的项目。
-
添加环境变量:
您也可以前往 Vercel 仪表盘在那里添加环境变量。
-
使用环境变量重新部署:


