@nevermined-io/openclaw-plugin 1.0.14 → 1.0.16

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
@@ -12,16 +12,19 @@ openclaw plugin install @nevermined-io/openclaw-plugin
12
12
 
13
13
  The plugin supports two ways to provide your Nevermined API key:
14
14
 
15
- ### Option A: Browser login (recommended)
15
+ ### Option A: Slash command (recommended)
16
16
 
17
- Use the `/nvm-login` command from any chat channel, or call the `nevermined.login` gateway method. This opens a browser window where you authenticate with Nevermined, and the API key is captured automatically.
17
+ Use the `/nvm_login` command from any chat channel. This opens a browser window where you authenticate with Nevermined, and the API key is captured automatically.
18
18
 
19
19
  ```
20
- /nvm-login # Login to sandbox (default)
21
- /nvm-login live # Login to live environment
22
- /nvm-logout # Remove stored API key
20
+ /nvm_login # Login to sandbox (default)
21
+ /nvm_login live # Login to live environment
22
+ /nvm_login <api-key> # Paste an API key directly
23
+ /nvm_logout # Remove stored API key
23
24
  ```
24
25
 
26
+ On headless servers where a browser can't open, the command provides manual instructions with a login URL.
27
+
25
28
  ### Option B: Manual configuration
26
29
 
27
30
  Add your API key directly to `openclaw.json`:
