hive-intelligence 1.1.4 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +182 -73
  2. package/agent-skills/.claude-plugin/plugin.json +4 -4
  3. package/agent-skills/.mcp.json +1 -4
  4. package/agent-skills/README.md +16 -10
  5. package/agent-skills/SKILL.md +30 -12
  6. package/agent-skills/package.json +1 -1
  7. package/agent-skills/packs/hive-build/SKILL.md +47 -19
  8. package/agent-skills/packs/hive-build/evals/evals.json +16 -3
  9. package/agent-skills/packs/hive-build/evals/triggers.json +50 -0
  10. package/agent-skills/packs/hive-build-onboarding/SKILL.md +30 -37
  11. package/agent-skills/packs/hive-build-onboarding/evals/evals.json +1 -1
  12. package/agent-skills/packs/hive-build-onboarding/evals/triggers.json +50 -0
  13. package/agent-skills/packs/hive-cli/SKILL.md +33 -35
  14. package/agent-skills/packs/hive-cli/evals/evals.json +1 -1
  15. package/agent-skills/packs/hive-cli/evals/triggers.json +50 -0
  16. package/agent-skills/packs/hive-defi-research/SKILL.md +105 -19
  17. package/agent-skills/packs/hive-defi-research/evals/evals.json +6 -3
  18. package/agent-skills/packs/hive-defi-research/evals/triggers.json +50 -0
  19. package/agent-skills/packs/hive-dex-pool-analysis/SKILL.md +106 -16
  20. package/agent-skills/packs/hive-dex-pool-analysis/evals/evals.json +5 -3
  21. package/agent-skills/packs/hive-dex-pool-analysis/evals/triggers.json +50 -0
  22. package/agent-skills/packs/hive-market-research/SKILL.md +130 -21
  23. package/agent-skills/packs/hive-market-research/evals/evals.json +15 -2
  24. package/agent-skills/packs/hive-market-research/evals/triggers.json +50 -0
  25. package/agent-skills/packs/hive-mcp/SKILL.md +69 -47
  26. package/agent-skills/packs/hive-mcp/evals/evals.json +3 -2
  27. package/agent-skills/packs/hive-mcp/evals/triggers.json +50 -0
  28. package/agent-skills/packs/hive-mcp/references/client-install-matrix.md +62 -35
  29. package/agent-skills/packs/hive-mcp/references/clients.md +81 -68
  30. package/agent-skills/packs/hive-network-infrastructure/SKILL.md +105 -20
  31. package/agent-skills/packs/hive-network-infrastructure/evals/evals.json +4 -2
  32. package/agent-skills/packs/hive-network-infrastructure/evals/triggers.json +50 -0
  33. package/agent-skills/packs/hive-nft-research/SKILL.md +105 -18
  34. package/agent-skills/packs/hive-nft-research/evals/evals.json +4 -2
  35. package/agent-skills/packs/hive-nft-research/evals/triggers.json +50 -0
  36. package/agent-skills/packs/hive-prediction-markets/SKILL.md +108 -21
  37. package/agent-skills/packs/hive-prediction-markets/evals/evals.json +4 -2
  38. package/agent-skills/packs/hive-prediction-markets/evals/triggers.json +50 -0
  39. package/agent-skills/packs/hive-query/SKILL.md +79 -33
  40. package/agent-skills/packs/hive-query/evals/evals.json +7 -5
  41. package/agent-skills/packs/hive-query/evals/triggers.json +50 -0
  42. package/agent-skills/packs/hive-query/references/root-mcp-workflow.md +39 -18
  43. package/agent-skills/packs/hive-security-risk/SKILL.md +110 -19
  44. package/agent-skills/packs/hive-security-risk/evals/evals.json +4 -2
  45. package/agent-skills/packs/hive-security-risk/evals/triggers.json +50 -0
  46. package/agent-skills/packs/hive-solana-analysis/SKILL.md +115 -19
  47. package/agent-skills/packs/hive-solana-analysis/evals/evals.json +4 -2
  48. package/agent-skills/packs/hive-solana-analysis/evals/triggers.json +50 -0
  49. package/agent-skills/packs/hive-stateful-monitoring/SKILL.md +92 -47
  50. package/agent-skills/packs/hive-stateful-monitoring/evals/evals.json +7 -2
  51. package/agent-skills/packs/hive-stateful-monitoring/evals/triggers.json +50 -0
  52. package/agent-skills/packs/hive-stateful-monitoring/references/b2b-subject-context.md +53 -0
  53. package/agent-skills/packs/hive-token-diligence/SKILL.md +119 -21
  54. package/agent-skills/packs/hive-token-diligence/evals/evals.json +6 -4
  55. package/agent-skills/packs/hive-token-diligence/evals/triggers.json +50 -0
  56. package/agent-skills/packs/hive-tool-discovery/SKILL.md +48 -19
  57. package/agent-skills/packs/hive-tool-discovery/evals/evals.json +17 -3
  58. package/agent-skills/packs/hive-tool-discovery/evals/triggers.json +50 -0
  59. package/agent-skills/packs/hive-tool-discovery/references/discovery-surfaces.md +31 -6
  60. package/agent-skills/packs/hive-wallet-investigation/SKILL.md +111 -18
  61. package/agent-skills/packs/hive-wallet-investigation/evals/evals.json +5 -3
  62. package/agent-skills/packs/hive-wallet-investigation/evals/triggers.json +50 -0
  63. package/agent-skills/references/agents-routing.md +17 -7
  64. package/agent-skills/scripts/validate-agent-skills-package.mjs +68 -8
  65. package/bin/hive-mcp.js +5 -5
  66. package/build/{alias-3OPMQF4X.js → alias-BKAVOYQV.js} +2 -2
  67. package/build/api-client-WMWFWXC7.js +16 -0
  68. package/build/{auth-Q5Q24IRI.js → auth-HRFQWQMZ.js} +3 -11
  69. package/build/browser-auth-KXIO5BHM.js +20 -0
  70. package/build/{cache-T6KC5YEY.js → cache-TBDQ7QBU.js} +2 -2
  71. package/build/chunk-3OZFBWFK.js +180 -0
  72. package/build/{chunk-POT2MBEK.js → chunk-6PC3HUAK.js} +10 -3
  73. package/build/{chunk-NP6NSOG2.js → chunk-725R3KLJ.js} +26 -3
  74. package/build/chunk-7DYHWY4Y.js +125 -0
  75. package/build/{chunk-ZXB53E7H.js → chunk-AEU43ACS.js} +31 -7
  76. package/build/chunk-AQQAPAER.js +197 -0
  77. package/build/chunk-EPF36Q3Z.js +71 -0
  78. package/build/{upgrade-DTUIHVPS.js → chunk-GHCYCBA3.js} +4 -5
  79. package/build/{chunk-3WYWXTNN.js → chunk-ILVPOLA7.js} +12 -3
  80. package/build/{chunk-VBOKVQ74.js → chunk-L326MQZP.js} +6 -5
  81. package/build/{chunk-FRXMGRZQ.js → chunk-M6REON2I.js} +2 -2
  82. package/build/{chunk-7JWXBKEJ.js → chunk-P7NLFSZQ.js} +9 -60
  83. package/build/chunk-QDZ7MAVN.js +447 -0
  84. package/build/{chunk-ZTJVOWDQ.js → chunk-R6YZTFQL.js} +2 -0
  85. package/build/{chunk-YZ2PXBJK.js → chunk-RU6QOFHH.js} +6 -9
  86. package/build/{chunk-FH3YGSY5.js → chunk-TNQ7GJ6Q.js} +0 -59
  87. package/build/{chunk-5XXI25JE.js → chunk-TVQJY47C.js} +12 -160
  88. package/build/{chunk-JTUKQWIO.js → chunk-UFTNBCSA.js} +35515 -14994
  89. package/build/{chunk-ZCU7XQKF.js → chunk-ZXKFJQDE.js} +7 -1
  90. package/build/cli.js +3342 -3423
  91. package/build/{completion-46K674EL.js → completion-7KBW243H.js} +4 -4
  92. package/build/{config-XE6Q5P4I.js → config-KAEUX6RM.js} +23 -3
  93. package/build/{config-dir-MAWX5AUF.js → config-dir-5IH7MOOT.js} +2 -2
  94. package/build/{doctor-HGMQE6IN.js → doctor-GHUAUFS2.js} +12 -12
  95. package/build/{errors-J2PH3NLJ.js → errors-HGHUF575.js} +2 -2
  96. package/build/{format-5X2HIVDT.js → format-H7FOQSYY.js} +1 -1
  97. package/build/{init-JMDNM7ZZ.js → init-UCTCUYFA.js} +52 -8
  98. package/build/init-all-RG542NWG.js +427 -0
  99. package/build/mcpServer-D7OXUDU5.js +34 -0
  100. package/build/monitor-worker.js +296 -40
  101. package/build/{namespace-FSX2G3NM.js → namespace-L5DGCY7K.js} +2 -2
  102. package/build/{open-5A6ZQMGC.js → open-V2RNA3QT.js} +1 -1
  103. package/build/{output-V3D4YZ6U.js → output-ITGLBKIG.js} +2 -2
  104. package/build/release.json +8 -0
  105. package/build/{serve-AGCOXXFM.js → serve-K3IT7DS4.js} +3 -3
  106. package/build/server.js +6396 -3220
  107. package/build/{setup-RMETGJWK.js → setup-PTYFMTK5.js} +60 -55
  108. package/build/stdio.js +7 -6
  109. package/build/{telemetry-WCME5XEU.js → telemetry-HPLDYR7U.js} +5 -4
  110. package/build/{tools-KAB6QBZC.js → tools-D72ZH6P5.js} +15 -15
  111. package/build/{uninstall-FLJMBBSC.js → uninstall-SAOIPL6K.js} +19 -10
  112. package/build/{update-check-LNZQK3XA.js → update-check-IEXPOYYR.js} +4 -4
  113. package/build/upgrade-4S5XT5JG.js +14 -0
  114. package/build/{version-I6HDAF4L.js → version-Z4HJL4VV.js} +4 -2
  115. package/build/{watch-YNN255QX.js → watch-IOSRSCFE.js} +8 -7
  116. package/package.json +73 -35
  117. package/agent-skills/packs/hive-defi-research/references/workflow.md +0 -41
  118. package/agent-skills/packs/hive-dex-pool-analysis/references/workflow.md +0 -42
  119. package/agent-skills/packs/hive-market-research/references/workflow.md +0 -47
  120. package/agent-skills/packs/hive-network-infrastructure/references/workflow.md +0 -41
  121. package/agent-skills/packs/hive-nft-research/references/workflow.md +0 -42
  122. package/agent-skills/packs/hive-prediction-markets/references/workflow.md +0 -42
  123. package/agent-skills/packs/hive-security-risk/references/workflow.md +0 -46
  124. package/agent-skills/packs/hive-solana-analysis/references/workflow.md +0 -42
  125. package/agent-skills/packs/hive-token-diligence/references/workflow.md +0 -45
  126. package/agent-skills/packs/hive-wallet-investigation/references/workflow.md +0 -45
  127. package/build/api-client-EPF6FD7A.js +0 -28
  128. package/build/browser-auth-VPF5LZMZ.js +0 -8
  129. package/build/chunk-4F5CI6LX.js +0 -340
  130. package/build/chunk-CEWCB5YS.js +0 -71
  131. package/build/chunk-GZPDEXO4.js +0 -126
  132. package/build/chunk-IZPAMRHP.js +0 -43
  133. package/build/init-all-5SKNV75X.js +0 -273
  134. package/build/mcpServer-5TKKSKJM.js +0 -21
