{"data":{"skill":{"slug":"internet-court-nansen-wallet-profiler","name":"nansen-wallet-profiler","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/nansen/nansen-wallet-profiler","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"b0d5b104-eeb5-4968-8d17-6283cb1185a6","skill_id":"9460bb73-5122-450a-a06e-f583d4a6b8a5","version":2,"content_hash":"v3:3f6e026a3363e0954ede7bef0cfe88d4475de137:14b6190de82e7be0eb0ca89f1c68713beead28fb142819d02f289c5fa97b19c0:a5206982a3431e892255921ad341d3f1ad1f28459050c842bc448b69ae24d741:736b696c6c732f696e7465726e65742d636f7572742f6e616e73656e2d77616c6c65742d70726f66696c6572:d40d456a339ad53cc63afcebac861dfb","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 30 external-command detections are false positives caused by Markdown code formatting and documented fixed CLI examples. Both environment-key detections are declarative installation metadata; no secret-reading or exfiltration behavior is present. No prompt injection, hidden instructions, or other intent-level security concern was found.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":21,"line_start":21},{"file":"SKILL.md","line_end":23,"line_start":23},{"file":"SKILL.md","line_end":31,"line_start":27},{"file":"SKILL.md","line_end":35,"line_start":31},{"file":"SKILL.md","line_end":38,"line_start":35},{"file":"SKILL.md","line_end":42,"line_start":38},{"file":"SKILL.md","line_end":45,"line_start":42},{"file":"SKILL.md","line_end":49,"line_start":45},{"file":"SKILL.md","line_end":52,"line_start":49},{"file":"SKILL.md","line_end":56,"line_start":52},{"file":"SKILL.md","line_end":59,"line_start":56},{"file":"SKILL.md","line_end":63,"line_start":59},{"file":"SKILL.md","line_end":74,"line_start":63},{"file":"SKILL.md","line_end":80,"line_start":74},{"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":84,"line_start":84},{"file":"SKILL.md","line_end":86,"line_start":85},{"file":"SKILL.md","line_end":87,"line_start":86},{"file":"SKILL.md","line_end":88,"line_start":87},{"file":"SKILL.md","line_end":89,"line_start":88},{"file":"SKILL.md","line_end":93,"line_start":89},{"file":"SKILL.md","line_end":94,"line_start":93},{"file":"SKILL.md","line_end":95,"line_start":94},{"file":"SKILL.md","line_end":95,"line_start":95},{"file":"SKILL.md","line_end":97,"line_start":96},{"file":"SKILL.md","line_end":97,"line_start":97},{"file":"SKILL.md","line_end":98,"line_start":98}]},{"factor":"env_access","evidence":[{"file":"SKILL.md","line_end":8,"line_start":8},{"file":"SKILL.md","line_end":11,"line_start":11}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":99,"audit_model":"claude","audited_at":"2026-07-21T03:41:44.706+00:00","created_at":"2026-07-21T03:52:35.57616+00:00","static_findings":[{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"All commands: `nansen research profiler <sub> [options]`","category":"external_commands","line_end":21,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`--address` and `--chain` required for most commands.","category":"external_commands","line_end":23,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":31,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":35,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":38,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":42,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":45,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":49,"severity":"medium","line_start":45},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":52,"severity":"medium","line_start":49},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":56,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","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":"```","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":"```bash","category":"external_commands","line_end":74,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":80,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--address` | Wallet address (required) |","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":"| `--chain` | Required except for perps and search |","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":"| `--days` | Lookback period (default 30) |","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":"| `--limit` | Number of results |","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":"| `--include` | Batch fields: `labels,balance,pnl` |","category":"external_commands","line_end":84,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--depth` | Trace depth 1-5 (default 2) |","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":"| `--width` | Trace width — keep low to save credits |","category":"external_commands","line_end":87,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--fields` | Select specific fields |","category":"external_commands","line_end":88,"severity":"medium","line_start":87},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--table` | Human-readable table output |","category":"external_commands","line_end":89,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--format csv` | CSV export |","category":"external_commands","line_end":93,"severity":"medium","line_start":89},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `pnl-summary` has no pagination support (returns aggregate stats, not a list).","category":"external_commands","line_end":94,"severity":"medium","line_start":93},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `perp-positions` has no pagination support.","category":"external_commands","line_end":95,"severity":"medium","line_start":94},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `labels` has no pagination support — the API ignores `per_page` and always returns all labels for ","category":"external_commands","line_end":95,"severity":"medium","line_start":95},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `transactions` caps at per_page=100 (API limit).","category":"external_commands","line_end":97,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `trace` makes many API calls — use `--width` conservatively.","category":"external_commands","line_end":97,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `batch` accepts `--file <path>` with one address per line as alternative to `--addresses`.","category":"external_commands","line_end":98,"severity":"medium","line_start":98},{"id":"env_access:SKILL.md:8:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"- NANSEN_API_KEY","category":"env_access","line_end":8,"severity":"high","line_start":8},{"id":"env_access:SKILL.md:11:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"primaryEnv: NANSEN_API_KEY","category":"env_access","line_end":11,"severity":"high","line_start":11}],"finding_verdicts":[{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:87:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:93:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"This is Markdown documentation for a fixed nansen CLI command or flag, not executable shell syntax. The skill contains no script or interpolation that runs these backticks.","verdict":"false_positive","confidence":0.98},{"id":"env_access:SKILL.md:8:generic-api-secret-keys","reason":"This is declarative metadata naming the required Nansen API key, not code that reads, exposes, or transmits an environment secret.","verdict":"false_positive","confidence":0.98},{"id":"env_access:SKILL.md:11:generic-api-secret-keys","reason":"This is declarative metadata naming the required Nansen API key, not code that reads, exposes, or transmits an environment secret.","verdict":"false_positive","confidence":0.98}],"semantic_findings":[],"subject_marketplace_commit_sha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","subject_content_hash":"14b6190de82e7be0eb0ca89f1c68713beead28fb142819d02f289c5fa97b19c0","subject_tree_hash":"a5206982a3431e892255921ad341d3f1ad1f28459050c842bc448b69ae24d741","subject_plugin_path":"skills/internet-court/nansen-wallet-profiler","audit_payload_hash":"d40d456a339ad53cc63afcebac861dfb","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3f6e026a3363e0954ede7bef0cfe88d4475de137","contentHash":"14b6190de82e7be0eb0ca89f1c68713beead28fb142819d02f289c5fa97b19c0","treeHash":"a5206982a3431e892255921ad341d3f1ad1f28459050c842bc448b69ae24d741","pluginPath":"skills/internet-court/nansen-wallet-profiler","auditPayloadHash":"d40d456a339ad53cc63afcebac861dfb"},"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":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"unavailable","verificationState":"not_verified"},"isLatest":true}}