@@ -29,12 +32,19 @@ Add your API key directly to `openclaw.json`:
29
32
  ```json
30
33
  {
31
34
  "plugins": {
32
- "nevermined": {
33
- "nvmApiKey": "sandbox:eyJhbG...",
34
- "environment": "sandbox",
35
- "planId": "did:nv:abc123",
36
- "agentId": "did:nv:def456",
37
- "creditsPerRequest": 1
35
+ "entries": {
36
+ "nevermined": {
37
+ "enabled": true,
38
+ "config": {
39
+ "nvmApiKey": "sandbox:eyJhbG...",
40
+ "environment": "sandbox",
41
+ "planId": "<your-plan-id>",
42
+ "agentId": "<your-agent-id>",
43
+ "creditsPerRequest": 1,
44
+ "enablePaidEndpoint": false,
45
+ "agentEndpointPath": "/nevermined/agent"
46
+ }
47
+ }
38
48
  }
39
49
  }
40
50
  }
@@ -44,41 +54,46 @@ Add your API key directly to `openclaw.json`:
44
54
 
45
55
  | Field | Required | Default | Description |
46
56
  |-------|----------|---------|-------------|
47
- | `nvmApiKey` | No | — | Your Nevermined API key (or use `/nvm-login`) |
57
+ | `nvmApiKey` | No | — | Your Nevermined API key (or use `/nvm_login`) |
48
58
  | `environment` | No | `sandbox` | `sandbox` or `live` |
49
59
  | `planId` | No | — | Default plan ID for subscriber tools |
50
60
  | `agentId` | No | — | Default agent ID for multi-agent plans |
51
61
  | `creditsPerRequest` | No | `1` | Credits consumed per request |
62
+ | `enablePaidEndpoint` | No | `false` | Enable the x402 paid HTTP endpoint on the gateway |
63
+ | `agentEndpointPath` | No | `/nevermined/agent` | HTTP path for the paid agent endpoint |
52
64
 
53
65
  ## Available Tools
54
66
 
55
- ### Authentication
67
+ ### Slash Commands
56
68
 
57
- | Tool / Command | Description |
58
- |----------------|-------------|
59
- | `nevermined.login` / `/nvm-login` | Authenticate via browser login |
60
- | `nevermined.logout` / `/nvm-logout` | Remove stored API key |
69
+ | Command | Description |
70
+ |---------|-------------|
71
+ | `/nvm_login [environment]` | Authenticate via browser login or paste an API key |
72
+ | `/nvm_logout` | Remove stored API key |
61
73
 
62
74
  ### Subscriber Tools
63
75
 
64
76
  | Tool | Description | Key Params |
65
77
  |------|-------------|------------|
66
- | `nevermined.checkBalance` | Check credit balance for a plan | `planId` |
67
- | `nevermined.getAccessToken` | Get an x402 access token | `planId`, `agentId` |
68
- | `nevermined.orderPlan` | Purchase a payment plan | `planId` |
69
- | `nevermined.queryAgent` | Query an agent end-to-end | `agentUrl`, `prompt`, `planId`, `agentId` |
78
+ | `nevermined_checkBalance` | Check credit balance for a plan | `planId` |
79
+ | `nevermined_getAccessToken` | Get an x402 access token | `planId`, `agentId` |
80
+ | `nevermined_orderPlan` | Purchase a payment plan | `planId` |
81
+ | `nevermined_queryAgent` | Query an agent end-to-end | `agentUrl`, `prompt`, `planId`, `agentId` |
70
82
 
71
83
  ### Builder Tools
72
84
 
73
85
  | Tool | Description | Key Params |
74
86
  |------|-------------|------------|
75
- | `nevermined.registerAgent` | Register an agent with a plan | `name`, `agentUrl`, `planName`, `priceAmounts`, `priceReceivers`, `creditsAmount` |
76
- | `nevermined.createPlan` | Create a payment plan | `name`, `priceAmounts`, `priceReceivers`, `creditsAmount` |
77
- | `nevermined.listPlans` | List your plans | — |
87
+ | `nevermined_registerAgent` | Register an agent with a plan | `name`, `agentUrl`, `planName`, `priceAmounts`, `priceReceivers`, `creditsAmount`, `tokenAddress` |
88
+ | `nevermined_createPlan` | Create a payment plan | `name`, `priceAmounts`, `priceReceivers`, `creditsAmount`, `tokenAddress` |
89
+ | `nevermined_listPlans` | List your plans | — |
78
90
 
79
91
  ## Documentation
80
92
 
81
- - [Nevermined Docs](https://docs.nevermined.app)
93
+ - [User Guide](./guide.md) — step-by-step tutorial building a paid Weather Oracle agent
94
+ - [Commands Reference](./commands.md) — full parameter documentation for all tools
95
+ - [Setup Reference](./setup.md) — detailed configuration options
96
+ - [Nevermined Docs](https://nevermined.ai/docs)
82
97
  - [Payments SDK](https://github.com/nevermined-io/payments)
83
98
 
84
99
  ## License
package/dist/auth.js CHANGED
@@ -35,7 +35,7 @@ export function getApiKeyUrl(environment) {
35
35
  * API keys have the format "environment:base64token".
36
36
  */
37
37
  export function looksLikeApiKey(value) {
38
- return /^(sandbox|live|staging_sandbox|staging_live):/.test(value.trim());
38
+ return /^(sandbox|live):/.test(value.trim());
39
39
  }
40
40
  /**
41
41
  * Starts a one-shot HTTP server, opens the Nevermined login page in the browser,
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -14,7 +14,7 @@ export function validateConfig(raw) {
14
14
  }
15
15
  export function requireApiKey(config) {
16
16
  if (!config.nvmApiKey) {
17
- throw new Error('Not authenticated. Run nevermined.login or /nvm-login first.');
17
+ throw new Error('Not authenticated. Run /nvm_login first.');
18
18
  }
19
19
  return config.nvmApiKey;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;CAC3D,CAAC,CAAA;AAIF,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA8B;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA8B;IACrE,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAA8B;KACnD,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;CAC3D,CAAC,CAAA;AAIF,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA8B;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA8B;IACrE,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAA8B;KACnD,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"paid-endpoint.d.ts","sourceRoot":"","sources":["../src/paid-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,YAAY,CAAA;AAErE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEzE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,MAAM,QAAQ,EAC3B,MAAM,EAAE,sBAAsB,EAC9B,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CAoGN;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAUnF"}
1
+ {"version":3,"file":"paid-endpoint.d.ts","sourceRoot":"","sources":["../src/paid-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,YAAY,CAAA;AAErE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEzE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,MAAM,QAAQ,EAC3B,MAAM,EAAE,sBAAsB,EAC9B,YAAY,CAAC,EAAE,YAAY,GAC1B,IAAI,CA8GN;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAUnF"}
@@ -8,15 +8,7 @@ export function registerPaidEndpoint(api, getPayments, config, agentHandler) {
8
8
  const path = config.agentEndpointPath ?? '/nevermined/agent';
9
9
  const handler = agentHandler ?? mockWeatherHandler;
10
10
  const routeHandler = async (req, res) => {
11
- // 1. Extract payment signature
12
- const accessToken = getHeader(req.headers, 'payment-signature') ??
13
- getHeader(req.headers, 'PAYMENT-SIGNATURE');
14
- if (!accessToken) {
15
- res.writeHead(402, { 'Content-Type': 'application/json' });
16
- res.end(JSON.stringify({ error: 'Payment required — missing payment-signature header' }));
17
- return;
18
- }
19
- // 2. Build payment required descriptor
11
+ // 1. Build payment required descriptor
20
12
  const planId = config.planId;
21
13
  if (!planId) {
22
14
  res.writeHead(500, { 'Content-Type': 'application/json' });
@@ -28,7 +20,19 @@ export function registerPaidEndpoint(api, getPayments, config, agentHandler) {
28
20
  agentId: config.agentId,
29
21
  httpVerb: 'POST',
30
22
  });
23
+ const paymentRequiredHeader = Buffer.from(JSON.stringify(paymentRequired)).toString('base64');
31
24
  const maxAmount = BigInt(config.creditsPerRequest ?? 1);
25
+ // 2. Extract payment signature
26
+ const accessToken = getHeader(req.headers, 'payment-signature') ??
27
+ getHeader(req.headers, 'PAYMENT-SIGNATURE');
28
+ if (!accessToken) {
29
+ res.writeHead(402, {
30
+ 'Content-Type': 'application/json',
31
+ 'payment-required': paymentRequiredHeader,
32
+ });
33
+ res.end(JSON.stringify({ error: 'Payment required — missing payment-signature header' }));
34
+ return;
35
+ }
32
36
  // 3. Verify permissions (check credits without burning)
33
37
  try {
34
38
  const verification = await getPayments().facilitator.verifyPermissions({
@@ -37,7 +41,10 @@ export function registerPaidEndpoint(api, getPayments, config, agentHandler) {
37
41
  maxAmount,
38
42
  });
39
43
  if (!verification.isValid) {
40
- res.writeHead(402, { 'Content-Type': 'application/json' });
44
+ res.writeHead(402, {
45
+ 'Content-Type': 'application/json',
46
+ 'payment-required': paymentRequiredHeader,
47
+ });
41
48
  res.end(JSON.stringify({
42
49
  error: 'Insufficient credits — order the plan first',
43
50
  details: verification,
@@ -46,7 +53,10 @@ export function registerPaidEndpoint(api, getPayments, config, agentHandler) {
46
53
  }
47
54
  }
48
55
  catch (err) {
49
- res.writeHead(402, { 'Content-Type': 'application/json' });
56
+ res.writeHead(402, {
57
+ 'Content-Type': 'application/json',
58
+ 'payment-required': paymentRequiredHeader,
59
+ });
50
60
  res.end(JSON.stringify({
51
61
  error: 'Payment verification failed',
52
62
  message: err instanceof Error ? err.message : String(err),
@@ -1 +1 @@
1
- {"version":3,"file":"paid-endpoint.js","sourceRoot":"","sources":["../src/paid-endpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAM9D;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAsB,EACtB,WAA2B,EAC3B,MAA8B,EAC9B,YAA2B;IAE3B,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,IAAI,mBAAmB,CAAA;IAC5D,MAAM,OAAO,GAAG,YAAY,IAAI,kBAAkB,CAAA;IAElD,MAAM,YAAY,GAAqB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxD,+BAA+B;QAC/B,MAAM,WAAW,GACf,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC;YAC3C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,qDAAqD,EAAE,CAAC,CAAC,CAAA;YACzF,OAAM;QACR,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC,CAAA;YAC3E,OAAM;QACR,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,EAAE;YACnD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAA;QAEvD,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,WAAW,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC;gBACrE,eAAe;gBACf,eAAe,EAAE,WAAW;gBAC5B,SAAS;aACV,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;gBAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACrB,KAAK,EAAE,6CAA6C;oBACpD,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC,CAAA;gBACH,OAAM;YACR,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,KAAK,EAAE,6BAA6B;gBACpC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC,CAAA;YACH,OAAM;QACR,CAAC;QAED,oCAAoC;QACpC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI;YAC1E,CAAC,CAAE,IAA2B,CAAC,MAAM;YACrC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEhB,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC,CAAA;YACH,OAAM;QACR,CAAC;QAED,uCAAuC;QACvC,IAAI,UAAmB,CAAA;QACvB,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,WAAW,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC;gBAC7D,eAAe;gBACf,eAAe,EAAE,WAAW;gBAC5B,SAAS;aACV,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mFAAmF;YACnF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAChG,UAAU,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;QAC7C,CAAC;QAED,kDAAkD;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAClF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,kBAAkB;YAClC,kBAAkB,EAAE,eAAe;SACpC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,GAAG,CAAC,iBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;IACvD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAwB;IAC/D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA;IAClD,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,2CAA2C;QACrD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;QAC/C,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;QAC7C,MAAM,EAAE,kCAAkC;KAC3C,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,kEAAkE;IAClE,oDAAoD;IACpD,kFAAkF;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;IAC9F,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5C,CAAC;AASD,SAAS,SAAS,CAAC,OAAsD,EAAE,IAAY;IACrF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IACzC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,GAAoB;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC,CAAC,CAAA;QACjF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,CAAA;YACd,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"paid-endpoint.js","sourceRoot":"","sources":["../src/paid-endpoint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,QAAQ,EAC3B,MAAM,EAAE,sBAAsB,GAC7B,UAAU,EAAE,CAqQd;AAID,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAC/E;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,QAAQ,EAC3B,MAAM,EAAE,sBAAsB,GAC7B,UAAU,EAAE,CAgSd;AAID,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAC/E;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/C"}
package/dist/tools.js CHANGED
@@ -173,42 +173,70 @@ export function createTools(getPayments, config) {
173
173
  {
174
174
  name: 'nevermined_createPlan',
175
175
  label: 'Nevermined Create Plan',
176
- description: 'Create a new payment plan on Nevermined',
176
+ description: 'Create a new payment plan on Nevermined. Supports fiat (Stripe), ERC20 tokens (USDC), and native crypto pricing.',
177
177
  parameters: {
178
178
  type: 'object',
179
179
  properties: {
180
180
  name: { type: 'string', description: 'Plan name' },
181
181
  description: { type: 'string', description: 'Plan description' },
182
- priceAmounts: { type: 'string', description: 'Comma-separated price amounts in wei' },
183
- priceReceivers: { type: 'string', description: 'Comma-separated receiver addresses' },
182
+ priceAmount: { type: 'string', description: 'Price amount in cents for fiat (e.g. "100" = $1.00), in token smallest unit for crypto (e.g. "1000000" = 1 USDC)' },
183
+ receiver: { type: 'string', description: 'Receiver wallet address (0x...)' },
184
184
  creditsAmount: { type: 'number', description: 'Number of credits in the plan' },
185
+ pricingType: { type: 'string', description: '"fiat" for Stripe/USD, "erc20" for ERC20 tokens like USDC, "crypto" for native token (default: crypto)' },
185
186
  accessLimit: { type: 'string', description: '"credits" or "time" (default: credits)' },
186
- tokenAddress: { type: 'string', description: 'ERC20 token address (e.g. USDC). Omit for native token.' },
187
+ tokenAddress: { type: 'string', description: 'ERC20 token contract address. Required when pricingType is "erc20".' },
187
188
  },
188
- required: ['name', 'priceAmounts', 'priceReceivers', 'creditsAmount'],
189
+ required: ['name', 'priceAmount', 'receiver', 'creditsAmount'],
189
190
  },
190
191
  async execute(_id, params) {
191
192
  const name = requireStr(params, 'name');
192
193
  const description = str(params, 'description') ?? '';
193
- const priceAmounts = requireStr(params, 'priceAmounts')
194
- .split(',')
195
- .map((s) => BigInt(s.trim()));
196
- const priceReceivers = requireStr(params, 'priceReceivers')
197
- .split(',')
198
- .map((s) => s.trim());
194
+ const priceAmount = BigInt(requireStr(params, 'priceAmount'));
195
+ const receiver = requireStr(params, 'receiver');
199
196
  const creditsAmount = Number(requireStr(params, 'creditsAmount'));
197
+ const pricingType = (str(params, 'pricingType') ?? 'crypto');
200
198
  const accessLimit = (str(params, 'accessLimit') ?? 'credits');
201
199
  const tokenAddress = str(params, 'tokenAddress');
202
- const priceConfig = {
203
- amounts: priceAmounts,
204
- receivers: priceReceivers,
205
- isCrypto: true,
206
- tokenAddress: tokenAddress ?? ZERO_ADDRESS,
207
- contractAddress: ZERO_ADDRESS,
208
- feeController: ZERO_ADDRESS,
209
- externalPriceAddress: ZERO_ADDRESS,
210
- templateAddress: ZERO_ADDRESS,
211
- };
200
+ let priceConfig;
201
+ switch (pricingType) {
202
+ case 'fiat':
203
+ priceConfig = {
204
+ amounts: [priceAmount],
205
+ receivers: [receiver],
206
+ isCrypto: false,
207
+ tokenAddress: ZERO_ADDRESS,
208
+ contractAddress: ZERO_ADDRESS,
209
+ feeController: ZERO_ADDRESS,
210
+ externalPriceAddress: ZERO_ADDRESS,
211
+ templateAddress: ZERO_ADDRESS,
212
+ };
213
+ break;
214
+ case 'erc20':
215
+ if (!tokenAddress)
216
+ throw new Error('tokenAddress is required when pricingType is "erc20"');
217
+ priceConfig = {
218
+ amounts: [priceAmount],
219
+ receivers: [receiver],
220
+ isCrypto: true,
221
+ tokenAddress,
222
+ contractAddress: ZERO_ADDRESS,
223
+ feeController: ZERO_ADDRESS,
224
+ externalPriceAddress: ZERO_ADDRESS,
225
+ templateAddress: ZERO_ADDRESS,
226
+ };
227
+ break;
228
+ default:
229
+ priceConfig = {
230
+ amounts: [priceAmount],
231
+ receivers: [receiver],
232
+ isCrypto: true,
233
+ tokenAddress: tokenAddress ?? ZERO_ADDRESS,
234
+ contractAddress: ZERO_ADDRESS,
235
+ feeController: ZERO_ADDRESS,
236
+ externalPriceAddress: ZERO_ADDRESS,
237
+ templateAddress: ZERO_ADDRESS,
238
+ };
239
+ }
212
240
  const res = await getPayments().plans.registerPlan({ name, description, accessLimit }, priceConfig, {
213
241
  isRedemptionAmountFixed: true,
214
242
  redemptionType: 4,
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/docs/commands.md CHANGED
@@ -10,7 +10,7 @@ The plugin provides slash commands for chat channels and gateway methods for pro
10
10
 
11
11
  ## Authentication
12
12
 
13
- ### `/nvm-login [environment]`
13
+ ### `/nvm_login [environment]`
14
14
 
15
15
  Authenticate with Nevermined via browser login.
16
16
 
@@ -18,29 +18,26 @@ Authenticate with Nevermined via browser login.
18
18
  |-----------|------|----------|---------|-------------|
19
19
  | `environment` | string | No | `sandbox` | `sandbox` or `live` |
20
20
 
21
- **Gateway method:** `nevermined.login`
22
-
23
21
  **Example:**
24
22
  ```
