MCP, MCP server
tx402
Plain-English explanations of Algorand transactions, sold as a pay-per-call API with x402 on Algorand.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 69325929c419, unchanged since the check below.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
submission/generate-demo-video.py, line 427
subprocess.run([str(FFMPEG), "-hide_banner", "-loglevel", "error", *args], check=True) - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
CLAUDE.md, line 150
node -e "const res=await fetch('https://tx402-production.up.railway.app - SECRETS_PATH_DOTENV Low
Mentions a .env file.
src/payments.js, line 54
'Fix .env before starting the server.'
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
submission/generate-demo-video.py, line 427
subprocess.run([str(FFMPEG), "-hide_banner", "-loglevel", "error", *args], check=True)
submission/generate-demo-video.py, line 431
probe = subprocess.run(
submission/generate-demo-video.py, line 496
shutil.rmtree(FRAMES, ignore_errors=True)
Show more
submission/generate-demo-video.py, line 497
shutil.rmtree(AUDIO, ignore_errors=True)
submission/generate-demo-video.py, line 513
probe = subprocess.run(
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
CLAUDE.md, line 150
node -e "const res=await fetch('https://tx402-production.up.railway.app
examples/catalog-client.mjs, line 22
const response = await fetch(url, { ...init, headers: { accept: 'application/json', ...init.headers } });
examples/node-client.mjs, line 72
const discoveryRes = await fetch(`${SERVER}/discovery`);
Show more
public/demo.js, line 10
const response = await fetch(`/demo?example=${encodeURIComponent(example.value)}`, {
scripts/check-phase4-mainnet.mjs, line 38
const res = await fetch(url, { headers: { accept: 'application/json' } });
scripts/check-phase4-mainnet.mjs, line 71
accountRes = await fetch(`${MAINNET_INDEXER_URL}/v2/accounts/${encodeURIComponent(PAY_TO)}`, {
scripts/check-phase5-buyer.mjs, line 74
accountRes = await fetch(`${MAINNET_INDEXER_URL}/v2/accounts/${encodeURIComponent(buyerAddress)}`, {
scripts/smoke-phase3.mjs, line 26
const res = await fetch(url);
scripts/smoke-phase3.mjs, line 40
const res = await fetch(`${SERVER}${pathname}`, {
Dockerfile, line 21
CMD node -e "fetch('http://localhost:4021/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
scripts/check-phase4-mainnet.mjs, line 14
* If MAINNET_PAY_TO is not set, the script falls back to PAY_TO from .env.
src/payments.js, line 54
'Fix .env before starting the server.'
src/payments.js, line 60
// network's canonical USDC id is almost certainly a stale .env left over
Show more
src/payments.js, line 67
`USDC asset id, but NETWORK is set to ${RESOLVED_NETWORK}. This looks like a stale .env - ` +
src/payments.js, line 75
`PAY_TO ("${PAY_TO}") is not a valid Algorand address. Fix .env before starting the server.`
.dockerignore, line 2
.git
.dockerignore, line 3
.env
.dockerignore, line 4
.env.local
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 69325929c419. can delete files. can reach a host that is not written as a fixed address. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 69325929c419bbc907d85833d08792f4432e9cfb
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.