@@ -1,141 +1,154 @@
1
1
  # Per-client install instructions
2
2
 
3
- The MCP endpoint is the same everywhere — `https://mcp.hiveintelligence.xyz/mcp`
4
- with `Authorization: Bearer <HIVE_API_KEY>`. Only the config file path and JSON
5
- shape vary. Read the block for the user's specific client.
3
+ Use the canonical hosted endpoint everywhere:
4
+
5
+ ```text
6
+ https://mcp.hiveintelligence.xyz/mcp
7
+ ```
8
+
9
+ After hosted OAuth activation, interactive clients use URL-only OAuth
10
+ discovery. Headless API and backend paths keep `HIVE_API_KEY` in server-side
11
+ secret storage. Before giving any native connector instruction, verify that
12
+ `https://mcp.hiveintelligence.xyz/.well-known/oauth-protected-resource/mcp`
13
+ returns valid metadata; otherwise use a trusted headless path and say that the
14
+ native connector is not live yet.
6
15
 
7
16
  ## Claude Code
8
17
 
9
18
  ```bash
10
- claude mcp add --transport http hive https://mcp.hiveintelligence.xyz/mcp \
11
- --header "Authorization: Bearer $HIVE_API_KEY"
19
+ claude mcp add --transport http --scope user hive https://mcp.hiveintelligence.xyz/mcp
12
20
  ```