25
- /nvm-login
26
- /nvm-login live
23
+ /nvm_login
24
+ /nvm_login live
25
+ /nvm_login sandbox:eyJhbG...
27
26
  ```
28
27
 
29
28
  ---
30
29
 
31
- ### `/nvm-logout`
30
+ ### `/nvm_logout`
32
31
 
33
32
  Log out from Nevermined and remove the stored API key.
34
33
 
35
- **Gateway method:** `nevermined.logout`
36
-
37
34
  ---
38
35
 
39
36
  ## Subscriber Tools
40
37
 
41
38
  These tools are for users who want to subscribe to plans, check balances, and query agents.
42
39
 
43
- ### `nevermined.checkBalance`
40
+ ### `nevermined_checkBalance`
44
41
 
45
42
  Check the credit balance for a payment plan.
46
43
 
@@ -60,7 +57,7 @@ Check the credit balance for a payment plan.
60
57
 
61
58
  ---
62
59
 
63
- ### `nevermined.getAccessToken`
60
+ ### `nevermined_getAccessToken`
64
61
 
65
62
  Get an x402 access token for authenticating requests to a Nevermined agent.
66
63
 
@@ -78,7 +75,7 @@ Get an x402 access token for authenticating requests to a Nevermined agent.
78
75
 
79
76
  ---
80
77
 
81
- ### `nevermined.orderPlan`
78
+ ### `nevermined_orderPlan`
82
79
 
83
80
  Purchase (order) a Nevermined payment plan.
84
81
 
@@ -90,7 +87,7 @@ Purchase (order) a Nevermined payment plan.
90
87
 
91
88
  ---
92
89
 
93
- ### `nevermined.queryAgent`
90
+ ### `nevermined_queryAgent`
94
91
 
95
92
  End-to-end agent query: acquires an x402 access token, sends the prompt to the agent URL with the `PAYMENT-SIGNATURE` header, and returns the response.
96
93
 
@@ -110,7 +107,7 @@ If the agent returns a 402 (Payment Required) response, the tool returns an erro
110
107
 
111
108
  These tools are for agent builders who want to register agents and create payment plans.
112
109
 
113
- ### `nevermined.registerAgent`
110
+ ### `nevermined_registerAgent`
114
111
 
115
112
  Register a new AI agent with an associated payment plan.
116
113
 
@@ -136,7 +133,7 @@ Register a new AI agent with an associated payment plan.
136
133
 
137
134
  ---
138
135
 
139
- ### `nevermined.createPlan`
136
+ ### `nevermined_createPlan`
140
137
 
141
138
  Create a standalone payment plan (without an agent).
142
139
 
@@ -159,7 +156,7 @@ Create a standalone payment plan (without an agent).
159
156
 
160
157
  ---
161
158
 
162
- ### `nevermined.listPlans`
159
+ ### `nevermined_listPlans`
163
160
 
164
161
  List the builder's payment plans. No parameters required.
165
162
 
@@ -26,10 +26,10 @@ openclaw plugin install @nevermined-io/openclaw-plugin
26
26
 
27
27
  ### Option A: Browser login (recommended)
28
28
 
29
- Use the `/nvm-login` command from any connected chat channel:
29
+ Use the `/nvm_login` command from any connected chat channel:
30
30
 
31
31
  ```
