chain-insights 0.3.5 → 0.3.7

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.
package/README.md CHANGED
@@ -19,7 +19,7 @@ MCP endpoint for development; hosted endpoints are set explicitly with
19
19
  | `trace_victim_funds` | Trace victim/source funds forward to exchange deposit candidates |
20
20
  | `trace_deposit_sources` | Trace backward from suspected deposit/cashout addresses to upstream sources and convergence |
21
21
  | `trace_suspect_funds` | Trace suspected scammer, mule, operator, or laundering-ring funds forward to cashout topology |
22
- | `usage_status` | Check the caller's public free graph query quota for today |
22
+ | `usage_status` | Check the caller's daily free-tier graph query allowance |
23
23
  | `graph_query` | Run one read-only GQL/Cypher query against a GraphRAG MCP graph layer |
24
24
  | `graph_query_batch` | Run related read-only graph queries as one MCP call |
25
25
 
@@ -117,11 +117,14 @@ If network or tool discovery fails, check the endpoint and access mode first.
117
117
  The CLI can still initialize workspaces and manage cases without a reachable
118
118
  GraphRAG MCP endpoint.
119
119
 
120
- Hosted GraphRAG MCP lets new users try `graph_query` with a small public free
121
- quota before setting up paid access. The default public free graph_query quota
122
- is 10 execution seconds per IP per UTC day. Use `usage_status` to see the
123
- current caller quota. When the free quota is exhausted, prepare a wallet or use
124
- an invited tester access key and retry.
120
+ Hosted GraphRAG MCP includes a small public free tier for `graph_query` before
121
+ paid access is required. The default public free tier is 10 execution seconds
122
+ per IP per UTC day. Use `usage_status` to see the current caller allowance.
123
+ Prepared wallet users receive the daily free tier first, then paid access
124
+ continues automatically after the allowance is exhausted.
125
+ If you do not have a prepared wallet yet, use bounded single `graph_query`
126
+ calls within the free tier, then prepare a wallet or use an invited tester
127
+ access key when the allowance is exhausted.
125
128
 
126
129
  Open a case and run a small investigation:
127
130
 
@@ -159,12 +162,12 @@ The export writes Markdown notes, `manifest.chain-insights.json`,
159
162
  for Codex, Claude Code, and ChatGPT under `published/<case-slug>/`.
160
163
 
161
164
  Private exports may include full addresses. Use `--mode partner` for controlled
162
- handoff after review. Use `--mode public` only for shareable demos; public mode
165
+ handoff after review. Use `--mode public` only for shareable examples; public mode
163
166
  aliases addresses and removes secrets by default. Vault workflow guidance lives
164
167
  in [Obsidian vault workflow](docs/obsidian-vault.md); export bundle details
165
168
  live in [Knowledge exports](docs/knowledge-exports.md).
166
169
 
167
- ## Demo
170
+ ## Examples
168
171
 
169
172
  Run a direct live topology query:
170
173
 
@@ -182,6 +185,10 @@ cia mcp call graph_query_batch \
182
185
  'queries=[{"id":"count","query":"USE live_topology MATCH (n) RETURN count(n) AS count LIMIT 1"},{"id":"archive_flows","query":"USE archive_topology MATCH (src:Address)-[f:FLOWS_TO]->(dst:Address) RETURN f.period_granularity AS granularity, src.address AS source, dst.address AS target LIMIT 3"},{"id":"facts_sample","query":"USE facts MATCH (a:Address)-[:HAS_FEATURE]->(f:AddressFeature) RETURN a.address AS address, f.sent_count AS sent_count LIMIT 3"}]'
183
186
  ```
184
187
 
188
+ For no-wallet public free-tier usage, prefer the single-query example first.
189
+ Batch calls reserve worst-case execution time and can ask for paid access even
190
+ when a small free allowance remains.
191
+
185
192
  Run suspect topology without requiring an incident timestamp:
186
193
 
187
194
  ```bash
@@ -14,7 +14,7 @@ The GraphRAG MCP public graph surface is intentionally small:
14
14
 
15
15
  | Tool | Purpose |
16
16
  | --- | --- |
17
- | `usage_status` | Return the caller's public free graph_query quota for the current UTC day |
17
+ | `usage_status` | Return the caller's daily free-tier graph_query allowance for the current UTC day |
18
18
  | `graph_query` | Run one read-only GQL/Cypher query through the universal graph endpoint |
19
19
  | `graph_query_batch` | Run related read-only graph-language queries as one MCP call |
20
20
 
@@ -31,14 +31,18 @@ GraphRAG MCP endpoint.
31
31
  - Use `USE archive_topology` for historical topology.
