Scan Report
10 /100
sports-betting
Place and claim decentralized sports bets on-chain via Pinwin and Azuro on Polygon
This is a legitimate sports betting skill for Azuro/Pinwin on Polygon. The flagged base64 decoding is standard EIP-712 payload handling, fully documented in SKILL.md, and presents no security risk.
Safe to install
Approve for use. The skill properly handles private keys (local signing only), shows full payloads before signing, and requires explicit user confirmation for all on-chain actions.
Findings 3 items
| Severity | Finding | Location |
|---|---|---|
| Low | Base64-encoded EIP-712 payloads (false positive) | scripts/place-bet.js:188 |
| Low | Child process spawn for background watcher | scripts/place-bet.js:358 |
| Info | Multiple external API endpoints | SKILL.md:53 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | READ | ✓ Aligned | Node.js scripts read config; package.json declared |
| Network | READ | READ | ✓ Aligned | Queries Azuro subgraph (read-only GraphQL), Pinwin API |
| Shell | WRITE | WRITE | ✓ Aligned | Node.js scripts executed via documented commands |
| Environment | WRITE | WRITE | ✓ Aligned | Reads BETTOR_PRIVATE_KEY for local EIP-712 signing only |
| Skill Invoke | WRITE | WRITE | ✓ Aligned | disable-model-invocation: true in _meta.json |
2 Critical 21 findings
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(body.encoded, 'base64' scripts/claim-bets.js:92 Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(betRes.encoded, 'base64' scripts/place-bet.js:188 Medium External URL 外部 URL
https://pinwin.xyz README.md:3 Medium External URL 外部 URL
https://docs.openclaw.ai README.md:3 Medium Wallet Address 加密货币钱包地址
0xc2132D05D31c914a87C6611C10748AEb04B58e8F SKILL.md:48 Medium Wallet Address 加密货币钱包地址
0x8dA05c0021e6b35865FDC959c54dCeF3A4AbBa9d SKILL.md:49 Medium Wallet Address 加密货币钱包地址
0xF9548Be470A4e130c90ceA8b179FCD66D2972AC7 SKILL.md:50 Medium Wallet Address 加密货币钱包地址
0x0FA7FB5407eA971694652E6E16C12A52625DE1b8 SKILL.md:51 Medium External URL 外部 URL
https://api.onchainfeed.org/api/v1/public/market-manager/ SKILL.md:53 Medium External URL 外部 URL
https://thegraph.onchainfeed.org/subgraphs/name/azuro-protocol/azuro-api-polygon-v3 SKILL.md:54 Medium External URL 外部 URL
https://api.pinwin.xyz SKILL.md:55 Medium External URL 外部 URL
https://polygonscan.com/tx/ SKILL.md:56 Medium External URL 外部 URL
https://polygon-bor-rpc.publicnode.com SKILL.md:57 Medium External URL 外部 URL
https://api.onchainfeed.org/api/v1/public/market-manager/conditions-by-game-ids SKILL.md:296 Medium External URL 外部 URL
https://api.pinwin.xyz/agent/bet SKILL.md:305 Medium Wallet Address 加密货币钱包地址
0xf9548be470a4e130c90cea8b179fcd66d2972ac7 SKILL.md:368 Medium External URL 外部 URL
https://api.onchainfeed.org/v1/bet/orders/ordinar SKILL.md:410 Medium External URL 外部 URL
https://api.onchainfeed.org/v1 SKILL.md:410 Medium External URL 外部 URL
https://api.pinwin.xyz/agent/claim SKILL.md:512 Medium Wallet Address 加密货币钱包地址
0x0fa7fb5407ea971694652e6e16c12a52625de1b8 SKILL.md:526 Medium External URL 外部 URL
https://polygonscan.com/tx/$ scripts/claim-bets.js:123 File Tree
9 files · 76.5 KB · 1674 lines JavaScript 4f · 1044L
Markdown 2f · 589L
JSON 3f · 41L
├─
▾
scripts
│ ├─
claim-bets.js
JavaScript
│ ├─
get-games.js
JavaScript
│ ├─
package-lock.json
JSON
│ ├─
package.json
JSON
│ ├─
place-bet.js
JavaScript
│ └─
watch-bets.js
JavaScript
├─
_meta.json
JSON
├─
README.md
Markdown
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
viem | latest | npm | No | Well-audited Ethereum library |
@azuro-org/dictionaries | latest | npm | No | Official Azuro package for market resolution |
Security Positives
✓ Private key never leaves the local process — used only for EIP-712 signing via viem
✓ Full decoded payload shown to user before any signing occurs
✓ Contract address verification after base64 decode (clientCore and claimContract checks)
✓ Interactive confirmation gates prevent unauthorized transactions (requires 'yes' input)
✓ disable-model-invocation: true prevents accidental autonomous execution
✓ No shell command injection vectors detected
✓ No credential exfiltration — BETTOR_PRIVATE_KEY used solely for local signing
✓ No external script downloads (curl|bash, wget|sh patterns absent)
✓ Clear safety rules documented in SKILL.md with explicit confirmation requirements
✓ Proper error handling with user-facing messages