Skill Trust Decision

dex-arbitrage

Undeclared payment/billing system with hardcoded API key exposes credential; SKILL.md falsely presents tool as general-purpose DEX arbitrage without disclosing mandatory per-call charges.

Install decision first Source: Manual upload Scanned: Apr 3, 2026
Files 11
Artifacts 51
Violations 2
Findings 4
Most direct threat evidence
High Doc Mismatch
Undeclared mandatory payment/billing system

SKILL.md describes a free DEX arbitrage assistant but payment.py silently implements a mandatory billing system charging 0.01 USDT per invocation. Users are unaware they will be charged. The _meta.json declares pricing but SKILL.md never mentions it.

payment.py:1

Why this conclusion was reached

3/4 dimensions flagged
Block
Declared vs actual capability

2 undeclared or violating capabilities were inferred.

Block
Hidden execution and egress

1 high-risk artifacts or egress signals were extracted.

Block
Attack chain and severe findings

The report includes 0 attack-chain steps and 2 severe findings.

Review
Dependencies and supply chain hygiene

Dependency information is incomplete, so supply-chain confidence stays limited.

What drove the risk score up

Doc deception - undeclared billing system +20

SKILL.md describes free arbitrage tools but payment.py charges 0.01 USDT per call; billing functionality never mentioned in docs

Hardcoded API credential in source +20

BILLING_API_KEY hardcoded in plaintext at payment.py:12 — exposes service credential to repo/public

Undeclared network access +10

SKILL.md declares no allowed-tools; payment.py silently makes HTTPS requests to skillpay.me

Silent data transmission +5

User IDs from SKILLPAY_USER_ID env var are sent to external endpoint

Most important evidence

High Doc Mismatch

Undeclared mandatory payment/billing system

SKILL.md describes a free DEX arbitrage assistant but payment.py silently implements a mandatory billing system charging 0.01 USDT per invocation. Users are unaware they will be charged. The _meta.json declares pricing but SKILL.md never mentions it.

payment.py:1
Add prominent billing disclosure in SKILL.md including pricing (0.01 USDT/call), payment provider (skillpay.me), and required environment variables (SKILLPAY_USER_ID, SKILLPAY_API_KEY)
High Credential Theft

Hardcoded API key exposed in source code

BILLING_API_KEY = 'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2' is hardcoded at payment.py:12. This credential is permanently embedded in the skill package and visible to anyone who inspects the code.

payment.py:12
Move BILLING_API_KEY to an environment variable (SKILLPAY_API_KEY as noted in _meta.json), never hardcode credentials in source files
Medium Doc Mismatch

Missing allowed-tools declaration

SKILL.md declares no allowed-tools. The skill performs network requests (to skillpay.me and DEX APIs) and reads environment variables, but these resource accesses are not declared in the skill manifest.

SKILL.md:1
Add allowed-tools declaration to SKILL.md: network:READ for DEX API calls, environment:READ for SKILLPAY_USER_ID
Low Data Exfil

User ID transmitted to external endpoint

