{"data":{"skill":{"slug":"internet-court-altllm-portal-payments","name":"altllm-portal-payments","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/altlayer/altllm-portal-payments","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"77a65a59-e5db-4a34-a808-51909d5d58fb","skill_id":"8eef0ed6-7be4-4023-87ad-b7ca61ebf745","version":2,"content_hash":"v3:3f6e026a3363e0954ede7bef0cfe88d4475de137:798295fdf889fdaf87e702a41d5fda71f5f0f2d9e4bf2daeb69bdc077c4a94a7:d9eecfe80e3dff1c165e7bc873f4be3a49221a4eae868be27b040f62f8d7de54:736b696c6c732f696e7465726e65742d636f7572742f616c746c6c6d2d706f7274616c2d7061796d656e7473:9f16cdd0fbad6207aa1d3a2a9029eaf2","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"Most static findings are Markdown-formatting false positives, including command-name backticks, repository-relative reference paths, payment-link identifiers, and the documented Portal endpoint. The skill genuinely handles wallet private keys and can initiate direct on-chain payments, creating a high-impact financial and credential-handling risk that requires explicit user confirmation.","remediation":[{"issue":"Direct payment can transfer wallet funds irreversibly.","severity":"high","suggestion":"Require a final interactive confirmation that shows the destination, currency, amount, network, and payment-link identifier before signing or broadcasting."},{"issue":"Wallet private keys are accepted for automatic payment.","severity":"high","suggestion":"Prefer a hardware wallet, external signer, or secret manager. Never log keys, and keep command-line key input disabled by default."},{"issue":"Status and payment lookup only searches recent links.","severity":"medium","suggestion":"Add lookup by payment-link identifier or pagination before relying on the command for older payments."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"references/cli-reference.md","line_end":9,"line_start":9},{"file":"references/cli-reference.md","line_end":17,"line_start":17},{"file":"references/cli-reference.md","line_end":28,"line_start":28},{"file":"references/cli-reference.md","line_end":40,"line_start":40},{"file":"references/cli-reference.md","line_end":50,"line_start":50}]},{"factor":"env_access","evidence":[{"file":"references/cli-reference.md","line_end":26,"line_start":26},{"file":"references/cli-reference.md","line_end":31,"line_start":31},{"file":"references/cli-reference.md","line_end":48,"line_start":48},{"file":"references/cli-reference.md","line_end":52,"line_start":52},{"file":"references/cli-reference.md","line_end":58,"line_start":58}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":9,"line_start":9},{"file":"SKILL.md","line_end":11,"line_start":11},{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":23,"line_start":23},{"file":"SKILL.md","line_end":24,"line_start":24},{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"SKILL.md","line_end":29,"line_start":29},{"file":"SKILL.md","line_end":30,"line_start":30},{"file":"SKILL.md","line_end":32,"line_start":32},{"file":"SKILL.md","line_end":34,"line_start":34},{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":37,"line_start":37},{"file":"SKILL.md","line_end":40,"line_start":40},{"file":"SKILL.md","line_end":41,"line_start":41},{"file":"SKILL.md","line_end":42,"line_start":42},{"file":"SKILL.md","line_end":43,"line_start":43},{"file":"SKILL.md","line_end":44,"line_start":44}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":17,"line_start":17}]}],"critical_findings":[],"high_findings":[{"title":"Generic API/secret keys","locations":[{"file":"references/cli-reference.md","line_end":26,"line_start":26}],"confidence":0.94,"description":"ALTLLM_WALLET_PRIVATE_KEY=<private-key> \\","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet."},{"title":"Generic API/secret keys","locations":[{"file":"references/cli-reference.md","line_end":31,"line_start":31}],"confidence":0.94,"description":"--private-key-env ALTLLM_WALLET_PRIVATE_KEY \\","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet."},{"title":"Generic API/secret keys","locations":[{"file":"references/cli-reference.md","line_end":48,"line_start":48}],"confidence":0.94,"description":"ALTLLM_WALLET_PRIVATE_KEY=<private-key> \\","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet."},{"title":"Generic API/secret keys","locations":[{"file":"references/cli-reference.md","line_end":52,"line_start":52}],"confidence":0.94,"description":"--private-key-env ALTLLM_WALLET_PRIVATE_KEY \\","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet."},{"title":"Generic API/secret keys","locations":[{"file":"references/cli-reference.md","line_end":58,"line_start":58}],"confidence":0.94,"description":"- `ALTLLM_WALLET_PRIVATE_KEY=<private-key>` with the default `--private-key-env ALTLLM_WALLET_PRIVAT","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet."},{"title":"Irreversible Direct Wallet Payment Capability","locations":[{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"references/cli-reference.md","line_end":63,"line_start":45}],"confidence":0.93,"description":"The skill documents a command that sends a direct on-chain payment for an existing payment link. A mistaken or malicious payment-link identifier can cause an irreversible transfer when a wallet private key is supplied.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The command index explicitly states that pay-payment-link sends a direct on-chain payment, and the reference shows it accepting a private key. Blockchain transfers generally cannot be reversed."}],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":2,"total_lines":125,"audit_model":"claude","audited_at":"2026-07-21T02:50:13.177+00:00","created_at":"2026-07-21T03:08:44.056137+00:00","static_findings":[{"id":"network:references/cli-reference.md:9:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":9,"severity":"low","line_start":9},{"id":"network:references/cli-reference.md:17:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":17,"severity":"low","line_start":17},{"id":"network:references/cli-reference.md:28:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":28,"severity":"low","line_start":28},{"id":"network:references/cli-reference.md:40:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":40,"severity":"low","line_start":40},{"id":"network:references/cli-reference.md:50:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":50,"severity":"low","line_start":50},{"id":"env_access:references/cli-reference.md:26:generic-api-secret-keys","file":"references/cli-reference.md","pattern":"Generic API/secret keys","snippet":"ALTLLM_WALLET_PRIVATE_KEY=<private-key> \\","category":"env_access","line_end":26,"severity":"high","line_start":26},{"id":"env_access:references/cli-reference.md:31:generic-api-secret-keys","file":"references/cli-reference.md","pattern":"Generic API/secret keys","snippet":"--private-key-env ALTLLM_WALLET_PRIVATE_KEY \\","category":"env_access","line_end":31,"severity":"high","line_start":31},{"id":"env_access:references/cli-reference.md:48:generic-api-secret-keys","file":"references/cli-reference.md","pattern":"Generic API/secret keys","snippet":"ALTLLM_WALLET_PRIVATE_KEY=<private-key> \\","category":"env_access","line_end":48,"severity":"high","line_start":48},{"id":"env_access:references/cli-reference.md:52:generic-api-secret-keys","file":"references/cli-reference.md","pattern":"Generic API/secret keys","snippet":"--private-key-env ALTLLM_WALLET_PRIVATE_KEY \\","category":"env_access","line_end":52,"severity":"high","line_start":52},{"id":"env_access:references/cli-reference.md:58:generic-api-secret-keys","file":"references/cli-reference.md","pattern":"Generic API/secret keys","snippet":"- `ALTLLM_WALLET_PRIVATE_KEY=<private-key>` with the default `--private-key-env ALTLLM_WALLET_PRIVAT","category":"env_access","line_end":58,"severity":"high","line_start":58},{"id":"blocker:references/cli-reference.md:41:system-reconnaissance","file":"references/cli-reference.md","pattern":"System reconnaissance","snippet":"--payment-link-id <id> \\","category":"blocker","line_end":41,"severity":"low","line_start":41},{"id":"blocker:references/cli-reference.md:51:system-reconnaissance","file":"references/cli-reference.md","pattern":"System reconnaissance","snippet":"--payment-link-id <id> \\","category":"blocker","line_end":51,"severity":"low","line_start":51},{"id":"external_commands:SKILL.md:9:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"NOWPayments payment-link creation, settlement polling, and direct wallet payment flows for the local","category":"external_commands","line_end":9,"severity":"medium","line_start":9},{"id":"external_commands:SKILL.md:11:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"These payment links are separate from AltLLM Portal x402 credit top-ups. Use `altllm-x402` for `/api","category":"external_commands","line_end":11,"severity":"medium","line_start":11},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> Before the first `altllm` command in a fresh checkout, read and follow:","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> - `../_shared/preflight.md`","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> - `../_shared/session-and-target.md`","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `topup-crypto` | Create a hosted or direct crypto payment link |","category":"external_commands","line_end":23,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `payment-status` | Inspect or poll an existing payment link |","category":"external_commands","line_end":24,"severity":"medium","line_start":24},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `pay-payment-link` | Send a direct on-chain payment for an existing link |","category":"external_commands","line_end":25,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Unsupported `pay_currency` values must fail fast.","category":"external_commands","line_end":29,"severity":"medium","line_start":29},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `pay-payment-link` must not pay terminal links (`completed`, `expired`, `failed`, `deactivated`).","category":"external_commands","line_end":30,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `topup-crypto --discount-code <code>` is for discounted credit top-up invoices, not subscriptions.","category":"external_commands","line_end":32,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Token-scoped discount codes must respect Portal-returned `allowedPayCurrencies`.","category":"external_commands","line_end":34,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `pay-payment-link --wait` should emit one final JSON document.","category":"external_commands","line_end":36,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `payment-status` and `pay-payment-link` currently depend on the newest `100` records from `GET /ap","category":"external_commands","line_end":37,"severity":"medium","line_start":37},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `eth`","category":"external_commands","line_end":40,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `usdterc20`","category":"external_commands","line_end":41,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `usdcerc20`","category":"external_commands","line_end":42,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `usdcbase`","category":"external_commands","line_end":43,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `usdtbase`","category":"external_commands","line_end":44,"severity":"medium","line_start":44},{"id":"filesystem:SKILL.md:16:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"> - `../_shared/preflight.md`","category":"filesystem","line_end":16,"severity":"high","line_start":16},{"id":"filesystem:SKILL.md:17:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"> - `../_shared/session-and-target.md`","category":"filesystem","line_end":17,"severity":"high","line_start":17}],"finding_verdicts":[{"id":"network:references/cli-reference.md:9:hardcoded-url","reason":"The documented base URL is the named AltLLM Portal API endpoint used by this payment CLI. The reference does not send secrets to an unrelated destination or permit an arbitrary endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:references/cli-reference.md:17:hardcoded-url","reason":"The documented base URL is the named AltLLM Portal API endpoint used by this payment CLI. The reference does not send secrets to an unrelated destination or permit an arbitrary endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:references/cli-reference.md:28:hardcoded-url","reason":"The documented base URL is the named AltLLM Portal API endpoint used by this payment CLI. The reference does not send secrets to an unrelated destination or permit an arbitrary endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:references/cli-reference.md:40:hardcoded-url","reason":"The documented base URL is the named AltLLM Portal API endpoint used by this payment CLI. The reference does not send secrets to an unrelated destination or permit an arbitrary endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:references/cli-reference.md:50:hardcoded-url","reason":"The documented base URL is the named AltLLM Portal API endpoint used by this payment CLI. The reference does not send secrets to an unrelated destination or permit an arbitrary endpoint.","verdict":"false_positive","confidence":0.91},{"id":"env_access:references/cli-reference.md:26:generic-api-secret-keys","reason":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"env_access:references/cli-reference.md:31:generic-api-secret-keys","reason":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"env_access:references/cli-reference.md:48:generic-api-secret-keys","reason":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"env_access:references/cli-reference.md:52:generic-api-secret-keys","reason":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"env_access:references/cli-reference.md:58:generic-api-secret-keys","reason":"The workflow accepts a wallet private key through an environment variable for direct on-chain payments. Exposure or misuse of this credential can authorize transfers from the wallet.","verdict":"confirmed","severity":"high","confidence":0.94},{"id":"blocker:references/cli-reference.md:41:system-reconnaissance","reason":"A payment-link identifier scopes a status check or payment to a specific transaction. It does not collect host, account, or system reconnaissance data.","verdict":"false_positive","confidence":0.96},{"id":"blocker:references/cli-reference.md:51:system-reconnaissance","reason":"A payment-link identifier scopes a status check or payment to a specific transaction. It does not collect host, account, or system reconnaissance data.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:9:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:11:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"The matched backticks are Markdown formatting for command names, paths, currencies, or API routes. SKILL.md contains no shell execution or dynamically constructed command.","verdict":"false_positive","confidence":0.97},{"id":"filesystem:SKILL.md:16:path-traversal-sequence","reason":"The relative paths name two shared Markdown setup documents in the skill repository. They are documentation references, not user-controlled file access or path traversal.","verdict":"false_positive","confidence":0.95},{"id":"filesystem:SKILL.md:17:path-traversal-sequence","reason":"The relative paths name two shared Markdown setup documents in the skill repository. They are documentation references, not user-controlled file access or path traversal.","verdict":"false_positive","confidence":0.95}],"semantic_findings":[{"title":"Irreversible Direct Wallet Payment Capability","severity":"high","locations":[{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"references/cli-reference.md","line_end":63,"line_start":45}],"confidence":0.93,"description":"The skill documents a command that sends a direct on-chain payment for an existing payment link. A mistaken or malicious payment-link identifier can cause an irreversible transfer when a wallet private key is supplied.","confidence_reasoning":"The command index explicitly states that pay-payment-link sends a direct on-chain payment, and the reference shows it accepting a private key. Blockchain transfers generally cannot be reversed."}],"subject_marketplace_commit_sha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","subject_content_hash":"798295fdf889fdaf87e702a41d5fda71f5f0f2d9e4bf2daeb69bdc077c4a94a7","subject_tree_hash":"d9eecfe80e3dff1c165e7bc873f4be3a49221a4eae868be27b040f62f8d7de54","subject_plugin_path":"skills/internet-court/altllm-portal-payments","audit_payload_hash":"9f16cdd0fbad6207aa1d3a2a9029eaf2","confirmed_risk_level":"high","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","contentHash":"798295fdf889fdaf87e702a41d5fda71f5f0f2d9e4bf2daeb69bdc077c4a94a7","treeHash":"d9eecfe80e3dff1c165e7bc873f4be3a49221a4eae868be27b040f62f8d7de54","pluginPath":"skills/internet-court/altllm-portal-payments","auditPayloadHash":"9f16cdd0fbad6207aa1d3a2a9029eaf2"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"unavailable","url":null,"status":null},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"high","confirmedFindingCount":1,"capabilityReviewCount":5,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"unavailable","verificationState":"not_verified"},"isLatest":true}}