32
- /nvm-login
32
+ /nvm_login
33
33
  ```
34
34
 
35
35
  This opens a browser window where you authenticate with Nevermined. The API key is captured automatically and stored in your gateway config.
@@ -37,7 +37,7 @@ This opens a browser window where you authenticate with Nevermined. The API key
37
37
  To target the live environment:
38
38
 
39
39
  ```
40
- /nvm-login live
40
+ /nvm_login live
41
41
  ```
42
42
 
43
43
  ### Option B: Manual configuration
@@ -66,9 +66,9 @@ You can obtain an API key from the [Nevermined App](https://nevermined.app) unde
66
66
 
67
67
  After authenticating, verify the plugin is working:
68
68
 
69
- 1. **Check your balance** — from any chat channel, the agent can call `nevermined.checkBalance` to verify connectivity.
69
+ 1. **Check your balance** — from any chat channel, the agent can call `nevermined_checkBalance` to verify connectivity.
70
70
 
71
- 2. **List plans** — call `nevermined.listPlans` to see available payment plans.
71
+ 2. **List plans** — call `nevermined_listPlans` to see available payment plans.
72
72
 
73
73
  ## Next Steps
74
74
 
package/docs/guide.md CHANGED
@@ -6,7 +6,7 @@ icon: "book-open"
6
6
 
7
7
  # Building a Paid AI Agent with OpenClaw and Nevermined
8
8
 
9
- The Nevermined OpenClaw plugin lets you monetize AI agents directly from chat channels. Subscribers pay per-request using the [x402 payment protocol](https://docs.nevermined.app/docs/api-reference/typescript/x402-protocol), and builders collect revenue automatically through on-chain payment plans.
9
+ The Nevermined OpenClaw plugin lets you monetize AI agents directly from chat channels. Subscribers pay per-request using the [x402 payment protocol](https://nevermined.ai/docs/api-reference/typescript/x402-protocol), and builders collect revenue automatically through on-chain payment plans.
10
10
 
11
11
  This guide walks through building a **Weather Oracle** — a paid agent that serves weather forecasts and charges 1 credit per request.
12
12
 
@@ -216,7 +216,7 @@ The balance is cached for 60 seconds to avoid excessive API calls.
216
216
 
217
217
  ## How It Works
218
218
 
219
- The plugin implements the [x402 payment protocol](https://docs.nevermined.app/docs/api-reference/typescript/x402-protocol) for agent-to-agent payments:
219
+ The plugin implements the [x402 payment protocol](https://nevermined.ai/docs/api-reference/typescript/x402-protocol) for agent-to-agent payments:
220
220
 
221
221
  ```
