Skill Trust Decision

odds-movement-monitor-v2026

Hardcoded billing API key and undeclared network communications to skillpay.me for user payment charges, with documentation mismatch between SKILL.md and skill-card.md.

Install decision first Source: ClawHub Scanned: Jun 24, 2026
Files 11
Artifacts 6
Violations 3
Findings 4
Most direct threat evidence

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

3 undeclared or violating capabilities were inferred.

Block
Hidden execution and egress

1 high-risk artifacts or egress signals were extracted.

Pass
Attack chain and severe findings

There is no explicit malicious chain in the report.

Pass
Dependencies and supply chain hygiene

Dependencies are present but no obvious high-risk issue stands out.

What drove the risk score up

Hardcoded billing API key +20

Sensitive credential 'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2' hardcoded in payment.py:12

Undeclared billing module +15

SKILL.md does not declare payment.py module or SkillPay integration

Doc-to-code mismatch +10

skill-card.md mentions billing risks, but SKILL.md has no billing declaration

Most important evidence

Medium Credential Theft

Hardcoded Billing API Key

A sensitive API key for SkillPay billing service is hardcoded directly in payment.py source code at line 12. This credential should be stored securely via environment variables or a secrets manager.

payment.py:12
Replace with os.getenv('BILLING_API_KEY') and provide instructions for users to set the environment variable.
Medium Doc Mismatch

Undeclared Network Communications

The skill makes HTTP POST requests to skillpay.me for user billing without declaring this behavior in SKILL.md. Users are charged 0.01 USDT per invocation without explicit consent mechanism documented.

payment.py:24
Add billing/charging behavior documentation in SKILL.md. Implement explicit user consent flow.
Medium Doc Mismatch

Documentation Mismatch

skill-card.md explicitly mentions 'SkillPay billing can attempt a 0.01 USDT charge' as a known risk, but SKILL.md contains no mention of billing functionality. This creates confusion about actual behavior.

SKILL.md:1
Align SKILL.md with skill-card.md by adding a billing/pricing section.
Low Sensitive Access

Environment Variable Reading

The skill reads SKILLPAY_USER_ID from environment variables without declaring this dependency. This is used to identify users for billing purposes.

payment.py:54
Document required environment variables in SKILL.md.

Declared capability vs actual capability

Filesystem Block
Declared NONE
Inferred WRITE
monitor.py:76-82 creates SQLite database
Network Block
Declared READ
Inferred READ+WRITE
payment.py:24-26 POSTs to skillpay.me billing API
Environment Block
Declared NONE
Inferred READ
payment.py:54 reads SKILLPAY_USER_ID

Suspicious artifacts and egress

High API Key
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"

payment.py:12

Medium External URL
https://api.the-odds-api.com/v4

config.json:15

Medium External URL
https://the-odds-api.com/

monitor.py:527

Medium External URL
https://skillpay.me

payment.py:11

Medium External URL
https://clawhub.ai/user/shenmeng

skill-card.md:7

Medium External URL
https://clawhub.ai/shenmeng/shenmeng-odds-movement-monitor

skill-card.md:29

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
aiohttp >=3.8.0 pip No Minimum version specified, but not upper-bounded
requests >=2.28.0 pip No Minimum version specified, but not upper-bounded

File composition

11 files · 1655 lines
Python 5 files · 1432 linesMarkdown 3 files · 167 linesJSON 2 files · 54 linesText 1 files · 2 lines
Files of concern · 5
config.json JSON · 49 lines
https://api.the-odds-api.com/v4
monitor.py Python · 597 lines
https://the-odds-api.com/
payment.py Python · 142 lines
Hardcoded Billing API Key · Undeclared Network Communications · Environment Variable Reading · API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" · https://skillpay.me
skill-card.md Markdown · 45 lines
https://clawhub.ai/user/shenmeng · https://clawhub.ai/shenmeng/shenmeng-odds-movement-monitor
SKILL.md Markdown · 42 lines
Documentation Mismatch
Other files · change_detector.py · demo.py · README.md · __init__.py · _meta.json · requirements.txt

Security positives

No reverse shell or command execution code detected
No base64-encoded obfuscated payloads found
No credential exfiltration or data theft patterns observed
No access to sensitive paths like ~/.ssh, ~/.aws, or .env files
No malicious dependencies in requirements.txt (only aiohttp and requests, both pinned)