verify_payment() reads SKILLPAY_USER_ID from environment and sends it to skillpay.me/api/v1/billing/* endpoints. While this is necessary for billing, it is undeclared and the endpoint's data handling policy is unknown.

payment.py:99
Document what data is sent to skillpay.me, provide privacy policy link, and consider making the endpoint configurable

Declared capability vs actual capability

Filesystem Pass
Declared NONE
→
Inferred NONE
No file writes in code; scripts are generators/calculators only
Network Block
Declared NONE
→
Inferred READ
payment.py:27-30 sends POST to skillpay.me; price_monitor.py:43-49 fetches DEX prices — no declaration in SKILL.md
Shell Pass
Declared NONE
→
Inferred NONE
No subprocess/shell execution found
Environment Block
Declared NONE
→
Inferred READ
payment.py:99 reads SKILLPAY_USER_ID from os.environ without declaration

Suspicious artifacts and egress

High API Key
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"

payment.py:12

Medium External URL
https://skillpay.me

payment.py:11

Medium External URL
https://dexscreener.com/

references/arbitrage-tools.md:7

Medium External URL
https://www.coingecko.com/

references/arbitrage-tools.md:25

Medium External URL
https://api.coingecko.com/api/v3/simple/price?ids=

references/arbitrage-tools.md:32

Medium External URL
https://portal.1inch.dev/

references/arbitrage-tools.md:47

Medium External URL
https://api.1inch.dev/swap/v5.2/1/quote?

references/arbitrage-tools.md:58

Medium External URL
https://eth.llamarpc.com

references/arbitrage-tools.md:99

Medium External URL
https://api.0x.org/swap/v1/quote?

references/arbitrage-tools.md:144

Medium External URL
https://li.quest/v1/quote

references/arbitrage-tools.md:163

Medium External URL
https://socket.tech/

references/arbitrage-tools.md:177

Medium External URL
https://across.to/

references/arbitrage-tools.md:186

Dependencies and supply chain

There are no structured dependency warnings.

File composition

11 files · 3911 lines
Markdown 6 files · 2517 linesPython 4 files · 1375 linesJSON 1 files · 19 lines
Files of concern · 6
scripts/flashloan_generator.py Python · 545 lines
0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e · 0xE592427A0AEce92De3Edee1F18E0157C05861564 · 0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F · 0xBA12222222228d8Ba445958a75a0704d566BF2C8 · 0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb · 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
SKILL.md Markdown · 542 lines
Missing allowed-tools declaration
scripts/price_monitor.py Python · 293 lines
https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3 · https://api.thegraph.com/subgraphs/name/sushiswap/exchange · https://api.curve.fi/api/getPools
references/arbitrage-tools.md Markdown · 461 lines
https://dexscreener.com/ · https://www.coingecko.com/ · https://api.coingecko.com/api/v3/simple/price?ids= · https://portal.1inch.dev/ · https://api.1inch.dev/swap/v5.2/1/quote? · https://eth.llamarpc.com · https://api.0x.org/swap/v1/quote? · https://li.quest/v1/quote · https://socket.tech/ · https://across.to/ · https://protect.flashbots.net/ · https://rpc.flashbots.net · https://www.edennetwork.io/ · https://api.edennetwork.io/v1/rpc · https://cowswap.exchange/ · https://dune.com/ · https://eigenphi.io/ · https://explorer.flashbots.net/ · https://tenderly.co/ · https://book.getfoundry.sh/ · https://hardhat.org/ · https://zapper.fi/ · https://debank.com/ · https://www.alchemy.com/ · https://infura.io/ · https://www.quicknode.com/ · https://rpc.ankr.com/eth · https://ethereum.publicnode.com · https://arb1.arbitrum.io/rpc · https://arbitrum.llamarpc.com · https://chainlist.org/ · https://docs.uniswap.org/ · https://docs.flashbots.net/ · https://docs.ethers.org/ · https://explore.flashbots.net/ · https://writings.flashbots.net/
references/mev-protection.md Markdown · 410 lines
https://relay.flashbots.net · https://protect.flashbots.net/v1/rpc · https://rpc.mevblocker.io · https://cowswap.exchange
payment.py Python · 142 lines
Undeclared mandatory payment/billing system · Hardcoded API key exposed in source code · User ID transmitted to external endpoint · API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" · https://skillpay.me
Other files · arbitrage_calculator.py · flashloan-arbitrage.md · bridge-guide.md · arbitrage-basics.md · _meta.json

Security positives

No reverse shell, C2 infrastructure, or remote code execution patterns found
Python scripts are calculation/generation utilities — no direct wallet draining code
flashloan_generator.py generates Solidity contract templates, not malicious contracts
No base64 obfuscation, eval chains, or anti-analysis techniques detected
No access to ~/.ssh, ~/.aws, .env, or other sensitive filesystem paths
No cron/persistence mechanisms or startup hooks present
DEX price APIs (CoinGecko, 1inch, The Graph) are legitimate and relevant to stated purpose