{"data":{"skill":{"slug":"internet-court-privy","name":"Privy","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/privy/privy","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"fa8e598f-66a6-44a8-a1fb-fdcc9e460ab0","skill_id":"6a34e143-821d-4296-9de2-0d09fb5768df","version":1,"content_hash":"4b082acf6d6364f235dea27d28050679","risk_level":"critical","is_blocked":true,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"blocked","manual_install_policy":"allowed_with_warning","summary":"Most static external-command and network alerts are false positives from Markdown code fences, inline API names, official Privy URLs, and documentation links. The cryptocurrency wallet alert is confirmed because the skill guides server-side blockchain transaction execution, which can move assets if misused. No prompt injection, hidden exfiltration, or deceptive marketplace claims were found in SKILL.md.","remediation":[{"issue":"High-impact wallet transaction guidance","severity":"critical","suggestion":"Add explicit warnings that production transactions need testnet validation, policy review, signer authorization, and human approval for asset movement."},{"issue":"Credential examples in setup snippets","severity":"medium","suggestion":"Show secrets loaded from environment variables and state that App Secret and webhook secrets must never appear in client bundles."},{"issue":"Manual network examples","severity":"low","suggestion":"Label REST and curl examples as manual integration references and avoid wording that suggests automatic execution by an AI agent."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":50,"line_start":44},{"file":"SKILL.md","line_end":53,"line_start":50},{"file":"SKILL.md","line_end":56,"line_start":53},{"file":"SKILL.md","line_end":59,"line_start":56},{"file":"SKILL.md","line_end":63,"line_start":59},{"file":"SKILL.md","line_end":79,"line_start":63},{"file":"SKILL.md","line_end":80,"line_start":79},{"file":"SKILL.md","line_end":81,"line_start":80},{"file":"SKILL.md","line_end":82,"line_start":81},{"file":"SKILL.md","line_end":83,"line_start":82},{"file":"SKILL.md","line_end":84,"line_start":83},{"file":"SKILL.md","line_end":85,"line_start":84},{"file":"SKILL.md","line_end":86,"line_start":85},{"file":"SKILL.md","line_end":132,"line_start":86},{"file":"SKILL.md","line_end":133,"line_start":132},{"file":"SKILL.md","line_end":135,"line_start":133},{"file":"SKILL.md","line_end":138,"line_start":135},{"file":"SKILL.md","line_end":138,"line_start":138},{"file":"SKILL.md","line_end":144,"line_start":139},{"file":"SKILL.md","line_end":145,"line_start":144},{"file":"SKILL.md","line_end":145,"line_start":145},{"file":"SKILL.md","line_end":157,"line_start":156},{"file":"SKILL.md","line_end":170,"line_start":157},{"file":"SKILL.md","line_end":171,"line_start":170},{"file":"SKILL.md","line_end":171,"line_start":171},{"file":"SKILL.md","line_end":175,"line_start":173},{"file":"SKILL.md","line_end":176,"line_start":175},{"file":"SKILL.md","line_end":186,"line_start":176},{"file":"SKILL.md","line_end":193,"line_start":186},{"file":"SKILL.md","line_end":193,"line_start":193}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":60,"line_start":60},{"file":"SKILL.md","line_end":125,"line_start":125},{"file":"SKILL.md","line_end":200,"line_start":200},{"file":"SKILL.md","line_end":201,"line_start":201},{"file":"SKILL.md","line_end":202,"line_start":202},{"file":"SKILL.md","line_end":203,"line_start":203},{"file":"SKILL.md","line_end":204,"line_start":204},{"file":"SKILL.md","line_end":208,"line_start":208}]}],"critical_findings":[{"title":"Cryptocurrency wallet","locations":[{"file":"SKILL.md","line_end":157,"line_start":157}],"confidence":0.92,"description":"- **Server-side:** Call `privy.wallets().ethereum().sendTransaction()` or equivalent","review_kind":"security","source_category":"sensitive","source_severity":"critical","confidence_reasoning":"Line 157 directs users to send blockchain transactions from server-side wallets. This is legitimate Privy guidance, but mistakes or unauthorized use could move assets irreversibly."}],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[{"title":"Cryptocurrency wallet","locations":[{"file":"SKILL.md","line_end":157,"line_start":157}],"confidence":0.92,"description":"- **Server-side:** Call `privy.wallets().ethereum().sendTransaction()` or equivalent","review_kind":"security","source_category":"sensitive","source_severity":"critical","confidence_reasoning":"Line 157 directs users to send blockchain transactions from server-side wallets. This is legitimate Privy guidance, but mistakes or unauthorized use could move assets irreversibly."}],"files_scanned":1,"total_lines":208,"audit_model":"codex","audited_at":"2026-07-10T00:13:46.729+00:00","created_at":"2026-07-10T07:43:56.122085+00:00","static_findings":[{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Privy is a wallet infrastructure and authentication platform that enables developers to embed wallet","category":"external_commands","line_end":13,"severity":"medium","line_start":13},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```tsx","category":"external_commands","line_end":50,"severity":"medium","line_start":44},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":53,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```ts","category":"external_commands","line_end":56,"severity":"medium","line_start":53},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":59,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":63,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":79,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/wallets` | POST | Create wallet |","category":"external_commands","line_end":80,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/wallets/{id}` | GET | Fetch wallet details |","category":"external_commands","line_end":81,"severity":"medium","line_start":80},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/wallets/{id}/ethereum/eth_sendTransaction` | POST | Send EVM transaction |","category":"external_commands","line_end":82,"severity":"medium","line_start":81},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/wallets/{id}/solana/signAndSendTransaction` | POST | Send Solana transaction |","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":"| `/v1/users` | POST | Create user |","category":"external_commands","line_end":84,"severity":"medium","line_start":83},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/users/{id}` | GET | Fetch user |","category":"external_commands","line_end":85,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/policies` | POST | Create policy |","category":"external_commands","line_end":86,"severity":"medium","line_start":85},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `/v1/intents` | GET/POST | Fetch or create intents |","category":"external_commands","line_end":132,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **For React:** Wrap your app with `PrivyProvider` at the root","category":"external_commands","line_end":133,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **For backend:** Instantiate `PrivyClient` with appId and appSecret","category":"external_commands","line_end":135,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:135:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Wait for `ready` state before consuming Privy hooks/state","category":"external_commands","line_end":138,"severity":"medium","line_start":135},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Use `useLoginWithEmail()`, `useLoginWithWallet()`, or other login hooks (React)","category":"external_commands","line_end":138,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Or call `/v1/users` to create users server-side","category":"external_commands","line_end":144,"severity":"medium","line_start":139},{"id":"external_commands:SKILL.md:144:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Client-side:** Configure `embeddedWallets.createOnLogin` in PrivyProvider config","category":"external_commands","line_end":145,"severity":"medium","line_start":144},{"id":"external_commands:SKILL.md:145:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Server-side:** Call `privy.wallets().create({chain_type: 'ethereum'})` or POST to `/v1/wallets`","category":"external_commands","line_end":145,"severity":"medium","line_start":145},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Client-side:** Use `useSendTransaction()` hook or sign methods","category":"external_commands","line_end":157,"severity":"medium","line_start":156},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Server-side:** Call `privy.wallets().ethereum().sendTransaction()` or equivalent","category":"external_commands","line_end":170,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Wallet ID vs. address:** Use wallet `id` (UUID) for API calls, not the wallet address. Address i","category":"external_commands","line_end":171,"severity":"medium","line_start":170},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Chain ID format:** Use CAIP-2 format for chain IDs (e.g., `eip155:1` for Ethereum mainnet, `sola","category":"external_commands","line_end":171,"severity":"medium","line_start":171},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Webhook verification required:** Always verify webhook signatures before trusting the payload. U","category":"external_commands","line_end":175,"severity":"medium","line_start":173},{"id":"external_commands:SKILL.md:175:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Ready state not checked:** Don't use Privy hooks before `ready === true` in React. State may be ","category":"external_commands","line_end":176,"severity":"medium","line_start":175},{"id":"external_commands:SKILL.md:176:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Missing app client ID:** If deploying across multiple domains, configure app clients in the Dash","category":"external_commands","line_end":186,"severity":"medium","line_start":176},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `ready` state is checked before consuming Privy hooks (React)","category":"external_commands","line_end":193,"severity":"medium","line_start":186},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] Error handling catches `APIError` and `PrivyAPIError` (backend)","category":"external_commands","line_end":193,"severity":"medium","line_start":193},{"id":"network:SKILL.md:13:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"Privy is a wallet infrastructure and authentication platform that enables developers to embed wallet","category":"network","line_end":13,"severity":"low","line_start":13},{"id":"network:SKILL.md:60:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -X POST https://api.privy.io/v1/wallets \\","category":"network","line_end":60,"severity":"low","line_start":60},{"id":"network:SKILL.md:125:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- Create account at https://dashboard.privy.io/","category":"network","line_end":125,"severity":"low","line_start":125},{"id":"network:SKILL.md:200:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- **Comprehensive page index:** https://docs.privy.io/llms.txt","category":"network","line_end":200,"severity":"low","line_start":200},{"id":"network:SKILL.md:201:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- **Key concepts guide:** https://docs.privy.io/basics/key-concepts","category":"network","line_end":201,"severity":"low","line_start":201},{"id":"network:SKILL.md:202:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- **REST API reference:** https://docs.privy.io/api-reference/introduction","category":"network","line_end":202,"severity":"low","line_start":202},{"id":"network:SKILL.md:203:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- **Policies and controls:** https://docs.privy.io/controls/policies/overview","category":"network","line_end":203,"severity":"low","line_start":203},{"id":"network:SKILL.md:204:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- **Webhooks setup:** https://docs.privy.io/api-reference/webhooks/overview","category":"network","line_end":204,"severity":"low","line_start":204},{"id":"network:SKILL.md:208:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"> For additional documentation and navigation, see: https://docs.privy.io/llms.txt","category":"network","line_end":208,"severity":"low","line_start":208},{"id":"sensitive:SKILL.md:157:cryptocurrency-wallet","file":"SKILL.md","pattern":"Cryptocurrency wallet","snippet":"- **Server-side:** Call `privy.wallets().ethereum().sendTransaction()` or equivalent","category":"sensitive","line_end":157,"severity":"critical","line_start":157}],"finding_verdicts":[{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown code fences for TypeScript or REST examples. They are documentation formatting, not Ruby backtick execution or an agent-run shell command.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown code fences for TypeScript or REST examples. They are documentation formatting, not Ruby backtick execution or an agent-run shell command.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:53:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown code fences for TypeScript or REST examples. They are documentation formatting, not Ruby backtick execution or an agent-run shell command.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown code fences for TypeScript or REST examples. They are documentation formatting, not Ruby backtick execution or an agent-run shell command.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The detected backticks are a Markdown bash code fence around a manual curl example with placeholders. The skill file does not execute the command or construct shell input.","verdict":"false_positive","confidence":0.86},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown code fences for TypeScript or REST examples. They are documentation formatting, not Ruby backtick execution or an agent-run shell command.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:135:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:144:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:145:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:173:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:175:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:176:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","reason":"The detected backticks are Markdown inline formatting for API names, SDK identifiers, or checklist text. SKILL.md contains no executable Ruby shell interpolation at this location.","verdict":"false_positive","confidence":0.95},{"id":"network:SKILL.md:13:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:60:hardcoded-url","reason":"The URL is the official Privy API endpoint inside a manual curl example with placeholder credentials. It is not hidden exfiltration or automatic network activity by the skill.","verdict":"false_positive","confidence":0.88},{"id":"network:SKILL.md:125:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:200:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:201:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:202:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:203:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:204:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:208:hardcoded-url","reason":"The URL points to Privy dashboard or documentation resources and is presented as a user-facing reference. The skill does not contain code that automatically sends data there.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:SKILL.md:157:cryptocurrency-wallet","reason":"Line 157 directs users to send blockchain transactions from server-side wallets. This is legitimate Privy guidance, but mistakes or unauthorized use could move assets irreversibly.","verdict":"confirmed","severity":"critical","confidence":0.92}],"semantic_findings":[],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"critical","confirmedFindingCount":1,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"blocked","manualInstallPolicy":"allowed_with_warning","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}