13
21
 
14
- Add `--scope user` to install globally, or `--scope project` to commit to the
15
- repo's `.mcp.json`. Default scope is local. Restart isn't required tools
16
- appear in the next chat session.
22
+ After OAuth activation, Claude opens Hive authorization on first connect. Use
23
+ `--scope user` for a global entry or `--scope project` for the current project.
24
+
25
+ ## Claude Desktop / Claude.ai
26
+
27
+ Do not put a remote URL in `claude_desktop_config.json`; that file is for local
28
+ stdio servers. Open **Settings → Connectors → Add custom connector**, enter the
29
+ Hive URL, and, after OAuth activation, complete browser authorization.
17
30
 
18
31
  ## Cursor
19
32
 
20
- Edit `~/.cursor/mcp.json`. Add the `hive` server block:
33
+ Edit `~/.cursor/mcp.json`:
21
34
 
22
35
  ```json
23
36
  {
24
37
  "mcpServers": {
25
38
  "hive": {
26
- "url": "https://mcp.hiveintelligence.xyz/mcp",
27
- "headers": {
28
- "Authorization": "Bearer YOUR_HIVE_API_KEY"
29
- }
39
+ "url": "https://mcp.hiveintelligence.xyz/mcp"
30
40
  }
31
41
  }
32
42
  }
33
43
  ```
34
44
 
35
- Reload the MCP server list from Cursor's command palette (`Cmd+Shift+P` → "MCP:
36
- Reload Servers"). Or use the deeplink:
37
-
38
- ```
39
- cursor://anysphere.cursor-deeplink/mcp/install?name=hive&config=<base64-encoded-config>
40
- ```
45
+ After OAuth activation, reload MCP servers, approve the public URL, and
46
+ complete OAuth when Cursor opens the browser. Never add a placeholder
47
+ Authorization header.
41
48
 
42
- ## Claude Desktop
49
+ ## VS Code (GitHub Copilot Chat)
43
50
 
44
- Settings → Developer → Edit Config. The file opens in your default editor. Same
45
- shape as Cursor:
51
+ Create `.vscode/mcp.json` or use the MCP user configuration:
46
52
 
