@jinn-network/client 0.1.0 → 0.1.1
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 +46 -9
- package/dist/adapters/mech/adapter.d.ts +1 -0
- package/dist/adapters/mech/adapter.js +35 -0
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/api/gather-status.js +1 -0
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/server.js +12 -0
- package/dist/api/server.js.map +1 -1
- package/dist/api/status-build.d.ts +1 -0
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +4 -0
- package/dist/api/status-rollup-build.js +4 -0
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/bin/jinn-mcp.d.ts +14 -0
- package/dist/bin/jinn-mcp.js +19 -0
- package/dist/bin/jinn-mcp.js.map +1 -0
- package/dist/build-meta.json +1 -1
- package/dist/cli/commands/auth.d.ts +3 -0
- package/dist/cli/commands/auth.js +146 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/bootstrap.js +1 -0
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/doctor.js +43 -11
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fund-requirements.js +69 -1
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/history.js +1 -0
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/init.js +31 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/keys-backup.js +142 -10
- package/dist/cli/commands/keys-backup.js.map +1 -1
- package/dist/cli/commands/logs.js +28 -13
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/plugin-install.d.ts +3 -0
- package/dist/cli/commands/plugin-install.js +799 -0
- package/dist/cli/commands/plugin-install.js.map +1 -0
- package/dist/cli/commands/quickstart.d.ts +3 -0
- package/dist/cli/commands/quickstart.js +236 -0
- package/dist/cli/commands/quickstart.js.map +1 -0
- package/dist/cli/commands/run.js +6 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/stop.js +1 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/submit-intent.js +11 -1
- package/dist/cli/commands/submit-intent.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.js +154 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/version.js +15 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/deployment-digest.js +20 -4
- package/dist/cli/deployment-digest.js.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/password.d.ts +15 -0
- package/dist/cli/password.js +29 -1
- package/dist/cli/password.js.map +1 -1
- package/dist/config.d.ts +8 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon/balance-topup-loop.d.ts +40 -0
- package/dist/daemon/balance-topup-loop.js +96 -0
- package/dist/daemon/balance-topup-loop.js.map +1 -0
- package/dist/daemon/daemon.d.ts +7 -0
- package/dist/daemon/daemon.js +12 -0
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/dashboard/index.html +500 -0
- package/dist/earning/bootstrap.d.ts +2 -0
- package/dist/earning/bootstrap.js +68 -14
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +17 -0
- package/dist/earning/contracts.js +7 -1
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/faucet.d.ts +15 -0
- package/dist/earning/faucet.js +64 -0
- package/dist/earning/faucet.js.map +1 -0
- package/dist/earning/store.d.ts +5 -0
- package/dist/earning/store.js +7 -3
- package/dist/earning/store.js.map +1 -1
- package/dist/errors/unauthorized-account.d.ts +10 -0
- package/dist/errors/unauthorized-account.js +14 -0
- package/dist/errors/unauthorized-account.js.map +1 -0
- package/dist/main.js +30 -1
- package/dist/main.js.map +1 -1
- package/dist/mcp/operator-server.d.ts +34 -0
- package/dist/mcp/operator-server.js +219 -0
- package/dist/mcp/operator-server.js.map +1 -0
- package/dist/operator-errors.js +11 -0
- package/dist/operator-errors.js.map +1 -1
- package/dist/preflight/claude-auth.d.ts +57 -0
- package/dist/preflight/claude-auth.js +153 -0
- package/dist/preflight/claude-auth.js.map +1 -0
- package/dist/runner/claude.js +15 -0
- package/dist/runner/claude.js.map +1 -1
- package/dist/store/store.js +5 -0
- package/dist/store/store.js.map +1 -1
- package/dist/tx-retry.js +11 -1
- package/dist/tx-retry.js.map +1 -1
- package/package.json +12 -3
- package/skills/jinn-operator/SKILL.md +213 -0
package/dist/tx-retry.js
CHANGED
|
@@ -54,8 +54,18 @@ export function isRecoverableTransactionError(error) {
|
|
|
54
54
|
return false;
|
|
55
55
|
if (lower.includes('rejected the request'))
|
|
56
56
|
return false;
|
|
57
|
+
// Gnosis Safe 1.3.0 wraps every inner execTransaction revert as GS013 when
|
|
58
|
+
// safeTxGas == 0 && gasPrice == 0 (see GnosisSafe.sol §execTransaction:
|
|
59
|
+
// `require(success || safeTxGas != 0 || gasPrice != 0, "GS013")`). That
|
|
60
|
+
// hides the real cause, which in this codebase is often GS026 ("Invalid
|
|
61
|
+
// owner provided") from a stale-nonce signature when two Safe writes
|
|
62
|
+
// raced. The `executeSafeTransaction` lambda already re-reads the Safe
|
|
63
|
+
// nonce and re-signs on every retry, so treating GS013 as recoverable is
|
|
64
|
+
// self-healing for the racy case. A truly unrecoverable GS013 (e.g.
|
|
65
|
+
// downstream contract bug) still fails after maxAttempts with the same
|
|
66
|
+
// error — same end state as before.
|
|
57
67
|
if (msg.includes('GS013'))
|
|
58
|
-
return
|
|
68
|
+
return true;
|
|
59
69
|
if (msg.includes('GS026'))
|
|
60
70
|
return true;
|
|
61
71
|
if (lower.includes('replacement transaction underpriced') ||
|
package/dist/tx-retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-retry.js","sourceRoot":"","sources":["../src/tx-retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;IAClB,mFAAmF;IACnF,oBAAoB,EAAE,IAAI;CAClB,CAAC;AAEX,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACtB,MAAM,SAAS,GAAG,KAAoC,CAAC;QACvD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9D,CAAC,IAAI,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAEhC,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,IAAI,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"tx-retry.js","sourceRoot":"","sources":["../src/tx-retry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jinn-network/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Jinn protocol client — headless daemon for the restoration training loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "yarn@4.13.0",
|
|
@@ -14,13 +14,15 @@
|
|
|
14
14
|
"node": ">=20"
|
|
15
15
|
},
|
|
16
16
|
"bin": {
|
|
17
|
-
"jinn": "./dist/bin/jinn.js"
|
|
17
|
+
"jinn": "./dist/bin/jinn.js",
|
|
18
|
+
"jinn-mcp": "./dist/bin/jinn-mcp.js"
|
|
18
19
|
},
|
|
19
20
|
"main": "./dist/index.js",
|
|
20
21
|
"types": "./dist/index.d.ts",
|
|
21
22
|
"files": [
|
|
22
23
|
"dist/",
|
|
23
24
|
"deployments/",
|
|
25
|
+
"skills/",
|
|
24
26
|
"README.md",
|
|
25
27
|
"LICENSE"
|
|
26
28
|
],
|
|
@@ -29,13 +31,17 @@
|
|
|
29
31
|
},
|
|
30
32
|
"scripts": {
|
|
31
33
|
"jinn": "tsx src/bin/jinn.ts",
|
|
32
|
-
"build": "tsc && chmod +x dist/bin/jinn.js && node scripts/write-dist-build-meta.mjs",
|
|
34
|
+
"build": "tsc && chmod +x dist/bin/jinn.js dist/bin/jinn-mcp.js && mkdir -p dist/dashboard && cp src/dashboard/index.html dist/dashboard/index.html && node scripts/write-dist-build-meta.mjs",
|
|
33
35
|
"typecheck": "tsc --noEmit",
|
|
34
36
|
"test": "vitest run",
|
|
35
37
|
"test:watch": "vitest",
|
|
36
38
|
"prepublishOnly": "yarn build && yarn test",
|
|
37
39
|
"pack:smoke": "yarn pack -o jinn-client.tgz && node scripts/smoke-test-pack.mjs",
|
|
38
40
|
"release:operator-gate": "yarn staking && yarn e2e",
|
|
41
|
+
"setup:testnet-acceptance-operator": "node scripts/setup-testnet-acceptance-operator-docker.mjs",
|
|
42
|
+
"setup:testnet-acceptance-operator:host": "node scripts/setup-testnet-acceptance-operator.mjs",
|
|
43
|
+
"release:testnet-acceptance": "node scripts/testnet-acceptance-docker.mjs",
|
|
44
|
+
"release:testnet-acceptance:host": "node scripts/testnet-acceptance.mjs",
|
|
39
45
|
"status": "tsx scripts/status.ts",
|
|
40
46
|
"e2e": "tsx scripts/e2e-validate.ts",
|
|
41
47
|
"staking": "tsx scripts/staking-validate.ts",
|
|
@@ -62,6 +68,9 @@
|
|
|
62
68
|
"viem": "^2.0.0",
|
|
63
69
|
"zod": "^3.22.0"
|
|
64
70
|
},
|
|
71
|
+
"optionalDependencies": {
|
|
72
|
+
"@coinbase/cdp-sdk": "^1.47.0"
|
|
73
|
+
},
|
|
65
74
|
"devDependencies": {
|
|
66
75
|
"@types/better-sqlite3": "^7.6.0",
|
|
67
76
|
"@types/node": "^20.0.0",
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jinn-operator
|
|
3
|
+
description: Set up and operate a Jinn Network agent. Use when the user wants to install the jinn client, configure MCP tools, run `jinn quickstart`, manage a running daemon, submit intents, or understand the Jinn protocol. Activates on mentions of "jinn", "jinn agent", "jinn network", "jinn quickstart", "desired state", "restoration", or "intent" in the context of operating an agent.
|
|
4
|
+
allowed-tools: Bash, Read, Edit, Write, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Jinn Operator Skill
|
|
8
|
+
|
|
9
|
+
Guides you through installing, configuring, and operating a Jinn Network agent.
|
|
10
|
+
|
|
11
|
+
## What Is Jinn
|
|
12
|
+
|
|
13
|
+
Jinn is a training protocol for agentic intents. It defines a loop:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Creation --> Execution --> Evaluation --> Knowledge
|
|
17
|
+
| |
|
|
18
|
+
+-----------------------------------------------+
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
1. **Creation** — a creator publishes a *desired state* (an intent describing what should be true)
|
|
22
|
+
2. **Execution** — a restorer claims the intent and attempts to make it true
|
|
23
|
+
3. **Evaluation** — an evaluator independently verifies whether the restoration succeeded
|
|
24
|
+
4. **Knowledge** — artifacts (learnings, evidence) accumulate to improve future attempts
|
|
25
|
+
|
|
26
|
+
Agents earn rewards by participating in this loop. The protocol runs on Base (mainnet) and Base Sepolia (testnet).
|
|
27
|
+
|
|
28
|
+
## Phase 1: Installation
|
|
29
|
+
|
|
30
|
+
Check if jinn is already installed:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
jinn --help
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If not installed:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install -g @jinn-network/client
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This gives you two binaries:
|
|
43
|
+
- `jinn` — the operator CLI (17 verbs)
|
|
44
|
+
- `jinn-mcp` — the MCP server for agent-to-agent operation
|
|
45
|
+
|
|
46
|
+
### Prerequisites
|
|
47
|
+
|
|
48
|
+
- **Node.js 22+** — `node --version` to check
|
|
49
|
+
- **Claude Code CLI** — the daemon spawns Claude as a subprocess for restoration work. Must be installed and authenticated separately.
|
|
50
|
+
|
|
51
|
+
## Phase 2: MCP Configuration
|
|
52
|
+
|
|
53
|
+
If the user wants their agent (Claude Code, Cursor, etc.) to operate jinn programmatically, configure the MCP server:
|
|
54
|
+
|
|
55
|
+
**For Claude Code** — add to project or user MCP settings:
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"mcpServers": {
|
|
59
|
+
"jinn": {
|
|
60
|
+
"command": "jinn-mcp"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**With npx (no global install needed):**
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"mcpServers": {
|
|
70
|
+
"jinn": {
|
|
71
|
+
"command": "npx",
|
|
72
|
+
"args": ["-y", "-p", "@jinn-network/client", "jinn-mcp"]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Once configured, these MCP tools become available:
|
|
79
|
+
|
|
80
|
+
| Tool | What it does |
|
|
81
|
+
|------|-------------|
|
|
82
|
+
| `jinn_init` | Create master wallet (idempotent) |
|
|
83
|
+
| `jinn_doctor` | Preflight checks |
|
|
84
|
+
| `jinn_status` | Daemon health + fleet roll-up |
|
|
85
|
+
| `jinn_fleet` | Per-service detail |
|
|
86
|
+
| `jinn_balance` | Wallet balances |
|
|
87
|
+
| `jinn_history` | Recent protocol activity |
|
|
88
|
+
| `jinn_rewards` | Earned vs claimed rewards |
|
|
89
|
+
| `jinn_bootstrap` | Advance fleet state machine |
|
|
90
|
+
| `jinn_submit_intent` | Post a desired state on-chain |
|
|
91
|
+
| `jinn_start_daemon` | Start daemon in background |
|
|
92
|
+
| `jinn_stop_daemon` | Stop running daemon |
|
|
93
|
+
|
|
94
|
+
## Phase 3: Quickstart (Zero to Running)
|
|
95
|
+
|
|
96
|
+
The fastest path from nothing to a running agent:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
jinn quickstart
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
This single command:
|
|
103
|
+
1. Generates a random keystore password (saved to `~/.jinn-client/keystore-password`)
|
|
104
|
+
2. Creates the master wallet
|
|
105
|
+
3. Funds via Coinbase CDP faucet (automatic on testnet)
|
|
106
|
+
4. Bootstraps the fleet (Safe wallet, service registration, staking, mech deployment)
|
|
107
|
+
5. Starts the daemon
|
|
108
|
+
|
|
109
|
+
When it finishes: **open `http://localhost:7331`** for the operator dashboard.
|
|
110
|
+
|
|
111
|
+
### If the user already has JINN_PASSWORD set:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
JINN_PASSWORD=their-password jinn quickstart
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
The command respects an existing password and won't generate a new one.
|
|
118
|
+
|
|
119
|
+
### If quickstart stops at "funding required":
|
|
120
|
+
|
|
121
|
+
The automatic faucet may have rate-limited (1 claim per 24 hours per address). Options:
|
|
122
|
+
- Wait 24 hours and re-run `jinn quickstart`
|
|
123
|
+
- Fund manually: go to https://portal.cdp.coinbase.com/products/faucet, send testnet ETH to the printed master address, then re-run
|
|
124
|
+
|
|
125
|
+
## Phase 4: Ongoing Operation
|
|
126
|
+
|
|
127
|
+
### Monitoring
|
|
128
|
+
|
|
129
|
+
- **Dashboard:** `http://localhost:7331` (when daemon is running)
|
|
130
|
+
- **CLI:** `jinn status` for a quick health check
|
|
131
|
+
- **Fleet detail:** `jinn fleet` shows each service's step, Safe, mech, staking status
|
|
132
|
+
- **Balances:** `jinn balance` shows master and service wallet balances
|
|
133
|
+
|
|
134
|
+
### Submitting Intents
|
|
135
|
+
|
|
136
|
+
To post a desired state for the network to work on:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
jinn submit-intent --id my-intent --description "The service publishes a daily summary" --yes
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Or via MCP: call `jinn_submit_intent` with `id` and `description` parameters.
|
|
143
|
+
|
|
144
|
+
### Checking Rewards
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
jinn rewards
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Shows pending vs claimed rewards per service.
|
|
151
|
+
|
|
152
|
+
### Changing the Auto-Generated Password
|
|
153
|
+
|
|
154
|
+
If the user started with `jinn quickstart` and wants to set their own password:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
JINN_NEW_PASSWORD=their-new-password jinn keys change-password
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
This re-encrypts the keystore and deletes the auto-generated password file. The wallet and all on-chain state are unchanged.
|
|
161
|
+
|
|
162
|
+
### Stopping and Starting
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
jinn stop # stop the daemon
|
|
166
|
+
jinn run # start in foreground
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Troubleshooting
|
|
170
|
+
|
|
171
|
+
### `jinn doctor` fails on claude_binary
|
|
172
|
+
|
|
173
|
+
Claude Code CLI is not installed or not on PATH. Install it separately — see https://claude.ai/code.
|
|
174
|
+
|
|
175
|
+
### Bootstrap stuck at "awaiting funding"
|
|
176
|
+
|
|
177
|
+
The master wallet needs testnet ETH. Either:
|
|
178
|
+
- The CDP faucet rate-limited (wait 24h)
|
|
179
|
+
- The faucet SDK isn't installed: `npm install @coinbase/cdp-sdk`
|
|
180
|
+
- Fund manually via a web faucet
|
|
181
|
+
|
|
182
|
+
### Daemon starts but no activity
|
|
183
|
+
|
|
184
|
+
Check `jinn status`. If `rpc.ok` is false, the RPC endpoint is down. The default (`https://sepolia.base.org`) is rate-limited. Consider using your own RPC via config:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
echo '{"rpcUrl": "https://your-rpc.example.com"}' > ~/.jinn-client/config.json
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### "No service is ready" after bootstrap
|
|
191
|
+
|
|
192
|
+
Bootstrap may need multiple runs if it hit a funding gate partway through. Re-run `jinn bootstrap` (it's idempotent — picks up where it left off).
|
|
193
|
+
|
|
194
|
+
## Key Concepts for Agents
|
|
195
|
+
|
|
196
|
+
When operating jinn tools, keep this mental model:
|
|
197
|
+
|
|
198
|
+
- **`jinn quickstart`** is the one-shot setup. After this, the daemon is running.
|
|
199
|
+
- **`jinn status`** is your health check. Poll it to know if things are working.
|
|
200
|
+
- **`jinn submit-intent`** is the main action verb. This is how you create work on the network.
|
|
201
|
+
- **`jinn fleet`** tells you about your staked services and their state.
|
|
202
|
+
- **`jinn bootstrap`** is idempotent. If anything is stuck, re-running it is always safe.
|
|
203
|
+
- **`funding_required`** means "the wallet needs ETH." On testnet, this should auto-resolve via faucet. If not, the user needs to fund manually.
|
|
204
|
+
- The daemon runs three loops: creator (posts intents), restorer (claims and fulfills intents), delivery-watcher (evaluates results). All three run automatically once the daemon starts.
|
|
205
|
+
|
|
206
|
+
## Network Details
|
|
207
|
+
|
|
208
|
+
| | Testnet (default) | Mainnet |
|
|
209
|
+
|---|---|---|
|
|
210
|
+
| Chain | Base Sepolia | Base |
|
|
211
|
+
| RPC default | `https://sepolia.base.org` | `https://mainnet.base.org` |
|
|
212
|
+
| Staking mode | standard (stOLAS, no OLAS needed) | standard |
|
|
213
|
+
| Config key | `"network": "testnet"` | `"network": "mainnet"` |
|