@starkscan/cli 0.3.0 → 0.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.
- package/README.md +59 -10
- package/artifacts/{v0.3.0 → v0.4.0}/starkscan-cli-manifest.json +5 -5
- package/artifacts/{v0.3.0/starkscan-linux-x86_64.tar.gz → v0.4.0/starkscan-darwin-aarch64.tar.gz} +0 -0
- package/artifacts/v0.4.0/starkscan-darwin-aarch64.tar.gz.sha256 +1 -0
- package/artifacts/{v0.3.0/starkscan-darwin-aarch64.tar.gz → v0.4.0/starkscan-darwin-x86_64.tar.gz} +0 -0
- package/artifacts/v0.4.0/starkscan-darwin-x86_64.tar.gz.sha256 +1 -0
- package/artifacts/{v0.3.0/starkscan-darwin-x86_64.tar.gz → v0.4.0/starkscan-linux-aarch64.tar.gz} +0 -0
- package/artifacts/v0.4.0/starkscan-linux-aarch64.tar.gz.sha256 +1 -0
- package/artifacts/{v0.3.0/starkscan-linux-aarch64.tar.gz → v0.4.0/starkscan-linux-x86_64.tar.gz} +0 -0
- package/artifacts/v0.4.0/starkscan-linux-x86_64.tar.gz.sha256 +1 -0
- package/package.json +1 -1
- package/artifacts/v0.3.0/starkscan-darwin-aarch64.tar.gz.sha256 +0 -1
- package/artifacts/v0.3.0/starkscan-darwin-x86_64.tar.gz.sha256 +0 -1
- package/artifacts/v0.3.0/starkscan-linux-aarch64.tar.gz.sha256 +0 -1
- package/artifacts/v0.3.0/starkscan-linux-x86_64.tar.gz.sha256 +0 -1
package/README.md
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
Command-line Starkscan client for status checks, explorer reads, local exports,
|
|
4
4
|
and agent setup.
|
|
5
5
|
|
|
6
|
-
Release target: `0.
|
|
7
|
-
contract
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
Release target: `0.4.0`. This release adds the public asynchronous exact
|
|
7
|
+
contract-verification workflow, including deterministic source preparation,
|
|
8
|
+
job control, and offline receipt validation. Use the untagged install only
|
|
9
|
+
after the live `latest` verifier passes; pin `0.4.0` for reproducible installs
|
|
10
|
+
after that promotion.
|
|
10
11
|
|
|
11
12
|
## Install
|
|
12
13
|
|
|
@@ -24,11 +25,11 @@ npx -y @starkscan/cli init --agent --output-format json
|
|
|
24
25
|
Exact pin for unattended services:
|
|
25
26
|
|
|
26
27
|
```bash
|
|
27
|
-
npx -y @starkscan/cli@0.
|
|
28
|
+
npx -y @starkscan/cli@0.4.0 init --agent --output-format json
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
Prerelease tags such as `@beta` are maintainer-directed test channels only.
|
|
31
|
-
Normal users and agents should use the default package or the exact `0.
|
|
32
|
+
Normal users and agents should use the default package or the exact `0.4.0`
|
|
32
33
|
pin above.
|
|
33
34
|
|
|
34
35
|
## First commands
|
|
@@ -45,13 +46,57 @@ starkscan tx 0x1234abcd
|
|
|
45
46
|
starkscan search 0x1234abcd
|
|
46
47
|
starkscan wallet-asset-discovery 0xWALLET --limit 25
|
|
47
48
|
starkscan wallet-state 0xWALLET --mode require_complete --limit 25
|
|
49
|
+
starkscan token-holder-screening 0xTOKEN --limit 100 --output-format json
|
|
50
|
+
starkscan token-holders 0xTOKEN --limit 100 --output-format json
|
|
51
|
+
starkscan verify prepare --help
|
|
52
|
+
starkscan verify submit --help
|
|
53
|
+
starkscan verify status --help
|
|
54
|
+
starkscan verify receipt-check --help
|
|
48
55
|
```
|
|
49
56
|
|
|
57
|
+
`token-holder-screening` walks the address-keyed policy Top-N and never claims
|
|
58
|
+
population completeness, even when `nextCursor` is null. Historical source
|
|
59
|
+
corrections can invalidate an unexpired generation's proof without changing
|
|
60
|
+
its immutable rows. Recheck `populationComplete`, `exact`, and certification
|
|
61
|
+
on every JSON page; a previously certified page does not authorize later
|
|
62
|
+
pages. `token-holders`
|
|
63
|
+
requests holder pages; do not present an exact census unless its JSON has the
|
|
64
|
+
sealed finalized source with `freshness=finalized_generation`, valid immutable generation/block/hash/digest IDs, an
|
|
65
|
+
unexpired `expiresAt`, `populationComplete=true` with
|
|
66
|
+
`populationReasonCode=complete_canonical_transfer_coverage`, `exact=true`,
|
|
67
|
+
`truncated=false`, and `completeness.reasonCode=materialized_snapshot`; plus
|
|
68
|
+
`certification.status=certified`,
|
|
69
|
+
`validatedAgainst=starknet_rpc_balanceOf`,
|
|
70
|
+
`certification.reasonCode=materialized_snapshot`, and a valid `checkedAt` no
|
|
71
|
+
earlier than `updatedAt`. Pass each opaque `nextCursor` back with `--cursor`
|
|
72
|
+
unchanged.
|
|
73
|
+
An intentionally redacted holder `200`, including the address-keyed priority
|
|
74
|
+
case, contains `holderCount=0`, `holderBalanceTotalRaw=null`, no rows,
|
|
75
|
+
`nextCursor=null`, `populationComplete=false`, `exact=false`, and
|
|
76
|
+
`Cache-Control: no-store`; JSON automation must treat it as unavailable proof,
|
|
77
|
+
not an empty population or a cacheable zero.
|
|
78
|
+
|
|
79
|
+
If either holder command receives HTTP `422` with
|
|
80
|
+
`code=unqualified_token_policy`, the token has no current explicit
|
|
81
|
+
address-keyed holder policy. This is terminal, non-retryable eligibility state,
|
|
82
|
+
not an uncaptured generation: the CLI exits with the stable `usage` class and
|
|
83
|
+
JSON output includes `error.apiCode="unqualified_token_policy"`. A qualified
|
|
84
|
+
priority token without a current certificate still returns the redacted `200`
|
|
85
|
+
tuple above; an eligible token whose prepared data is temporarily unavailable
|
|
86
|
+
uses retryable `503` and `Retry-After` instead.
|
|
87
|
+
|
|
50
88
|
The CLI defaults to `https://api.starkscan.co`, sends `X-Starkscan-Api-Key`,
|
|
51
89
|
and uses the same REST API contract as the SDK. MCP uses a separate
|
|
52
90
|
transport: `POST https://api.starkscan.co/mcp` on the API domain, or
|
|
53
91
|
`POST {appBaseUrl}/api/mcp` on app-origin deployments.
|
|
54
92
|
|
|
93
|
+
`starkscan verify` is the public asynchronous contract-verification workflow.
|
|
94
|
+
It deterministically packages a locked Cairo source tree, streams the bounded
|
|
95
|
+
archive to Starkscan's isolated networkless verifier, reports typed job state,
|
|
96
|
+
and authenticates a portable Ed25519 receipt offline. See the complete
|
|
97
|
+
[contract-verification guide](https://starkscan.co/docs/api/contract-verification)
|
|
98
|
+
before submitting private or publishable source.
|
|
99
|
+
|
|
55
100
|
## Why use it
|
|
56
101
|
|
|
57
102
|
- No Rust toolchain or private repository access required.
|
|
@@ -61,15 +106,19 @@ transport: `POST https://api.starkscan.co/mcp` on the API domain, or
|
|
|
61
106
|
- `--output-format json` keeps stdout parseable for agents and CI.
|
|
62
107
|
- Stable exit classes make automation predictable: success, usage, auth,
|
|
63
108
|
rate-limit, timeout, and not-found errors are distinct.
|
|
109
|
+
- The remote MCP proxy preserves holder errors in `structuredContent`: terminal
|
|
110
|
+
policy review is `errorCode="unqualified_token_policy"` with
|
|
111
|
+
`retryable=false`, while eligible-token lifecycle `503` is
|
|
112
|
+
`errorCode="temporary_unavailable"` with `retryable=true`.
|
|
64
113
|
- MCP helpers print ready-to-paste Codex, Claude Code, Cursor, Claude Desktop,
|
|
65
114
|
and Cline configs with environment placeholders, not secret values.
|
|
66
115
|
|
|
67
116
|
## Agent setup
|
|
68
117
|
|
|
69
118
|
```bash
|
|
70
|
-
npx -y @starkscan/cli@0.
|
|
71
|
-
npx -y @starkscan/cli@0.
|
|
72
|
-
npx -y @starkscan/cli@0.
|
|
119
|
+
npx -y @starkscan/cli@0.4.0 init --agent --output-format json
|
|
120
|
+
npx -y @starkscan/cli@0.4.0 mcp print-config --transport remote
|
|
121
|
+
npx -y @starkscan/cli@0.4.0 mcp start --transport remote
|
|
73
122
|
```
|
|
74
123
|
|
|
75
124
|
`print-config` emits machine-readable snippets. Keep `STARKSCAN_API_KEY` in the
|
|
@@ -80,7 +129,7 @@ host shell, CI secret store, or MCP client secret store.
|
|
|
80
129
|
Agents can inspect the launcher decision without executing the native binary:
|
|
81
130
|
|
|
82
131
|
```bash
|
|
83
|
-
npx -y @starkscan/cli@0.
|
|
132
|
+
npx -y @starkscan/cli@0.4.0 --launcher-json
|
|
84
133
|
```
|
|
85
134
|
|
|
86
135
|
The JSON includes the package version, resolved binary path, release tag,
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generatedAt": "2026-
|
|
3
|
+
"generatedAt": "2026-09-24T05:05:09Z",
|
|
4
4
|
"artifacts": [
|
|
5
5
|
{
|
|
6
6
|
"name": "starkscan-darwin-aarch64.tar.gz",
|
|
7
7
|
"platform": "darwin-aarch64",
|
|
8
8
|
"target": "darwin-aarch64",
|
|
9
9
|
"archive": "starkscan-darwin-aarch64.tar.gz",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "7e36da90db80cc546f65000bce4241fe09d196278c6d322a9c5b0479800cfd6a"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"name": "starkscan-darwin-x86_64.tar.gz",
|
|
14
14
|
"platform": "darwin-x86_64",
|
|
15
15
|
"target": "darwin-x86_64",
|
|
16
16
|
"archive": "starkscan-darwin-x86_64.tar.gz",
|
|
17
|
-
"sha256": "
|
|
17
|
+
"sha256": "092f80c43b0e0f952c8727682873c5ee028ba7476dcedfe1a4883c8387a1f963"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"name": "starkscan-linux-aarch64.tar.gz",
|
|
21
21
|
"platform": "linux-aarch64",
|
|
22
22
|
"target": "linux-aarch64",
|
|
23
23
|
"archive": "starkscan-linux-aarch64.tar.gz",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "300b5966af0dc68b01f5dc7f402c866b0d18221ab94a112eeaa67cf58eb9a6b5"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
"name": "starkscan-linux-x86_64.tar.gz",
|
|
28
28
|
"platform": "linux-x86_64",
|
|
29
29
|
"target": "linux-x86_64",
|
|
30
30
|
"archive": "starkscan-linux-x86_64.tar.gz",
|
|
31
|
-
"sha256": "
|
|
31
|
+
"sha256": "f566a84cd3f5bb8cbfe7317e2e788ec8849daa17ae7638a263273ae5296e083a"
|
|
32
32
|
}
|
|
33
33
|
]
|
|
34
34
|
}
|
package/artifacts/{v0.3.0/starkscan-linux-x86_64.tar.gz → v0.4.0/starkscan-darwin-aarch64.tar.gz}
RENAMED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7e36da90db80cc546f65000bce4241fe09d196278c6d322a9c5b0479800cfd6a starkscan-darwin-aarch64.tar.gz
|
package/artifacts/{v0.3.0/starkscan-darwin-aarch64.tar.gz → v0.4.0/starkscan-darwin-x86_64.tar.gz}
RENAMED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
092f80c43b0e0f952c8727682873c5ee028ba7476dcedfe1a4883c8387a1f963 starkscan-darwin-x86_64.tar.gz
|
package/artifacts/{v0.3.0/starkscan-darwin-x86_64.tar.gz → v0.4.0/starkscan-linux-aarch64.tar.gz}
RENAMED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
300b5966af0dc68b01f5dc7f402c866b0d18221ab94a112eeaa67cf58eb9a6b5 starkscan-linux-aarch64.tar.gz
|
package/artifacts/{v0.3.0/starkscan-linux-aarch64.tar.gz → v0.4.0/starkscan-linux-x86_64.tar.gz}
RENAMED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f566a84cd3f5bb8cbfe7317e2e788ec8849daa17ae7638a263273ae5296e083a starkscan-linux-x86_64.tar.gz
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
64bca370039c26deb950e0f3aaabb5854dda2e2605e66c98eb5e21ef0aa7eada starkscan-darwin-aarch64.tar.gz
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e8f870c07168ce0150565121f3ce2e8bee7ae4fbf333c0f7dcd7d4c5f271fc79 starkscan-darwin-x86_64.tar.gz
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
73dd78b4adb56aa38e0e0ed5154d5e6f9866ae9d749967ebad64df8154984cdd starkscan-linux-aarch64.tar.gz
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c7378ba211aedaf57c46a1fc73d6113c7dc3a407f2a7b230edd06d30f4a2b4b9 starkscan-linux-x86_64.tar.gz
|