47
53
  ```json
48
54
  {
49
- "mcpServers": {
55
+ "servers": {
50
56
  "hive": {
51
- "url": "https://mcp.hiveintelligence.xyz/mcp",
52
- "headers": {
53
- "Authorization": "Bearer YOUR_HIVE_API_KEY"
54
- }
57
+ "type": "http",
58
+ "url": "https://mcp.hiveintelligence.xyz/mcp"
55
59
  }
56
60
  }
57
61
  }
58
62
  ```
59
63
 
60
- Quit Claude Desktop fully (⌘Q on macOS the menu bar icon must disappear) and
61
- reopen. Tools become available on next chat.
64
+ The official one-click form is a `vscode:mcp/install?` URL containing the
65
+ URL-encoded object `{ "name": "hive", "type": "http", "url": "..." }`.
66
+ The Hive CLI installs workflow skills for Copilot-compatible agents under
67
+ `~/.copilot/skills`.
62
68
 
63
- ## VS Code (GitHub Copilot Chat)
69
+ ## Windsurf / Devin Desktop
64
70
 
65
- Requires VS Code 1.101 or newer. Create `.vscode/mcp.json` in the project root
66
- (or use User Settings for a global install):
71
+ Edit `~/.codeium/windsurf/mcp_config.json`:
67
72
 
68
73
  ```json
69
74
  {
70
- "servers": {
75
+ "mcpServers": {
71
76
  "hive": {
72
- "type": "http",
73
- "url": "https://mcp.hiveintelligence.xyz/mcp",
74
- "headers": {
75
- "Authorization": "Bearer YOUR_HIVE_API_KEY"
76
- }
77
+ "serverUrl": "https://mcp.hiveintelligence.xyz/mcp"
77
78
  }
78
79
  }
79
80
  }
80
81
  ```
81
82
 
82
- Reload the window. Note the `type: "http"` field this is required in VS Code's
83
- schema and differs from Cursor / Claude Desktop.
83
+ After OAuth activation, reload the client and complete native OAuth.
84
84
 
85
- ## Windsurf
85
+ ## Gemini CLI
86
86
 
87
- Edit `~/.codeium/windsurf/mcp_config.json`:
87
+ Edit `~/.gemini/settings.json`:
88
88
 
89
89
  ```json
90
90
  {
91
91
  "mcpServers": {
92
92
  "hive": {
93
- "url": "https://mcp.hiveintelligence.xyz/mcp",
94
- "headers": {
95
- "Authorization": "Bearer YOUR_HIVE_API_KEY"
96
- }
93
+ "httpUrl": "https://mcp.hiveintelligence.xyz/mcp"
97
94
  }
98
95
  }
99
96
  }
100
97
  ```
101
98
 
102
- Reload Windsurf.
99
+ After OAuth activation, Gemini CLI discovers OAuth for the remote HTTP server
100
+ and stores tokens in its credential store. Hive workflow skills install under
101
+ `~/.gemini/skills`.
102
+
103
+ ## ChatGPT custom app
103
104
 
104
- ## OpenAI Responses API
105
+ In ChatGPT open **Settings → Apps**, enable Developer mode if the workspace
106
+ requires it, choose **Create app**, enter the Hive URL, scan tools, and complete
107
+ Hive OAuth. If the production protected-resource metadata is unavailable, use
108
+ the server-side Responses API path until the OAuth deployment is activated.
105
109
 
106
- Use Hive as a server-side remote MCP tool from your application code. Keep the
107
- Hive API key on your server and pass it in the remote MCP tool headers.
110
+ ## Grok
108
111
 
109
- Direct ChatGPT app connector setup is beta and auth-dependent; do not promise a
110
- verified bearer-token ChatGPT app connector unless Hive has shipped the auth
111
- shape that workspace requires.
112
+ After OAuth activation, open `grok.com/connectors`, add a custom MCP connector
113
+ with the Hive URL, and complete OAuth. Verify a visible Hive tool call and
114
+ runtime receipt rather than accepting an answer generated only from model
115
+ memory.
112
116
 
113
- ## Codex CLI
117
+ ## OpenAI Responses API (headless)
114
118
 
115
- Edit `~/.codex/config.toml`:
119
+ Use Hive as a server-side remote MCP tool. Keep `HIVE_API_KEY` in backend secret
120
+ storage and pass it through the Responses API authorization field; never expose
121
+ it to a browser or prompt.
116
122
 
117
- ```toml
118
- [mcp_servers.hive]
119
- url = "https://mcp.hiveintelligence.xyz/mcp"
120
- bearer_token_env_var = "HIVE_API_KEY"
123
+ ## Codex
124
+
125
+ Use Codex's supported CLI flow so the server entry is URL-only and Codex owns
126
+ the OAuth token lifecycle:
127
+
128
+ ```bash
129
+ codex mcp add hive --url https://mcp.hiveintelligence.xyz/mcp
130
+ codex mcp login hive
121
131
  ```
122
132
 
123
- Set `HIVE_API_KEY` in the shell that launches Codex, then verify with `codex
124
- /mcp` after restart.
133
+ Complete Hive authorization in the browser. Hive workflow skills install under
134
+ `~/.codex/skills`. For a truly headless Codex process that cannot open a
135
+ browser, `bearer_token_env_var = "HIVE_API_KEY"` remains an explicit fallback;
136
+ keep the key in the launching process's secret store, never in a shared file.
125
137
 
126
- ## Gemini CLI
138
+ ## Local stdio fallback
127
139
 
128
- Edit `~/.gemini/settings.json`:
140
+ For local-only clients, self-hosting, or provider-key experiments:
129
141
 
130
142
  ```json
