{"data":{"skill":{"slug":"internet-court-nla-create","name":"nla-create","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/arkhai/nla-create","status":"approved","author":"internet-court","authorVersion":"1.0","skillstoreRevision":1},"audit":{"id":"4b210e28-800d-4f8f-87e1-8b24882771ba","skill_id":"8b891e1e-8976-4401-901f-06c37093ef3a","version":2,"content_hash":"v3:3f6e026a3363e0954ede7bef0cfe88d4475de137:f2c8acfb1eeffc6d147beae9b38e25cb8c894528b9af75365d65e45785afe5a1:2be02065356a350f596c6d96c3e6d895bad19d905e0812d8fb97526285149403:736b696c6c732f696e7465726e65742d636f7572742f6e6c612d637265617465:2e5815376b67f3725934a0348bb729e4","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"The skill contains legitimate documentation and commands for an external blockchain CLI, but several Markdown backtick detections are false positives. Confirmed findings concern execution of CLI commands, wallet private-key handling, and escrow creation that can lock ERC20 tokens on-chain. The workflow should require explicit confirmation before any state-changing or mainnet action.","remediation":[{"issue":"Private keys are offered as command-line arguments.","severity":"high","suggestion":"Remove the --private-key option from user guidance. Prefer a hardware wallet, secure signer, or a dedicated secret store that avoids command-line exposure."},{"issue":"Escrow creation can lock tokens on-chain without a documented final approval.","severity":"high","suggestion":"Before nla escrow:create, display the network, token address, amount, oracle, demand, and transaction cost, then require explicit user confirmation."},{"issue":"Network selection includes mainnet without a safety gate.","severity":"medium","suggestion":"Default to a local or test network and require explicit confirmation before switching to mainnet or submitting a transaction."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":28,"line_start":28},{"file":"SKILL.md","line_end":32,"line_start":32},{"file":"SKILL.md","line_end":33,"line_start":33},{"file":"SKILL.md","line_end":34,"line_start":34},{"file":"SKILL.md","line_end":47,"line_start":38},{"file":"SKILL.md","line_end":50,"line_start":47},{"file":"SKILL.md","line_end":51,"line_start":50},{"file":"SKILL.md","line_end":52,"line_start":51},{"file":"SKILL.md","line_end":64,"line_start":52},{"file":"SKILL.md","line_end":73,"line_start":64},{"file":"SKILL.md","line_end":77,"line_start":73},{"file":"SKILL.md","line_end":81,"line_start":77},{"file":"SKILL.md","line_end":81,"line_start":81},{"file":"SKILL.md","line_end":83,"line_start":82},{"file":"SKILL.md","line_end":85,"line_start":83},{"file":"SKILL.md","line_end":91,"line_start":85},{"file":"SKILL.md","line_end":95,"line_start":91},{"file":"SKILL.md","line_end":103,"line_start":95}]},{"factor":"env_access","evidence":[{"file":"SKILL.md","line_end":52,"line_start":52}]}],"critical_findings":[],"high_findings":[{"title":"Generic API/secret keys","locations":[{"file":"SKILL.md","line_end":52,"line_start":52}],"confidence":0.92,"description":"- Set the `PRIVATE_KEY` environment variable","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The skill explicitly asks users to set PRIVATE_KEY for CLI consumption. A wallet private key is a high-value credential whose exposure permits asset control."},{"title":"Irreversible Asset-Locking Transaction Without Confirmation Step","locations":[{"file":"SKILL.md","line_end":73,"line_start":62}],"confidence":0.94,"description":"The workflow directs execution of nla escrow:create, which can lock ERC20 tokens on-chain, but it does not require a final user confirmation that shows the network, token, amount, and recipient oracle.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The documented command creates an escrow using user-provided asset and network parameters, and the workflow moves directly from gathering requirements to execution without a final confirmation gate."}],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":47,"line_start":38}],"confidence":0.89,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This begins a Bash block that directs the agent to run nla commands. Although the listed checks are low impact, external CLI execution can act on the local environment."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":50,"line_start":47}],"confidence":0.82,"description":"```","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This closes a Bash block containing external nla commands. The skill authorizes command execution rather than only providing conceptual guidance."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":51,"line_start":50}],"confidence":0.93,"description":"- Run `nla wallet:set --private-key <key>`","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The instruction places a private key directly in a CLI command. Command-line secrets can be exposed through shell history and process listings."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":52,"line_start":51}],"confidence":0.93,"description":"- Pass `--private-key <key>` to the command","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"Passing a private key as a command argument creates the same command-line secret exposure risk. The command may also configure a wallet for later transactions."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":64,"line_start":52}],"confidence":0.86,"description":"- Set the `PRIVATE_KEY` environment variable","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The skill instructs users to provide a private key through an environment variable for CLI use. This is sensitive credential handling tied to financial transactions."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":73,"line_start":64}],"confidence":0.96,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This begins the nla escrow:create command block. It initiates an on-chain escrow creation flow that can lock user-controlled ERC20 assets."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":77,"line_start":73}],"confidence":0.96,"description":"```","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This closes the escrow creation command block, which includes user-supplied transaction parameters. Executing it can cause an on-chain financial commitment."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":81,"line_start":81}],"confidence":0.77,"description":"- Available networks: `anvil` (local), `sepolia`, `base-sepolia`, `mainnet`. Switch with `nla switch","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The line instructs users to switch the nla CLI network, including mainnet. Network selection changes where subsequent financial commands execute."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":83,"line_start":82}],"confidence":0.8,"description":"- For local dev, `nla dev` starts Anvil, deploys contracts, creates mock tokens, and starts the orac","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The nla dev command starts local services and deploys contracts. It is an external command that changes the development environment."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":103,"line_start":95}],"confidence":0.96,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This begins an example Bash command that creates an escrow with specified token and oracle addresses. Running it can submit a blockchain transaction."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":104,"audit_model":"claude","audited_at":"2026-07-21T04:01:40.48+00:00","created_at":"2026-07-21T04:17:25.898783+00:00","static_findings":[{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Help the user create a blockchain escrow backed by a natural language demand using the `nla` CLI.","category":"external_commands","line_end":13,"severity":"medium","line_start":13},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Token address**: ERC20 token contract address (`0x...`).","category":"external_commands","line_end":28,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Arbitration provider**: `OpenAI` (default), `Anthropic`, or `OpenRouter`.","category":"external_commands","line_end":32,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Arbitration model**: e.g. `gpt-4o-mini` (default), `claude-3-5-sonnet-20241022`, `openai/gpt-4o`","category":"external_commands","line_end":33,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Arbitration prompt**: Custom prompt template with `{{demand}}` and `{{obligation}}` placeholders","category":"external_commands","line_end":34,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":47,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":50,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Run `nla wallet:set --private-key <key>`","category":"external_commands","line_end":51,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Pass `--private-key <key>` to the command","category":"external_commands","line_end":52,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Set the `PRIVATE_KEY` environment variable","category":"external_commands","line_end":64,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":73,"severity":"medium","line_start":64},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":77,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"The command outputs an escrow UID (`0x...`). This UID is needed for fulfillment and collection. Pres","category":"external_commands","line_end":81,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Available networks: `anvil` (local), `sepolia`, `base-sepolia`, `mainnet`. Switch with `nla switch","category":"external_commands","line_end":81,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- For local dev, `nla dev` starts Anvil, deploys contracts, creates mock tokens, and starts the orac","category":"external_commands","line_end":83,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Public demo oracle on Sepolia: `0xc5c132B69f57dAAAb75d9ebA86cab504b272Ccbc`.","category":"external_commands","line_end":85,"severity":"medium","line_start":83},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":91,"severity":"medium","line_start":85},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":95,"severity":"medium","line_start":91},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":103,"severity":"medium","line_start":95},{"id":"env_access:SKILL.md:52:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"- Set the `PRIVATE_KEY` environment variable","category":"env_access","line_end":52,"severity":"high","line_start":52},{"id":"blocker:SKILL.md:58:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Consider: what counts as valid fulfillment? Is the condition verifiable?","category":"blocker","line_end":58,"severity":"low","line_start":58},{"id":"blocker:SKILL.md:97:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"--demand \"Provide a valid proof that P != NP\" \\","category":"blocker","line_end":97,"severity":"low","line_start":97}],"finding_verdicts":[{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","reason":"The backticks only format the nla CLI name in Markdown prose. This line contains no executable command or shell interpolation.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The backticks format an example ERC20 address prefix in a requirements list. No command is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The backticks format provider names in documentation. They do not invoke an external command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The backticks format model identifiers in documentation. No shell execution is specified on this line.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The backticks format template placeholders in a documentation list. They are not shell substitutions or commands.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"This begins a Bash block that directs the agent to run nla commands. Although the listed checks are low impact, external CLI execution can act on the local environment.","verdict":"confirmed","confidence":0.89},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"This closes a Bash block containing external nla commands. The skill authorizes command execution rather than only providing conceptual guidance.","verdict":"confirmed","confidence":0.82},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The instruction places a private key directly in a CLI command. Command-line secrets can be exposed through shell history and process listings.","verdict":"confirmed","confidence":0.93},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"Passing a private key as a command argument creates the same command-line secret exposure risk. The command may also configure a wallet for later transactions.","verdict":"confirmed","confidence":0.93},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"The skill instructs users to provide a private key through an environment variable for CLI use. This is sensitive credential handling tied to financial transactions.","verdict":"confirmed","confidence":0.86},{"id":"external_commands:SKILL.md:64:ruby-shell-backtick-execution","reason":"This begins the nla escrow:create command block. It initiates an on-chain escrow creation flow that can lock user-controlled ERC20 assets.","verdict":"confirmed","confidence":0.96},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"This closes the escrow creation command block, which includes user-supplied transaction parameters. Executing it can cause an on-chain financial commitment.","verdict":"confirmed","confidence":0.96},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"The backticks only format an escrow UID example in explanatory text. This line does not execute a command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"The line instructs users to switch the nla CLI network, including mainnet. Network selection changes where subsequent financial commands execute.","verdict":"confirmed","confidence":0.77},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The nla dev command starts local services and deploys contracts. It is an external command that changes the development environment.","verdict":"confirmed","confidence":0.8},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","reason":"The backticks format a public oracle address. This documentation line contains no command execution.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","reason":"This is a Markdown code fence for the default arbitration prompt, not a shell command. The scanner matched formatting syntax.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","reason":"This closes a Markdown code fence containing a natural-language prompt. It does not execute external code.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","reason":"This begins an example Bash command that creates an escrow with specified token and oracle addresses. Running it can submit a blockchain transaction.","verdict":"confirmed","confidence":0.96},{"id":"env_access:SKILL.md:52:generic-api-secret-keys","reason":"The skill explicitly asks users to set PRIVATE_KEY for CLI consumption. A wallet private key is a high-value credential whose exposure permits asset control.","verdict":"confirmed","severity":"high","confidence":0.92},{"id":"blocker:SKILL.md:58:system-reconnaissance","reason":"The text asks users to assess whether an escrow condition is verifiable. It does not inspect the system, network, or local environment.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:97:system-reconnaissance","reason":"This is an illustrative natural-language escrow demand. It contains no reconnaissance instruction or system query.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[{"title":"Irreversible Asset-Locking Transaction Without Confirmation Step","severity":"high","locations":[{"file":"SKILL.md","line_end":73,"line_start":62}],"confidence":0.94,"description":"The workflow directs execution of nla escrow:create, which can lock ERC20 tokens on-chain, but it does not require a final user confirmation that shows the network, token, amount, and recipient oracle.","confidence_reasoning":"The documented command creates an escrow using user-provided asset and network parameters, and the workflow moves directly from gathering requirements to execution without a final confirmation gate."}],"subject_marketplace_commit_sha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","subject_content_hash":"f2c8acfb1eeffc6d147beae9b38e25cb8c894528b9af75365d65e45785afe5a1","subject_tree_hash":"2be02065356a350f596c6d96c3e6d895bad19d905e0812d8fb97526285149403","subject_plugin_path":"skills/internet-court/nla-create","audit_payload_hash":"2e5815376b67f3725934a0348bb729e4","confirmed_risk_level":"high","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","contentHash":"f2c8acfb1eeffc6d147beae9b38e25cb8c894528b9af75365d65e45785afe5a1","treeHash":"2be02065356a350f596c6d96c3e6d895bad19d905e0812d8fb97526285149403","pluginPath":"skills/internet-court/nla-create","auditPayloadHash":"2e5815376b67f3725934a0348bb729e4"},"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":11,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"unavailable","verificationState":"not_verified"},"isLatest":true}}