Scan Report
This report was generated in Chinese. Some content may be in Chinese.
5 /100
self-hosted-crypto-payments
Add self-custodied crypto payment checkout to a Next.js + Supabase app. Accepts ETH, BTC, SOL, USDC, USDT and 25+ coins across 9 chains.
这是一个合法且代码质量高的自托管加密货币支付集成技能,声明与行为完全一致,无恶意特征。
Safe to install
可直接使用。该技能为 Next.js + Supabase 应用添加加密货币支付功能(ETH/BTC/SOL/USDC 等),所有代码均为标准的区块链交互和 HD 钱包派生逻辑。
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Low | npm 依赖未锁定版本 Supply Chain | SKILL.md:51 |
| Low | 客户端剪贴板写入(低风险) Sensitive Access | resources/crypto-payment-modal.tsx:155 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | 技能声明 Write 工具用于将资源文件复制到目标项目,代码行为一致(生成 Next.js API routes 和 React 组件文件)。 |
| Network | READ | READ | ✓ Aligned | crypto-checkout-route.ts:46 调用 CoinGecko API,check-crypto-payments-route.ts:64 调… |
| Shell | WRITE | NONE | ✓ Aligned | Bash 工具声明用于运行 npm install,但代码本身无 shell 执行 — 行为符合预期。 |
| Environment | NONE | READ | ✓ Aligned | crypto-wallets.ts 读取 CRYPTO_MASTER_MNEMONIC,check-crypto-payments-route.ts 读取 CR… |
| Skill Invoke | NONE | NONE | — | 无子技能调用行为。 |
| Clipboard | NONE | NONE | — | crypto-payment-modal.tsx 使用 navigator.clipboard.writeText 复制钱包地址 — 这是支付场景的合法 UX … |
| Browser | NONE | READ | ✓ Aligned | crypto-payment-modal.tsx 使用 router.refresh() 和 fetch 进行状态轮询 — 标准的 React 客户端组件行为,… |
| Database | NONE | WRITE | ✓ Aligned | Supabase 写入 crypto_payments 表(insert)、更新 profiles 和 bots 表 — 未在 allowed-tools 中声… |
26 findings
Medium External URL 外部 URL
https://cr8claw.com LICENSE.txt:3 Medium External URL 外部 URL
https://iancoleman.io/bip39/ SKILL.md:69 Medium External URL 外部 URL
https://etherscan.io SKILL.md:180 Medium External URL 外部 URL
https://api.coingecko.com/api/v3/simple/price?ids=$ resources/crypto-checkout-route.ts:47 Medium External URL 外部 URL
https://api.qrserver.com/v1/create-qr-code/?data=$ resources/crypto-payment-modal.tsx:208 Medium External URL 外部 URL
https://cloudflare-eth.com resources/crypto-wallets.ts:43 Medium External URL 外部 URL
https://mainnet.base.org resources/crypto-wallets.ts:44 Medium External URL 外部 URL
https://polygon-rpc.com resources/crypto-wallets.ts:45 Medium External URL 外部 URL
https://arb1.arbitrum.io/rpc resources/crypto-wallets.ts:46 Medium External URL 外部 URL
https://mainnet.optimism.io resources/crypto-wallets.ts:47 Medium External URL 外部 URL
https://bsc-dataseed.binance.org resources/crypto-wallets.ts:48 Medium External URL 外部 URL
https://api.avax.network/ext/bc/C/rpc resources/crypto-wallets.ts:49 Medium Wallet Address 加密货币钱包地址
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 resources/crypto-wallets.ts:55 Medium Wallet Address 加密货币钱包地址
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 resources/crypto-wallets.ts:56 Medium Wallet Address 加密货币钱包地址
0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 resources/crypto-wallets.ts:57 Medium Wallet Address 加密货币钱包地址
0xaf88d065e77c8cC2239327C5EDb3A432268e5831 resources/crypto-wallets.ts:58 Medium Wallet Address 加密货币钱包地址
0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 resources/crypto-wallets.ts:59 Medium Wallet Address 加密货币钱包地址
0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d resources/crypto-wallets.ts:60 Medium Wallet Address 加密货币钱包地址
0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E resources/crypto-wallets.ts:61 Medium Wallet Address 加密货币钱包地址
0xdAC17F958D2ee523a2206206994597C13D831ec7 resources/crypto-wallets.ts:64 Medium Wallet Address 加密货币钱包地址
0xc2132D05D31c914a87C6611C10748AEb04B58e8F resources/crypto-wallets.ts:65 Medium Wallet Address 加密货币钱包地址
0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 resources/crypto-wallets.ts:66 Medium Wallet Address 加密货币钱包地址
0x55d398326f99059fF775485246999027B3197955 resources/crypto-wallets.ts:67 Medium Wallet Address 加密货币钱包地址
0x6B175474E89094C44Da98b954EedeAC495271d0F resources/crypto-wallets.ts:70 Medium External URL 外部 URL
https://api.mainnet-beta.solana.com resources/crypto-wallets.ts:80 Medium External URL 外部 URL
https://mempool.space/api/address resources/crypto-wallets.ts:81 File Tree
11 files · 60.0 KB · 1553 lines TypeScript 6f · 1219L
Markdown 2f · 261L
SQL 2f · 52L
Text 1f · 21L
├─
▾
examples
│ └─
integration-example.tsx
TypeScript
├─
▾
resources
│ ├─
005_crypto_payments.sql
SQL
│ ├─
006_crypto_direct.sql
SQL
│ ├─
check-crypto-payments-route.ts
TypeScript
│ ├─
crypto-checkout-route.ts
TypeScript
│ ├─
crypto-checkout-status-route.ts
TypeScript
│ ├─
crypto-payment-modal.tsx
TypeScript
│ └─
crypto-wallets.ts
TypeScript
├─
LICENSE.txt
Text
├─
README.md
Markdown
└─
SKILL.md
Markdown
Dependencies 6 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
ethers | * | npm | No | SKILL.md 中未指定版本,建议锁定版本 |
@scure/bip32 | * | npm | No | SKILL.md 中未指定版本,建议锁定版本 |
@scure/bip39 | * | npm | No | SKILL.md 中未指定版本,建议锁定版本 |
@scure/base | * | npm | No | SKILL.md 中未指定版本,建议锁定版本 |
@noble/hashes | * | npm | No | SKILL.md 中未指定版本,建议锁定版本 |
@solana/web3.js | * | npm | No | SKILL.md 中未指定版本,建议锁定版本 |
Security Positives
✓ 代码质量高:使用 timingSafeEqual 防止 CRON_SECRET 时序攻击
✓ 安全设计良好:主助记词(CRYPTO_MASTER_MNEMONIC)仅在服务器端使用,从不暴露给客户端
✓ 地址派生使用标准 BIP44/84/SLIP-0010 路径,与 MetaMask/Phantom 等主流钱包兼容
✓ 支付金额来自服务端常量而非用户输入,防止金额操纵攻击
✓ 数据库层面强制唯一约束,防止地址重用
✓ 原子性确认:使用 WHERE status='pending' 防止双重处理
✓ 完整的 Supabase RLS 策略配置
✓ 无混淆代码、无 base64 编码执行、无反向 shell
✓ 声明(SKILL.md)与实际代码行为完全一致,无阴影功能
✓ QR 码生成使用外部服务(qrserver.com)而非本地计算 — 符合预期