222
222
  Subscriber Claw Builder Claw (Gateway)
@@ -240,8 +240,8 @@ Credits are managed on-chain through the Nevermined Protocol. The `verifyPermiss
240
240
 
241
241
  ## Next Steps
242
242
 
243
- - [Commands Reference](./commands) — full parameter documentation for all tools
244
- - [Setup Reference](./setup) — detailed configuration options
245
- - [Nevermined Docs](https://docs.nevermined.app) — platform documentation
246
- - [x402 Protocol](https://docs.nevermined.app/docs/api-reference/typescript/x402-protocol) — payment protocol specification
243
+ - [Commands Reference](./commands.md) — full parameter documentation for all tools
244
+ - [Setup Reference](./setup.md) — detailed configuration options
245
+ - [Nevermined Docs](https://nevermined.ai/docs) — platform documentation
246
+ - [x402 Protocol](https://nevermined.ai/docs/api-reference/typescript/x402-protocol) — payment protocol specification
247
247
  - [OpenClaw Plugin Development](https://docs.openclaw.ai/tools/plugin) — building OpenClaw plugins
package/docs/setup.md CHANGED
@@ -54,17 +54,17 @@ The plugin reads its configuration from the `plugins.nevermined` section of your
54
54
 
55
55
  The plugin supports a browser-based login flow identical to the [Nevermined CLI](/docs/api-reference/cli/getting-started):
56
56
 
57
- 1. User sends `/nvm-login` in any chat channel (or calls `nevermined.login`)
57
+ 1. User sends `/nvm_login` in any chat channel
58
58
  2. The plugin starts a local HTTP server on a random port
59
59
  3. A browser window opens to the Nevermined login page
60
60
  4. After authentication, Nevermined redirects back with the API key
61
- 5. The key is stored in the gateway config via `api.setConfig()`
61
+ 5. The key is stored in the plugin's in-memory config for the current session
62
62
 
63
63
  The login times out after 5 minutes if no authentication is received.
64
64
 
65
65
  ### Logging Out
66
66
 
67
- Send `/nvm-logout` or call `nevermined.logout` to remove the stored API key. All payment tools will require re-authentication after logout.
67
+ Send `/nvm_logout` or call `nvm_logout` to remove the stored API key. All payment tools will require re-authentication after logout.
68
68
 
69
69
  ## Default Values
70
70
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nevermined-io/openclaw-plugin",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "OpenClaw plugin for Nevermined — exposes subscriber and builder tools as gateway methods",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,8 +34,7 @@
34
34
  "typescript": "^5.4.0",
35
35
  "eslint": "^8.57.0",
36
36
  "@typescript-eslint/eslint-plugin": "^7.0.0",
37
- "@typescript-eslint/parser": "^7.0.0",
38
- "zod": "^3.23.0"
37
+ "@typescript-eslint/parser": "^7.0.0"
39
38
  },
40
39
  "dependencies": {
41
40
  "zod": "^3.23.0"
@@ -11,36 +11,29 @@ This plugin provides gateway tools for interacting with Nevermined AI agent paym
11
11
 
12
12
  ## Authentication
13
13
 
14
- ### `/nvm-login [environment]`
15
- Authenticate with Nevermined via browser login. Opens a browser window to obtain an API key.
14
+ ### `/nvm_login [environment]`
15
+ Authenticate with Nevermined via browser login. Opens a browser window to obtain an API key. You can also paste an API key directly: `/nvm_login <api-key>`.
16
16
  - `environment` (optional) — `sandbox` or `live` (default: from config)
17
17
 
18
- ### `/nvm-logout`
18
+ ### `/nvm_logout`
19
19
  Log out from Nevermined and remove the stored API key.
20
20
 
21
- ### `nevermined.login`
22
- Gateway method equivalent of `/nvm-login`.
23
- - `environment` (optional)
24
-
25
- ### `nevermined.logout`
26
- Gateway method equivalent of `/nvm-logout`.
27
-
28
21
  ## Subscriber Tools
29
22
 
30
- ### `nevermined.checkBalance`
23
+ ### `nevermined_checkBalance`
31
24
  Check credit balance for a payment plan.
32
25
  - `planId` (optional if set in config) — the plan to check
33
26
 
34
- ### `nevermined.getAccessToken`
27
+ ### `nevermined_getAccessToken`
35
28
  Get an x402 access token for authenticating agent requests.
36
29
  - `planId` (optional if set in config)
37
30
  - `agentId` (optional if set in config)
38
31
 
39
- ### `nevermined.orderPlan`
32
+ ### `nevermined_orderPlan`
40
33
  Purchase a payment plan.
41
34
  - `planId` (optional if set in config)
42
35
 
43
- ### `nevermined.queryAgent`
36
+ ### `nevermined_queryAgent`
44
37
  End-to-end agent query — acquires a token, calls the agent, returns the response.
45
38
  - `agentUrl` (required) — the agent endpoint URL
46
39
  - `prompt` (required) — the prompt to send
@@ -50,7 +43,7 @@ End-to-end agent query — acquires a token, calls the agent, returns the respon
50
43
 
51
44
  ## Builder Tools
52
45
 
53
- ### `nevermined.registerAgent`
46
+ ### `nevermined_registerAgent`
54
47
  Register a new AI agent with a payment plan.
55
48
  - `name` (required) — agent name
56
49
  - `agentUrl` (required) — agent endpoint
@@ -58,14 +51,17 @@ Register a new AI agent with a payment plan.
58
51
  - `priceAmounts` (required) — comma-separated prices in wei
59
52
  - `priceReceivers` (required) — comma-separated receiver addresses
60
53
  - `creditsAmount` (required) — number of credits
54
+ - `tokenAddress` (optional) — ERC20 token address (e.g. USDC). Omit for native token.
61
55
 
62
- ### `nevermined.createPlan`
63
- Create a standalone payment plan.
56
+ ### `nevermined_createPlan`
57
+ Create a standalone payment plan. Supports fiat (Stripe), ERC20 tokens (USDC), and native crypto pricing.
64
58
  - `name` (required) — plan name
65
- - `priceAmounts` (required) — comma-separated prices in wei
66
- - `priceReceivers` (required) — comma-separated receiver addresses
59
+ - `priceAmount` (required) — price in cents for fiat (e.g. "100" = $1.00), in token smallest unit for crypto (e.g. "1000000" = 1 USDC)
60
+ - `receiver` (required) — receiver wallet address (0x...)
67
61
  - `creditsAmount` (required) — number of credits
62
+ - `pricingType` (optional) — `"fiat"` for Stripe/USD, `"erc20"` for ERC20 tokens like USDC, `"crypto"` for native token (default: crypto)
68
63
  - `accessLimit` (optional) — `"credits"` or `"time"`
64
+ - `tokenAddress` (optional) — ERC20 token contract address. Required when pricingType is "erc20".
69
65
 
70
- ### `nevermined.listPlans`
66
+ ### `nevermined_listPlans`
71
67
  List your payment plans. No parameters.
package/docs/links.md DELETED
@@ -1,38 +0,0 @@
1
- ---
2
- title: "Resources"
3
- description: "Links to Nevermined documentation, SDKs, and community resources"
4
- icon: "book"
5
- ---
6
-
7
- # Resources
8
-
9
- ## Nevermined Documentation
10
-
11
- | Resource | Description |
12
- |----------|-------------|
13
- | [Nevermined Docs](https://docs.nevermined.app) | Full platform documentation |
14
- | [Get Your API Key](https://docs.nevermined.app/docs/getting-started/get-your-api-key) | How to create a Nevermined account and obtain an API key |
15
- | [Payment Plans](https://docs.nevermined.app/docs/api-reference/typescript/payment-plans-and-agents) | Creating and managing payment plans |
16
- | [Querying Agents](https://docs.nevermined.app/docs/api-reference/typescript/querying-an-agent) | How to query agents using x402 access tokens |
17
- | [x402 Protocol](https://docs.nevermined.app/docs/api-reference/typescript/x402-protocol) | The HTTP payment protocol specification |
18
-
19
- ## SDKs
20
-
21
- | SDK | Language | Package |
22
- |-----|----------|---------|
23
- | [Payments SDK](https://github.com/nevermined-io/payments) | TypeScript | `@nevermined-io/payments` |
24
- | [Payments SDK (Python)](https://github.com/nevermined-io/payments-py) | Python | `payments-py` |
25
- | [Nevermined CLI](https://www.npmjs.com/package/@nevermined-io/cli) | TypeScript | `@nevermined-io/cli` |
26
-
27
- ## OpenClaw
28
-
29
- | Resource | Description |
30
- |----------|-------------|
31
- | [OpenClaw Docs](https://docs.openclaw.ai) | OpenClaw gateway documentation |
32
- | [Plugin Development](https://docs.openclaw.ai/tools/plugin) | How to build OpenClaw plugins |
33
-
34
- ## Support
35
-
36
- - [GitHub Issues](https://github.com/nevermined-io/payments/issues) — report bugs or request features
37
- - [Nevermined Discord](https://discord.gg/nevermined) — community support
38
- - [Nevermined App](https://nevermined.app) — manage your account, plans, and agents