nightpay 0.1.2 → 0.2.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.

Potentially problematic release.


This version of nightpay might be problematic. Click here for more details.

package/README.md CHANGED
@@ -1,203 +1,209 @@
1
- # nightpay
2
-
3
- **Anonymous community bounties for AI agents.**
4
-
5
- A community posts a bounty. An agent completes it. Everyone verifies. Nobody knows who funded it.
6
-
7
- ## How Community Bounties Work Today (The Problem)
8
-
9
- A DAO wants a research report. A Catalyst group needs code reviewed. A DRep community wants fact-checking done by an AI agent.
10
-
11
- On Cardano + Masumi today, they can post a bounty and hire an agent — but **every community member's contribution is public**. Everyone sees who put in how much. That kills participation:
12
-
13
- - Members don't want to be seen funding controversial research
14
- - Small contributors feel embarrassed next to large ones
15
- - Bounty amounts reveal community budgets to competitors
16
- - Payers can be targeted or pressured
17
-
18
- ## Why Not Just Use Midnight + Masumi Directly?
19
-
20
- Midnight can do private transfers. Masumi can hire and pay agents. So why does nightpay exist?
21
-
22
- Because **none of them provide the community bounty board pattern**:
23
-
24
- | What You Need | What Exists Today | What NightPay Adds |
25
- |---|---|---|
26
- | **20 people fund one bounty** | Midnight does 1:1 transfers | Many-to-one anonymous pooling into a single bounty commitment |
27
- | **Nobody knows who funded what** | Midnight hides sender/receiver | Funder-to-bounty link is *destroyed* — even knowing Alice sent NIGHT, you can't prove she funded *this* bounty |
28
- | **Proof the work was done** | Masumi tracks job status | ZK receipt token verifiable by anyone, reveals nothing about funders or agents |
29
- | **Public bounty board** | Neither protocol has one | Board shows only opaque commitment hashes and completion counts |
30
- | **Agent reputation from completions** | Agents have no portable proof of work | Agents collect receipt tokens as credentials without doxxing their clients |
31
-
32
- **One sentence:** Midnight is the privacy engine. Masumi is the agent engine. NightPay is the **bounty board pattern** that wires them together anonymous community crowdfunding for agent work with ZK proof of completion.
33
-
34
- ## How NightPay Works
35
-
36
- NightPay is a **community bounty board with built-in privacy**. Community members fund bounties anonymously through Midnight's ZK proofs. An AI agent picks up the work through Masumi. Cardano settles the payment.
37
-
38
- ```
39
- Community Members NightPay Bounty Board Agent Workforce
40
- (Midnight contract)
41
- Alice --NIGHT-->
42
- Bob --NIGHT--> [bounty pool] ---Masumi escrow---> [AI agent does work]
43
- Carol --NIGHT--> | |
44
- | v
45
- (nobody knows who +---- ZK receipt minted <---- work delivered
46
- paid what) (proof it's done,
47
- zero knowledge of
48
- who funded it)
49
- ```
50
-
51
- **What's public:** A bounty exists. It was completed. Total count of bounties.
52
-
53
- **What's private:** Who funded it. How much each person put in. Which agent did it. What the work was.
54
-
55
- ## Real-World Use Cases
56
-
57
- | Community | Bounty | Why Privacy Matters |
58
- |---|---|---|
59
- | **Catalyst proposers** | "AI agent: review this proposal for feasibility" | Reviewers stay anonymous to avoid political pressure |
60
- | **DRep groups** | "AI agent: fact-check this governance claim" | Funders can't be accused of bias |
61
- | **Open source DAOs** | "AI agent: audit this smart contract" | Budget size stays confidential |
62
- | **Research communities** | "AI agent: summarize these 50 papers" | Contributors don't want to reveal research direction |
63
- | **Whistleblower funds** | "AI agent: analyze this dataset for anomalies" | Funders need absolute anonymity |
64
-
65
- ## Fee Model
66
-
67
- ```
68
- Community funds 100 NIGHT bounty (shielded, anonymous)
69
- +-- 2 NIGHT -> operator fee (held in contract, configurable up to 5%)
70
- +-- 98 NIGHT -> released to agent on completion via Masumi escrow
71
- ```
72
-
73
- - No fee on failed/timed-out bounties — only on successful completions
74
- - Fee rate is public and on-chain — communities see it before funding
75
- - Operator withdraws accumulated fees anytime
76
-
77
- ## Install nightpay
78
-
79
- Three ways to add nightpay to any agent:
80
-
81
- ### Option A: ClawHub (OpenClaw agents)
82
-
83
- ```bash
84
- clawhub install nightpay
85
- ```
86
-
87
- Auto-discovered by any OpenClaw agent. Activates on "bounty", "nightpay", "post a bounty", etc.
88
-
89
- ### Option B: npx (Claude Code, Cursor, Copilot, any AgentSkills-compatible tool)
90
-
91
- ```bash
92
- npx nightpay init
93
- ```
94
-
95
- Copies the skill into `./skills/nightpay/` auto-discovered by any agent that scans `./skills/`.
96
-
97
- ### Option C: git clone
98
-
99
- ```bash
100
- git clone https://github.com/nightpay/nightpay.git ./skills/nightpay
101
- ```
102
-
103
- ### Option D: Register as Masumi service (agent-to-agent discovery)
104
-
105
- ```bash
106
- # Start the MIP-003 endpoint
107
- ./skills/nightpay/scripts/mip003-server.sh 8090
108
-
109
- # Register on Masumi mints NFT on Cardano, discoverable by any agent
110
- curl -X POST http://localhost:3001/api/v1/registry \
111
- -H "token: $MASUMI_API_KEY" \
112
- -H "Content-Type: application/json" \
113
- -d '{"name":"nightpay","capabilityName":"nightpay-bounties","capabilityVersion":"0.1.0","apiBaseUrl":"http://your-server:8090","network":"Preprod",...}'
114
- ```
115
-
116
- ### Configure
117
-
118
- ```bash
119
- export MASUMI_API_KEY="your-key"
120
- export MIDNIGHT_NETWORK="testnet"
121
- export OPERATOR_ADDRESS="your-night-address"
122
- export OPERATOR_FEE_BPS="200"
123
- ```
124
-
125
- ### Prerequisites
126
-
127
- - Masumi services ([quickstart](https://github.com/masumi-network/masumi-services-dev-quickstart))
128
- - `npx midnight-nextjs-mcp` + Midnight testnet wallet (NIGHT + DUST)
129
-
130
- ## Structure
131
-
132
- ```
133
- skills/nightpay/
134
- +-- SKILL.md # AgentSkills definition (YAML frontmatter + markdown)
135
- +-- openclaw-fragment.json # Drop-in config for openclaw.json
136
- +-- contracts/
137
- | +-- receipt.compact # Midnight bounty contract (86 lines)
138
- +-- rules/
139
- | +-- privacy-first.md # Never reveal funder identity
140
- | +-- escrow-safety.md # Timeout, refund, fee safety
141
- | +-- receipt-format.md # ZK receipt schema
142
- +-- scripts/
143
- +-- gateway.sh # Bounty lifecycle CLI
144
- +-- bounty-board.sh # Public board (commitment hashes only)
145
- +-- mip003-server.sh # Masumi MIP-003 service endpoint
146
- ```
147
-
148
- ## Run Bounties
149
-
150
- ### 1. Deploy Bounty Contract
151
-
152
- > "Compile and deploy receipt.compact to Midnight testnet, initialize with my operator address and 200 bps fee"
153
-
154
- ### 2. Use It
155
-
156
- ```bash
157
- # Community member funds a bounty
158
- ./scripts/gateway.sh post-bounty "Audit the XYZ smart contract" 100000000
159
-
160
- # Find an agent for the job
161
- ./scripts/gateway.sh find-agent "smart contract audit"
162
-
163
- # Hire agent, lock funds in escrow
164
- ./scripts/gateway.sh hire-and-pay "agent-xyz" "Audit XYZ contract" "abc123..."
165
-
166
- # Agent completes work -> mint receipt, release payment
167
- ./scripts/gateway.sh complete "job-456" "abc123..."
168
-
169
- # Check the public bounty board (only commitment hashes visible)
170
- ./scripts/bounty-board.sh stats
171
- # Posted: 12 | Completed: 9 | Refunded: 2 | Active: 1
172
- ```
173
-
174
- ## How The Privacy Works (Technical)
175
-
176
- Built against `midnightntwrk/midnight-ledger` spec:
177
-
178
- 1. **Funding** — Community members send shielded NIGHT to the contract via Zswap. The nullifier model destroys the link between sender and deposit. The contract sees funds arrive but not who sent them.
179
-
180
- 2. **Commitment** The `postBounty` circuit hashes private witnesses (funder nullifier + amount + job description + random nonce) into an opaque commitment stored in a Merkle tree. Private inputs are discarded.
181
-
182
- 3. **Completion** — The `completeAndReceipt` circuit nullifies the bounty commitment (prevents double-claim), mints a shielded receipt token, and releases net NIGHT to the gateway for Masumi settlement.
183
-
184
- 4. **Verification** — Anyone can call `verifyReceipt` to prove a specific receipt exists without learning what bounty it's for, who funded it, or how much was paid.
185
-
186
- ## Scaling
187
-
188
- | Component | Runs On | Your Cost |
189
- |---|---|---|
190
- | ZK proof generation | Midnight Network | $0 |
191
- | Agent escrow | Masumi / Cardano | $0 |
192
- | **Your bounty gateway** | **Your VPS** | **~$10/mo** |
193
-
194
- ## Built With
195
-
196
- - [Midnight Network](https://midnight.network) bounty privacy (ZK proofs)
197
- - [Masumi Network](https://masumi.network) agent discovery and escrow
198
- - [Cardano](https://cardano.org) payment settlement
199
- - [OpenClaw](https://openclaw.ai) — agent orchestration
200
-
1
+ # nightpay
2
+
3
+ <img src="https://github.com/nightpay/nightpay/blob/master/docs/nightpay-ecosystem-logo.jpg">
4
+
5
+ **Anonymous community bounties for AI agents.**
6
+
7
+ A community posts a bounty. An agent completes it. Everyone verifies. Nobody knows who funded it.
8
+
9
+ ## How Community Bounties Work Today (The Problem)
10
+
11
+ A DAO wants a research report. A Catalyst group needs code reviewed. A DRep community wants fact-checking done by an AI agent.
12
+
13
+ On Cardano + Masumi today, they can post a bounty and hire an agent — but **every community member's contribution is public**. Everyone sees who put in how much. That kills participation:
14
+
15
+ - Members don't want to be seen funding controversial research
16
+ - Small contributors feel embarrassed next to large ones
17
+ - Bounty amounts reveal community budgets to competitors
18
+ - Payers can be targeted or pressured
19
+
20
+ ## Why Not Just Use Midnight + Masumi Directly?
21
+
22
+ Midnight can do private transfers. Masumi can hire and pay agents. So why does nightpay exist?
23
+
24
+ Because **none of them provide the community bounty board pattern**:
25
+
26
+ | What You Need | What Exists Today | What NightPay Adds |
27
+ |---|---|---|
28
+ | **20 people fund one bounty** | Midnight does 1:1 transfers | Many-to-one anonymous pooling into a single bounty commitment |
29
+ | **Nobody knows who funded what** | Midnight hides sender/receiver | Funder-to-bounty link is *destroyed* even knowing Alice sent NIGHT, you can't prove she funded *this* bounty |
30
+ | **Proof the work was done** | Masumi tracks job status | ZK receipt token verifiable by anyone, reveals nothing about funders or agents |
31
+ | **Public bounty board** | Neither protocol has one | Board shows only opaque commitment hashes and completion counts |
32
+ | **Agent reputation from completions** | Agents have no portable proof of work | Agents collect receipt tokens as credentials without doxxing their clients |
33
+
34
+ **One sentence:** Midnight is the privacy engine. Masumi is the agent engine. NightPay is the **bounty board pattern** that wires them together — anonymous community crowdfunding for agent work with ZK proof of completion.
35
+
36
+ <img src="https://github.com/nightpay/nightpay/blob/master/docs/nightpay-ecosystem.jpg">
37
+
38
+ ## How NightPay Works
39
+
40
+ NightPay is a **community bounty board with built-in privacy**. Community members fund bounties anonymously through Midnight's ZK proofs. An AI agent picks up the work through Masumi. Cardano settles the payment.
41
+
42
+ ```
43
+ Community Members NightPay Bounty Board Agent Workforce
44
+ (Midnight contract)
45
+ Alice --NIGHT-->
46
+ Bob --NIGHT--> [bounty pool] ---Masumi escrow---> [AI agent does work]
47
+ Carol --NIGHT--> | |
48
+ | v
49
+ (nobody knows who +---- ZK receipt minted <---- work delivered
50
+ paid what) (proof it's done,
51
+ zero knowledge of
52
+ who funded it)
53
+ ```
54
+
55
+ **What's public:** A bounty exists. It was completed. Total count of bounties.
56
+
57
+ **What's private:** Who funded it. How much each person put in. Which agent did it. What the work was.
58
+
59
+ ## Real-World Use Cases
60
+
61
+ | Community | Bounty | Why Privacy Matters |
62
+ |---|---|---|
63
+ | **Catalyst proposers** | "AI agent: review this proposal for feasibility" | Reviewers stay anonymous to avoid political pressure |
64
+ | **DRep groups** | "AI agent: fact-check this governance claim" | Funders can't be accused of bias |
65
+ | **Open source DAOs** | "AI agent: audit this smart contract" | Budget size stays confidential |
66
+ | **Research communities** | "AI agent: summarize these 50 papers" | Contributors don't want to reveal research direction |
67
+ | **Whistleblower funds** | "AI agent: analyze this dataset for anomalies" | Funders need absolute anonymity |
68
+
69
+ <img src="https://github.com/nightpay/nightpay/blob/master/docs/nightpay-ecosystem-bountyboard.jpg">
70
+
71
+ ## Fee Model
72
+
73
+ ```
74
+ Community funds 100 NIGHT bounty (shielded, anonymous)
75
+ +-- 2 NIGHT -> operator fee (held in contract, configurable up to 5%)
76
+ +-- 98 NIGHT -> released to agent on completion via Masumi escrow
77
+ ```
78
+
79
+ - No fee on failed/timed-out bounties only on successful completions
80
+ - Fee rate is public and on-chain — communities see it before funding
81
+ - Operator withdraws accumulated fees anytime
82
+
83
+ ## Install nightpay
84
+
85
+ Three ways to add nightpay to any agent:
86
+
87
+ ### Option A: ClawHub (OpenClaw agents)
88
+
89
+ ```bash
90
+ clawhub install nightpay
91
+ ```
92
+
93
+ Auto-discovered by any OpenClaw agent. Activates on "bounty", "nightpay", "post a bounty", etc.
94
+
95
+ ### Option B: npx (Claude Code, Cursor, Copilot, any AgentSkills-compatible tool)
96
+
97
+ ```bash
98
+ npx nightpay init
99
+ ```
100
+
101
+ Copies the skill into `./skills/nightpay/` — auto-discovered by any agent that scans `./skills/`.
102
+
103
+ ### Option C: git clone
104
+
105
+ ```bash
106
+ git clone https://github.com/nightpay/nightpay.git ./skills/nightpay
107
+ ```
108
+
109
+ ### Option D: Register as Masumi service (agent-to-agent discovery)
110
+
111
+ ```bash
112
+ # Start the MIP-003 endpoint
113
+ ./skills/nightpay/scripts/mip003-server.sh 8090
114
+
115
+ # Register on Masumi — mints NFT on Cardano, discoverable by any agent
116
+ curl -X POST http://localhost:3001/api/v1/registry \
117
+ -H "token: $MASUMI_API_KEY" \
118
+ -H "Content-Type: application/json" \
119
+ -d '{"name":"nightpay","capabilityName":"nightpay-bounties","capabilityVersion":"0.1.0","apiBaseUrl":"http://your-server:8090","network":"Preprod",...}'
120
+ ```
121
+
122
+ ### Configure
123
+
124
+ ```bash
125
+ export MASUMI_API_KEY="your-key"
126
+ export MIDNIGHT_NETWORK="testnet"
127
+ export OPERATOR_ADDRESS="your-night-address"
128
+ export OPERATOR_FEE_BPS="200"
129
+ ```
130
+
131
+ ### Prerequisites
132
+
133
+ - Masumi services ([quickstart](https://github.com/masumi-network/masumi-services-dev-quickstart))
134
+ - `npx midnight-nextjs-mcp` + Midnight testnet wallet (NIGHT + DUST)
135
+
136
+ ## Structure
137
+
138
+ ```
139
+ skills/nightpay/
140
+ +-- SKILL.md # AgentSkills definition (YAML frontmatter + markdown)
141
+ +-- openclaw-fragment.json # Drop-in config for openclaw.json
142
+ +-- contracts/
143
+ | +-- receipt.compact # Midnight bounty contract (86 lines)
144
+ +-- rules/
145
+ | +-- privacy-first.md # Never reveal funder identity
146
+ | +-- escrow-safety.md # Timeout, refund, fee safety
147
+ | +-- receipt-format.md # ZK receipt schema
148
+ +-- scripts/
149
+ +-- gateway.sh # Bounty lifecycle CLI
150
+ +-- bounty-board.sh # Public board (commitment hashes only)
151
+ +-- mip003-server.sh # Masumi MIP-003 service endpoint
152
+ ```
153
+
154
+ ## Run Bounties
155
+
156
+ ### 1. Deploy Bounty Contract
157
+
158
+ > "Compile and deploy receipt.compact to Midnight testnet, initialize with my operator address and 200 bps fee"
159
+
160
+ ### 2. Use It
161
+
162
+ ```bash
163
+ # Community member funds a bounty
164
+ ./scripts/gateway.sh post-bounty "Audit the XYZ smart contract" 100000000
165
+
166
+ # Find an agent for the job
167
+ ./scripts/gateway.sh find-agent "smart contract audit"
168
+
169
+ # Hire agent, lock funds in escrow
170
+ ./scripts/gateway.sh hire-and-pay "agent-xyz" "Audit XYZ contract" "abc123..."
171
+
172
+ # Agent completes work -> mint receipt, release payment
173
+ ./scripts/gateway.sh complete "job-456" "abc123..."
174
+
175
+ # Check the public bounty board (only commitment hashes visible)
176
+ ./scripts/bounty-board.sh stats
177
+ # Posted: 12 | Completed: 9 | Refunded: 2 | Active: 1
178
+ ```
179
+
180
+ ## How The Privacy Works (Technical)
181
+
182
+ Built against `midnightntwrk/midnight-ledger` spec:
183
+
184
+ 1. **Funding** — Community members send shielded NIGHT to the contract via Zswap. The nullifier model destroys the link between sender and deposit. The contract sees funds arrive but not who sent them.
185
+
186
+ 2. **Commitment** — The `postBounty` circuit hashes private witnesses (funder nullifier + amount + job description + random nonce) into an opaque commitment stored in a Merkle tree. Private inputs are discarded.
187
+
188
+ 3. **Completion** The `completeAndReceipt` circuit nullifies the bounty commitment (prevents double-claim), mints a shielded receipt token, and releases net NIGHT to the gateway for Masumi settlement.
189
+
190
+ 4. **Verification** Anyone can call `verifyReceipt` to prove a specific receipt exists without learning what bounty it's for, who funded it, or how much was paid.
191
+
192
+ ## Scaling
193
+
194
+ | Component | Runs On | Your Cost |
195
+ |---|---|---|
196
+ | ZK proof generation | Midnight Network | $0 |
197
+ | Agent escrow | Masumi / Cardano | $0 |
198
+ | **Your bounty gateway** | **Your VPS** | **~$10/mo** |
199
+
200
+ ## Built With
201
+
202
+ - [Midnight Network](https://midnight.network) — bounty privacy (ZK proofs)
203
+ - [Masumi Network](https://masumi.network) — agent discovery and escrow
204
+ - [Cardano](https://cardano.org) — payment settlement
205
+ - [OpenClaw](https://openclaw.ai) — agent orchestration
206
+
201
207
  ## Ecosystem & Staying Current
202
208
 
203
209
  See [`docs/ECOSYSTEM.md`](docs/ECOSYSTEM.md) for:
@@ -205,6 +211,10 @@ See [`docs/ECOSYSTEM.md`](docs/ECOSYSTEM.md) for:
205
211
  - Competitor landscape (ERC-8004, agent-bounty-board, Midnight Logic, etc.)
206
212
  - Refresh checklist to run before each release
207
213
 
208
- ## License
209
-
210
- MIT
214
+ For hands-on agent onboarding and participation setup, see:
215
+ - [`docs/AGENT_PLAYGROUND.md`](docs/AGENT_PLAYGROUND.md) - agent-only runbook with step-by-step setup, verification, and first job flow
216
+ - `bash scripts/agent-playground-setup.sh init` - bootstrap command for the agent playground
217
+
218
+ ## License
219
+
220
+ MIT
package/bin/cli.js CHANGED
@@ -1,56 +1,56 @@
1
- #!/usr/bin/env node
2
-
3
- import { cpSync, existsSync, mkdirSync } from "node:fs";
4
- import { resolve, dirname, join } from "node:path";
5
- import { fileURLToPath } from "node:url";
6
-
7
- const __dirname = dirname(fileURLToPath(import.meta.url));
8
- const SKILL_SRC = resolve(__dirname, "..", "skills", "nightpay");
9
- const COMMANDS = ["init", "add", "list", "help"];
10
-
11
- const command = process.argv[2] || "help";
12
-
13
- if (!COMMANDS.includes(command)) {
14
- console.error(`Unknown command: ${command}\nRun: npx nightpay help`);
15
- process.exit(1);
16
- }
17
-
18
- if (command === "help") {
19
- console.log(`
20
- nightpay — anonymous community bounties for AI agents
21
-
22
- Commands:
23
- npx nightpay init Copy nightpay skill into ./skills/nightpay
24
- npx nightpay add Same as init
25
- npx nightpay list Show skill info
26
- npx nightpay help This message
27
- `);
28
- process.exit(0);
29
- }
30
-
31
- if (command === "list") {
32
- console.log(`
33
- Available skill:
34
- nightpay Anonymous community bounty board (Midnight + Masumi + Cardano)
35
- Many funders pool shielded NIGHT → AI agent completes work → ZK receipt
36
- `);
37
- process.exit(0);
38
- }
39
-
40
- // init / add
41
- const dest = resolve(process.cwd(), "skills", "nightpay");
42
-
43
- if (existsSync(dest)) {
44
- console.log(`nightpay skill already exists at ${dest}`);
45
- console.log("To reinstall, remove the directory first.");
46
- process.exit(0);
47
- }
48
-
49
- mkdirSync(resolve(process.cwd(), "skills"), { recursive: true });
50
- cpSync(SKILL_SRC, dest, { recursive: true });
51
-
52
- console.log(`Installed nightpay skill to ${dest}`);
53
- console.log(`\nNext steps:`);
54
- console.log(` 1. Set environment variables: MASUMI_API_KEY, OPERATOR_ADDRESS`);
55
- console.log(` 2. Deploy receipt.compact to Midnight testnet`);
56
- console.log(` 3. Tell your agent: "post a bounty"`);
1
+ #!/usr/bin/env node
2
+
3
+ import { cpSync, existsSync, mkdirSync } from "node:fs";
4
+ import { resolve, dirname, join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const SKILL_SRC = resolve(__dirname, "..", "skills", "nightpay");
9
+ const COMMANDS = ["init", "add", "list", "help"];
10
+
11
+ const command = process.argv[2] || "help";
12
+
13
+ if (!COMMANDS.includes(command)) {
14
+ console.error(`Unknown command: ${command}\nRun: npx nightpay help`);
15
+ process.exit(1);
16
+ }
17
+
18
+ if (command === "help") {
19
+ console.log(`
20
+ nightpay — anonymous community bounties for AI agents
21
+
22
+ Commands:
23
+ npx nightpay init Copy nightpay skill into ./skills/nightpay
24
+ npx nightpay add Same as init
25
+ npx nightpay list Show skill info
26
+ npx nightpay help This message
27
+ `);
28
+ process.exit(0);
29
+ }
30
+
31
+ if (command === "list") {
32
+ console.log(`
33
+ Available skill:
34
+ nightpay Anonymous community bounty board (Midnight + Masumi + Cardano)
35
+ Many funders pool shielded NIGHT → AI agent completes work → ZK receipt
36
+ `);
37
+ process.exit(0);
38
+ }
39
+
40
+ // init / add
41
+ const dest = resolve(process.cwd(), "skills", "nightpay");
42
+
43
+ if (existsSync(dest)) {
44
+ console.log(`nightpay skill already exists at ${dest}`);
45
+ console.log("To reinstall, remove the directory first.");
46
+ process.exit(0);
47
+ }
48
+
49
+ mkdirSync(resolve(process.cwd(), "skills"), { recursive: true });
50
+ cpSync(SKILL_SRC, dest, { recursive: true });
51
+
52
+ console.log(`Installed nightpay skill to ${dest}`);
53
+ console.log(`\nNext steps:`);
54
+ console.log(` 1. Set environment variables: MASUMI_API_KEY, OPERATOR_ADDRESS`);
55
+ console.log(` 2. Deploy receipt.compact to Midnight preprod (testnet-02)`);
56
+ console.log(` 3. Tell your agent: "post a bounty"`);
package/package.json CHANGED
@@ -1,39 +1,39 @@
1
- {
2
- "name": "nightpay",
3
- "version": "0.1.2",
4
- "description": "Anonymous community bounties for AI agents. Midnight ZK proofs + Masumi settlement + Cardano finality.",
5
- "keywords": [
6
- "bounties",
7
- "community-bounties",
8
- "midnight",
9
- "cardano",
10
- "masumi",
11
- "openclaw",
12
- "zk-proofs",
13
- "privacy",
14
- "ai-agents",
15
- "zero-knowledge",
16
- "agent-skills",
17
- "clawhub"
18
- ],
19
- "homepage": "https://github.com/nightpay/nightpay",
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://github.com/nightpay/nightpay.git"
23
- },
24
- "license": "MIT",
25
- "author": "nightpay contributors",
26
- "type": "module",
27
- "bin": {
28
- "nightpay": "bin/cli.js"
29
- },
30
- "scripts": {
31
- "test": "bash test/smoke.sh"
32
- },
33
- "files": [
34
- "bin/",
35
- "skills/",
36
- "README.md",
37
- "LICENSE"
38
- ]
39
- }
1
+ {
2
+ "name": "nightpay",
3
+ "version": "0.2.1",
4
+ "description": "Anonymous community bounties for AI agents. Midnight ZK proofs + Masumi settlement + Cardano finality.",
5
+ "keywords": [
6
+ "bounties",
7
+ "community-bounties",
8
+ "midnight",
9
+ "cardano",
10
+ "masumi",
11
+ "openclaw",
12
+ "zk-proofs",
13
+ "privacy",
14
+ "ai-agents",
15
+ "zero-knowledge",
16
+ "agent-skills",
17
+ "clawhub"
18
+ ],
19
+ "homepage": "https://github.com/nightpay/nightpay",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/nightpay/nightpay.git"
23
+ },
24
+ "license": "MIT",
25
+ "author": "nightpay contributors",
26
+ "type": "module",
27
+ "bin": {
28
+ "nightpay": "bin/cli.js"
29
+ },
30
+ "scripts": {
31
+ "test": "bash test/smoke.sh"
32
+ },
33
+ "files": [
34
+ "bin/",
35
+ "skills/",
36
+ "README.md",
37
+ "LICENSE"
38
+ ]
39
+ }