32
32
  - Use `USE facts` for labels, features, risk scores, assets, and enrichment.
33
33
  - Use `usage_status` before public hosted reads when you need the caller's
34
- remaining free quota.
35
- - Hosted endpoints can expose a public free graph_query quota. The default is
36
- 10 execution seconds per IP per UTC day.
34
+ remaining free-tier allowance.
35
+ - Hosted endpoints can expose a public free tier for graph_query. The default
36
+ is 10 execution seconds per IP per UTC day.
37
+ - Prepared wallet users receive the daily free tier first; after it is used,
38
+ x402 payment continues automatically from the configured wallet.
37
39
  - Use explicit LIMIT and pagination in your query when you want bounded result
38
40
  sets.
39
41
  - The GraphRAG MCP server does not append `LIMIT`; Chain Insights recipes own
40
42
  their own limits and pagination.
41
- - Use `graph_query_batch` for related reads that should share one paid call.
43
+ - Use single bounded `graph_query` calls for public no-wallet free-tier usage. Use
44
+ `graph_query_batch` for related reads that should share one paid call; public
45
+ free-tier access does not include batches.
42
46
  - `per_query_timeout_seconds` is optional and capped at `10` by default.
43
47
  - Returned rows live in `structuredContent.facts`.
44
48
 
@@ -74,6 +78,10 @@ chain-insights mcp call graph_query_batch \
74
78
  'queries=[{"id":"count","query":"USE live_topology MATCH (n) RETURN count(n) AS count LIMIT 1"},{"id":"archive_flows","query":"USE archive_topology MATCH (src:Address)-[f:FLOWS_TO]->(dst:Address) RETURN f.period_granularity AS granularity, src.address AS source, dst.address AS target LIMIT 3"}]'
75
79
  ```
76
80
 
81
+ Batch calls reserve worst-case execution time from their timeout settings. On
82
+ public hosted endpoints, they can ask for paid x402 access even when a small
83
+ free-tier allowance remains.
84
+
77
85
  Batch result facts include:
78
86
 
79
87
  ```json
package/docs/mcp-proxy.md CHANGED
@@ -140,7 +140,7 @@ chain-insights access-key set ci_test_REDACTED --endpoint https://staging-mcp.ch
140
140
  chain-insights access-key status
141
141
  ```
142
142
 
143
- Public free graph usage:
143
+ Daily free-tier graph usage:
144
144
 
145
145
  ```bash
146
146
  chain-insights mcp call usage_status
@@ -150,12 +150,23 @@ chain-insights mcp call graph_query \
150
150
  ```
151
151
 
152
152
  Hosted GraphRAG MCP can allow anonymous `graph_query` calls before wallet
153
- setup. The default public free graph_query quota is 10 execution seconds per IP
154
- per UTC day, reset on the UTC calendar day. `usage_status` returns only the
155
- current caller's quota status. Public free access does not include
156
- `graph_query_batch`; use a tester access key or paid x402 mode for regular
157
- usage and batches. Use explicit LIMIT and pagination in your query when you
158
- want bounded result sets.
153
+ setup. The default public free tier is 10 execution seconds per IP per UTC day,
154
+ reset on the UTC calendar day. `usage_status` returns only the current caller's
155
+ allowance status. Wallet users receive the same daily free tier first; after it
156
+ is exhausted, x402 payment continues automatically when `wallet ready` reports
157
+ ready.
158
+
159
+ The daily free tier is intended for bounded single `graph_query` calls. It does
160
+ not include `graph_query_batch`; use a tester access key or paid x402 mode for
161
+ regular usage and batches. Use explicit LIMIT and pagination in your query when
162
+ you want bounded result sets.
163
+
164
+ Staging UAT on 2026-05-31 showed the 10-second free tier was enough for exact
165
+ Bittensor address checks, sample address reads, sample flow reads, and the
166
+ free-to-paid handoff. The tested address
167
+ `5EkTMF1noWnWupGxQqtPczW2FFB7ktdVwjaZ22Cam54U93Xx` returned no indexed live or
168
+ archive rows on staging, but bounded sample reads still returned Bittensor
169
+ topology data inside the same daily allowance.
159
170
 
160
171
  For custom graph reads, install the shipped `chain-insights-cypher` skill. Its
161
172
  Memgraph examples reference distinguishes staging-tested GraphRAG MCP query
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chain-insights",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "AML investigation CLI and MCP proxy for blockchain risk, fund-flow tracing, case reports, and GraphRAG MCP access",
5
5
  "homepage": "https://chain-insights.ai",
6
6
  "repository": {