131
143
  {
132
144
  "mcpServers": {
133
- "hive": {
134
- "url": "https://mcp.hiveintelligence.xyz/mcp",
135
- "headers": {
136
- "Authorization": "Bearer YOUR_HIVE_API_KEY"
137
- }
145
+ "hive-local": {
146
+ "command": "npx",
147
+ "args": ["-y", "-p", "hive-intelligence@latest", "hive"]
138
148
  }
139
149
  }
140
150
  }
141
151
  ```
152
+
153
+ Local stdio does not need `HIVE_API_KEY`; optional upstream provider keys can be
154
+ supplied locally when needed.
@@ -1,44 +1,129 @@
1
1
  ---
2
2
  name: hive-network-infrastructure
3
- description: Use this skill for chain infrastructure and RPC questions covering gas, blocks, receipts, logs, transaction status, supported networks, fee data, and diagnostics. Use it when the user needs current chain state or transaction evidence.
3
+ description: Use this skill when the user asks about chain state or transaction plumbing gas prices, blocks, transaction receipts and status ("did my tx go through"), event logs, supported networks, fee data, or RPC diagnostics. Use it whenever the answer needs current chain-level evidence. For wallet holdings use hive-wallet-investigation; for Solana slots/fees use hive-solana-analysis.
4
4
  license: MIT
5
5
  metadata:
6
6
  package: "@hiveintelligence/agent-skills"
7
7
  category: "network"
8
8
  requires_network: "true"
9
- version: 1.0.0
9
+ version: 1.4.0
10
10
  ---
11
11
 
12
12
  # hive-network-infrastructure — Network Infrastructure
13
13
 
14
- Use this skill for block, gas, transaction receipt, logs, supported network, or
15
- RPC diagnostic questions.
14
+ Read chain state gas, blocks, receipts, logs, transaction status, supported
15
+ networks — and run RPC diagnostics with auditable, timestamped evidence.
16
16
 
17
- ## Task toolset
17
+ ## Task toolset and identifiers
18
18
 
19
- Use `network_infrastructure`.
19
+ Toolset: `network_infrastructure`. Read
20
+ `hive://toolsets/network_infrastructure` before execution; it is authoritative
21
+ for the current output schema, material-call budget, phases, fallback
22
+ condition, and stop conditions.
20
23
 
21
- Required identifiers: chain. Optional identifiers include block number,
22
- transaction hash, contract address, or log filter.
24
+ - Required: chain/network.
25
+ - Optional: block number/hash, transaction hash, contract address, log
26
+ filter, account address, time window.
23
27
 
24
- ## Procedure
28
+ Ask for the exact chain plus transaction/block identifiers before status
29
+ checks — a transaction hash is not globally unique without chain context.
30
+
31
+ Before choosing endpoints, select exactly one matching entry from the exact
32
+ workflow's routes[]. Follow its ordered steps, use a fallback only under that
33
+ step's published condition, stop at four material calls, and preserve the
34
+ selected route_id in the typed result. The broad coverageCatalog is discovery
35
+ coverage, not an execution plan.
25
36
 
26
- Read `references/workflow.md` when the request needs transaction diagnostics,
27
- RPC/provider comparison, gas/fee context, or a structured network report.
37
+ ## Procedure
28
38
 
29
39
  1. Confirm the chain/network id.
30
- 2. Use block/gas/chain-id tools for current state.
31
- 3. Use transaction, receipt, or logs tools only when the user provides exact
32
- identifiers.
33
- 4. Report the block/slot/fetched time so the answer is auditable.
40
+ 2. Use `filter_networks` when comparing chains by current liquidity,
41
+ transactions, or volume. Otherwise call `search_tools` for gas, block,
42
+ transaction, receipt, log, supported-network, or RPC-diagnostic
43
+ capabilities.
44
+ 3. Call `get_api_endpoint_schema` for each endpoint before calling it.
45
+ 4. Use current-state tools for gas and block questions; use
46
+ transaction/receipt/log tools only with exact identifiers.
47
+ 5. Report the block/slot/fetched time so the answer is auditable.
48
+
49
+ ## Bounded calls
50
+
51
+ - Bound log queries by block range and topics.
52
+ - Do not run broad chain scans for a single transaction question.
53
+ - Retry transient RPC failures once when appropriate.
54
+
55
+ ## Worked example
56
+
57
+ User: "Did my transaction go through? Hash is 0x… — I think it was on Base."
58
+
59
+ 1. Confirm the chain (Base) and the exact hash.
60
+ 2. `search_tools` → `{"query": "transaction receipt status base", "limit": 5}`
61
+ 3. `get_api_endpoint_schema` for the receipt/status endpoint returned, then
62
+ `invoke_api_endpoint` with schema-valid arguments.
63
+ 4. Report status, block number, gas used, and the fetched time. If the
64
+ receipt is missing, say whether that means pending, dropped, or wrong
65
+ chain — do not guess success.
66
+
67
+ ## Report template
68
+
69
+ ```markdown
70
+ ## Summary
71
+ [Network or transaction state in one or two sentences.]
34
72
 
35
- ## Example
73
+ ## Calls made
74
+ - Toolset: network_infrastructure
75
+ - Endpoint(s): [exact endpoint names]
76
+ - Identifiers: [chain, hash/block/address, filters]
36
77
 
37
- If the user asks whether a transaction succeeded, ask for chain and transaction
38
- hash before selecting a receipt or transaction lookup tool.
78
+ ## Evidence
79
+ - State: [block/slot, gas/fee, receipt/log/status]
80
+ - Provenance: [provider, fetched_at, observed_at/cache_age_ms, runtime status per call]
81
+
82
+ ## Caveats
83
+ [Provider mismatch, stale block, rate limit, incomplete logs.]
84
+
85
+ ## Next action
86
+ [Narrower log filter, alternate provider, or retry — only if needed.]
87
+ ```
88
+
89
+ ## Gotchas
90
+
91
+ - A transaction hash is not globally unique without chain context.
92
+ - Logs require bounded block ranges.
93
+ - HTTP health does not prove provider data freshness.
94
+
95
+ ## Evidence receipt (required)
96
+
97
+ End every Hive-backed answer with a compact receipt built from the `_hive`
98
+ object on each material tool response:
99
+
100
+ - `provider`, `tool`, `fetched_at`, `observed_at`, `cache_age_ms`, and `runtime_status`
101
+ - `receipt_id`, `receipt_version`, server/build version, and SHA-256 input/result
102
+ digests when present (self-checks, not signatures)
103
+ - `source`, `cache_status`, `truncated`, and any warnings
104
+ - canonical chain/entity identifiers plus block, slot, transaction, or query ids
105
+ present in provider data
106
+ - material provider disagreements and how they were handled
107
+ - checks that were unavailable, gated, stale, truncated, or intentionally not run
108
+ - a `claims[]` citation from each material statement to exact receipt IDs
109
+ - one `coverage[]` entry for every canonical evidence phase, with each gap explained
110
+
111
+ Never turn missing evidence into a clean result, silently merge conflicting
112
+ provider values, or omit a degraded/fallback call from the receipt.
113
+ `observed_at` is Hive's first-observation/original cache-population time, and
114
+ `cache_age_ms: 0` only means newly retrieved by Hive. Use provider time, block,
115
+ slot, transaction, or candle close for source recency; if absent, mark it
116
+ unknown. Run `validate_task_result` before presenting the typed workflow result;
117
+ it checks structure but cannot authenticate an invented receipt.
39
118
 
40
119
  ## Runtime status handling
41
120
 
42
- Use `ok`, `missing_key`, `plan_required`, `rate_limited`, `degraded`, and
43
- `failing`. For transient RPC failures, retry once or fall back to another
121
+ Use `ok`, `invalid_input`, `missing_key`, `plan_required`, `rate_limited`,
122
+ `degraded`, and `failing`. For transient RPC failures, retry once or fall back to another
44
123
  network read and state the limitation.
124
+
125
+ ## Hand-offs
126
+
127
+ - Wallet balances/holdings rather than chain state → `hive-wallet-investigation`.
128
+ - Solana slots, priority fees, parsed transactions → `hive-solana-analysis`.
129
+ - Gas context for a risky transaction → pair with `hive-security-risk`.
@@ -4,12 +4,14 @@
4
4
  {
5
5
  "id": 1,
6
6
  "prompt": "Check whether this Ethereum transaction succeeded and summarize the receipt evidence.",
7
- "expected_output": "Uses network_infrastructure, asks for chain/tx hash if missing, inspects receipt schema, and reports block/freshness/runtime status.",
7
+ "expected_output": "Uses network_infrastructure, asks for chain/tx hash if missing, inspects the transaction receipt schema, and ends with a Hive runtime evidence receipt containing block/freshness/status and receipt ids.",
8
8
  "files": [],
9
9
  "assertions": [
10
10
  "Chooses network_infrastructure.",
11
+ "Selects transaction_debug for this intent and follows its ordered receipt/log steps.",
11
12
  "Requires chain and transaction hash.",
12
- "Reports receipt/block evidence."
13
+ "Reports transaction receipt/block evidence.",
14
+ "Includes Hive runtime receipt ids."
13
15
  ]
14
16
  },
15
17
  {
@@ -0,0 +1,50 @@
1
+ [
2
+ {
3
+ "query": "did my tx go through? 0x… i think it was on base",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "whats gas on mainnet right now",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "pull logs for this contract between blocks 19m and 19.1m",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "is the arbitrum rpc lagging? my reads look stale",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "which networks does hive support for receipts and logs",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "latest block on polygon and the current base fee pls",
24
+ "should_trigger": true
25
+ },
26
+ {
27
+ "query": "what does this wallet hold",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "solana priority fees right now",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "is this contract a honeypot",
36
+ "should_trigger": false
37
+ },
38
+ {
39
+ "query": "explain how eip-1559 burns fees",
40
+ "should_trigger": false
41
+ },
42
+ {
43
+ "query": "alert me when gas drops below 10 gwei",
44
+ "should_trigger": false
45
+ },
46
+ {
47
+ "query": "whats eth trading at",
48
+ "should_trigger": false
49
+ }
50
+ ]
@@ -1,41 +1,128 @@
1
1
  ---
2
2
  name: hive-nft-research
3
- description: Use this skill for NFT collection, ownership, metadata, floor, sale, rarity, spam, or Solana asset research. Use it whenever the user needs current NFT evidence rather than a general explanation of NFTs.
3
+ description: Use this skill when the user asks about NFT collections or assets on EVM chains — ownership, metadata, traits, floor prices, sales, rarity, spam/authenticity checks — like "what's the floor on this collection", "who owns this NFT", "is this collection spam". Use it whenever the user needs current NFT evidence rather than a general explanation of NFTs. For Solana-native assets (mints, DAS, compressed NFTs) use hive-solana-analysis.
4
4
  license: MIT
5
5
  metadata:
6
6
  package: "@hiveintelligence/agent-skills"
7
7
  category: "nft"
8
8
  requires_network: "true"
9
- version: 1.0.0
9
+ version: 1.4.0
10
10
  ---
11
11
 
12
12
  # hive-nft-research — NFT Research
13
13
 
14
- Use this skill for NFT ownership, metadata, collection, floor, sale, rarity, or
15
- spam/authenticity questions.
14
+ Research NFT collections and assets ownership, metadata, floors, sales,
15
+ rarity, spam — with collection-level and token-level facts kept separate.
16
16
 
17
- ## Task toolset
17
+ ## Task toolset and identifiers
18
18
 
19
- Use `nft_research`.
19
+ Toolset: `nft_research`. Read `hive://toolsets/nft_research` before execution;
20
+ it is authoritative for the current output schema, material-call budget,
21
+ phases, fallback condition, and stop conditions.
20
22
 
21
- Required identifiers: chain and collection contract or asset id.
23
+ - Required: chain/network plus collection contract, token id, asset id, or
24
+ wallet address.
25
+ - Optional: marketplace, time window, trait filter, owner.
22
26
 
23
- ## Procedure
27
+ Ask for chain and contract/asset identifiers when the user gives only a
28
+ collection name — collection names are not unique and copycat collections are
29
+ common.
30
+
31
+ Before choosing endpoints, select exactly one matching entry from the exact
32
+ workflow's routes[]. Follow its ordered steps, use a fallback only under that
33
+ step's published condition, stop at four material calls, and preserve the
34
+ selected route_id in the typed result. The broad coverageCatalog is discovery
35
+ coverage, not an execution plan.
24
36
 
25
- Read `references/workflow.md` when the request needs collection resolution,
26
- ownership/floor/sale context, spam caveats, or a structured NFT report.
37
+ ## Procedure
27
38
 
28
39
  1. Resolve collection contract, token id, wallet, or asset id.
29
- 2. Pull metadata, owners, floors, sales, rarity, or spam checks as requested.
30
- 3. Separate collection-level and token-level facts.
31
- 4. Preserve raw metadata when the user asks about traits or provenance.
40
+ 2. Call `search_tools` for metadata, owner, floor, sales, rarity, and spam
41
+ capabilities.
42
+ 3. Call `get_api_endpoint_schema` for each endpoint before calling it.
43
+ 4. Start with metadata/identity; add floor/sales or owner/rarity only when
44
+ relevant.
45
+ 5. Preserve raw metadata when the user asks about traits or provenance.
46
+
47
+ ## Bounded calls
48
+
49
+ - Limit owner and sales lists.
50
+ - Keep collection-level and token-level evidence separate.
51
+ - Do not treat one marketplace floor as the entire market without a caveat.
52
+
53
+ ## Worked example
54
+
55
+ User: "What's the floor and recent sales for this collection? Contract is
56
+ 0x… on Ethereum."
57
+
58
+ 1. `search_tools` → `{"query": "nft collection metadata floor price sales ethereum", "limit": 5}`
59
+ 2. `get_api_endpoint_schema` for the metadata, floor, and sales endpoints
60
+ returned, then `invoke_api_endpoint` with schema-valid arguments and a
61
+ bounded sales window.
62
+ 3. Report floor (with marketplace scope), recent sales, and freshness using
63
+ the template below.
64
+
65
+ ## Report template
66
+
67
+ ```markdown
68
+ ## Summary
69
+ [Collection/token ownership or market read in one or two sentences.]
32
70
 
33
- ## Example
71
+ ## Calls made
72
+ - Toolset: nft_research
73
+ - Endpoint(s): [exact endpoint names]
74
+ - Identifiers: [chain, contract, token/asset ids]
34
75
 
35
- For a collection-level question, ask for the chain and contract if the user only
36
- gave a collection name.
76
+ ## Evidence
77
+ - Identity/metadata: [name, supply, verification]
78
+ - Market: [floor + marketplace, sales in window]
79
+ - Ownership/rarity/spam: [if requested]
80
+ - Provenance: [provider, fetched_at, observed_at/cache_age_ms, runtime status per call]
81
+
82
+ ## Caveats
83
+ [Marketplace coverage, stale floor, missing metadata, degraded data.]
84
+
85
+ ## Next action
86
+ [Trait drilldown, ownership verification, or market comparison — only if needed.]
87
+ ```
88
+
89
+ ## Gotchas
90
+
91
+ - NFT metadata can be mutable or stale.
92
+ - Spam checks can lag new collections — "not flagged" is not "authentic".
93
+ - Floor price is marketplace-scoped unless the provider aggregates.
94
+
95
+ ## Evidence receipt (required)
96
+
97
+ End every Hive-backed answer with a compact receipt built from the `_hive`
98
+ object on each material tool response:
99
+
100
+ - `provider`, `tool`, `fetched_at`, `observed_at`, `cache_age_ms`, and `runtime_status`
101
+ - `receipt_id`, `receipt_version`, server/build version, and SHA-256 input/result
102
+ digests when present (self-checks, not signatures)
103
+ - `source`, `cache_status`, `truncated`, and any warnings
104
+ - canonical chain/entity identifiers plus block, slot, transaction, or query ids
105
+ present in provider data
106
+ - material provider disagreements and how they were handled
107
+ - checks that were unavailable, gated, stale, truncated, or intentionally not run
108
+ - a `claims[]` citation from each material statement to exact receipt IDs
109
+ - one `coverage[]` entry for every canonical evidence phase, with each gap explained
110
+
111
+ Never turn missing evidence into a clean result, silently merge conflicting
112
+ provider values, or omit a degraded/fallback call from the receipt.
113
+ `observed_at` is Hive's first-observation/original cache-population time, and
114
+ `cache_age_ms: 0` only means newly retrieved by Hive. Use provider time, block,
115
+ slot, transaction, or candle close for source recency; if absent, mark it
116
+ unknown. Run `validate_task_result` before presenting the typed workflow result;
117
+ it checks structure but cannot authenticate an invented receipt.
37
118
 
38
119
  ## Runtime status handling
39
120
 
40
- If market data is `degraded`, still return metadata/ownership that succeeded
41
- and label floor or sales metrics as unavailable.
121
+ If market data is `degraded`, still return the metadata/ownership that
122
+ succeeded and label floor or sales metrics as unavailable.
123
+
124
+ ## Hand-offs
125
+
126
+ - Solana mints, DAS assets, compressed NFTs → `hive-solana-analysis`.
127
+ - Wallet-wide NFT exposure → `hive-wallet-investigation`.
128
+ - Mint/contract safety before buying → `hive-security-risk`.
@@ -4,12 +4,14 @@
4
4
  {
5
5
  "id": 1,
6
6
  "prompt": "Research this NFT collection's floor, recent sales, owners, and metadata freshness.",
7
- "expected_output": "Uses nft_research, asks for or resolves chain/collection contract, fetches bounded floor/sales/owner/metadata data, and reports marketplace/provider caveats.",
7
+ "expected_output": "Uses nft_research, asks for or resolves chain/collection contract, fetches bounded floor/sales/owner/metadata data, reports marketplace/provider caveats, and ends with a runtime evidence receipt.",
8
8
  "files": [],
9
9
  "assertions": [
10
10
  "Chooses nft_research.",
11
+ "Selects collection_market or authenticity_check from routes[] and follows its stop condition.",
11
12
  "Requires chain and collection/asset identifier.",
12
- "Reports floor/sales metadata caveats."
13
+ "Reports floor/sales metadata caveats.",
14
+ "Includes receipt ids and source freshness."
13
15
  ]
14
16
  },
15
17
  {
@@ -0,0 +1,50 @@
1
+ [
2
+ {
3
+ "query": "whats the floor on collection 0x… on ethereum and recent sales",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "who owns the most of this collection? any whale concentration?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "is this nft that showed up in my wallet spam",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "how rare is token id 4242 in this collection",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "the metadata on this nft looks wrong, pull the raw traits",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "sales volume for this collection across marketplaces this month",
24
+ "should_trigger": true
25
+ },
26
+ {
27
+ "query": "check this compressed nft on solana",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "what nfts does wallet 0x28C6… hold",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "is minting from this drop site safe? it wants wallet connect",
36
+ "should_trigger": false
37
+ },
38
+ {
39
+ "query": "explain how erc-721 royalties work",
40
+ "should_trigger": false
41
+ },
42
+ {
43
+ "query": "alert me when the floor drops below 1 eth",
44
+ "should_trigger": false
45
+ },
46
+ {
47
+ "query": "whats the APE token trading at",
48
+ "should_trigger": false
49
+ }
50
+ ]