n8n-nodes-render 1.0.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.
Files changed (156) hide show
  1. package/LICENSE +46 -0
  2. package/README.md +454 -0
  3. package/dist/credentials/NodeOperator.credentials.d.ts +15 -0
  4. package/dist/credentials/NodeOperator.credentials.d.ts.map +1 -0
  5. package/dist/credentials/NodeOperator.credentials.js +127 -0
  6. package/dist/credentials/NodeOperator.credentials.js.map +1 -0
  7. package/dist/credentials/RenderApi.credentials.d.ts +15 -0
  8. package/dist/credentials/RenderApi.credentials.d.ts.map +1 -0
  9. package/dist/credentials/RenderApi.credentials.js +98 -0
  10. package/dist/credentials/RenderApi.credentials.js.map +1 -0
  11. package/dist/credentials/RenderNetwork.credentials.d.ts +15 -0
  12. package/dist/credentials/RenderNetwork.credentials.d.ts.map +1 -0
  13. package/dist/credentials/RenderNetwork.credentials.js +152 -0
  14. package/dist/credentials/RenderNetwork.credentials.js.map +1 -0
  15. package/dist/index.d.ts +14 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +30 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/nodes/Render/Render.node.d.ts +10 -0
  20. package/dist/nodes/Render/Render.node.d.ts.map +1 -0
  21. package/dist/nodes/Render/Render.node.js +290 -0
  22. package/dist/nodes/Render/Render.node.js.map +1 -0
  23. package/dist/nodes/Render/RenderTrigger.node.d.ts +10 -0
  24. package/dist/nodes/Render/RenderTrigger.node.d.ts.map +1 -0
  25. package/dist/nodes/Render/RenderTrigger.node.js +502 -0
  26. package/dist/nodes/Render/RenderTrigger.node.js.map +1 -0
  27. package/dist/nodes/Render/actions/aiCompute/aiCompute.d.ts +9 -0
  28. package/dist/nodes/Render/actions/aiCompute/aiCompute.d.ts.map +1 -0
  29. package/dist/nodes/Render/actions/aiCompute/aiCompute.js +248 -0
  30. package/dist/nodes/Render/actions/aiCompute/aiCompute.js.map +1 -0
  31. package/dist/nodes/Render/actions/burnMint/burnMint.d.ts +9 -0
  32. package/dist/nodes/Render/actions/burnMint/burnMint.d.ts.map +1 -0
  33. package/dist/nodes/Render/actions/burnMint/burnMint.js +335 -0
  34. package/dist/nodes/Render/actions/burnMint/burnMint.js.map +1 -0
  35. package/dist/nodes/Render/actions/escrow/escrow.d.ts +5 -0
  36. package/dist/nodes/Render/actions/escrow/escrow.d.ts.map +1 -0
  37. package/dist/nodes/Render/actions/escrow/escrow.js +86 -0
  38. package/dist/nodes/Render/actions/escrow/escrow.js.map +1 -0
  39. package/dist/nodes/Render/actions/frame/frame.d.ts +5 -0
  40. package/dist/nodes/Render/actions/frame/frame.d.ts.map +1 -0
  41. package/dist/nodes/Render/actions/frame/frame.js +107 -0
  42. package/dist/nodes/Render/actions/frame/frame.js.map +1 -0
  43. package/dist/nodes/Render/actions/gpu/gpu.d.ts +9 -0
  44. package/dist/nodes/Render/actions/gpu/gpu.d.ts.map +1 -0
  45. package/dist/nodes/Render/actions/gpu/gpu.js +243 -0
  46. package/dist/nodes/Render/actions/gpu/gpu.js.map +1 -0
  47. package/dist/nodes/Render/actions/job/job.d.ts +5 -0
  48. package/dist/nodes/Render/actions/job/job.d.ts.map +1 -0
  49. package/dist/nodes/Render/actions/job/job.js +352 -0
  50. package/dist/nodes/Render/actions/job/job.js.map +1 -0
  51. package/dist/nodes/Render/actions/networkStats/networkStats.d.ts +9 -0
  52. package/dist/nodes/Render/actions/networkStats/networkStats.d.ts.map +1 -0
  53. package/dist/nodes/Render/actions/networkStats/networkStats.js +230 -0
  54. package/dist/nodes/Render/actions/networkStats/networkStats.js.map +1 -0
  55. package/dist/nodes/Render/actions/node/node.d.ts +9 -0
  56. package/dist/nodes/Render/actions/node/node.d.ts.map +1 -0
  57. package/dist/nodes/Render/actions/node/node.js +196 -0
  58. package/dist/nodes/Render/actions/node/node.js.map +1 -0
  59. package/dist/nodes/Render/actions/nodeOperator/nodeOperator.d.ts +9 -0
  60. package/dist/nodes/Render/actions/nodeOperator/nodeOperator.d.ts.map +1 -0
  61. package/dist/nodes/Render/actions/nodeOperator/nodeOperator.js +245 -0
  62. package/dist/nodes/Render/actions/nodeOperator/nodeOperator.js.map +1 -0
  63. package/dist/nodes/Render/actions/output/output.d.ts +9 -0
  64. package/dist/nodes/Render/actions/output/output.d.ts.map +1 -0
  65. package/dist/nodes/Render/actions/output/output.js +189 -0
  66. package/dist/nodes/Render/actions/output/output.js.map +1 -0
  67. package/dist/nodes/Render/actions/pricing/pricing.d.ts +9 -0
  68. package/dist/nodes/Render/actions/pricing/pricing.d.ts.map +1 -0
  69. package/dist/nodes/Render/actions/pricing/pricing.js +274 -0
  70. package/dist/nodes/Render/actions/pricing/pricing.js.map +1 -0
  71. package/dist/nodes/Render/actions/queue/queue.d.ts +9 -0
  72. package/dist/nodes/Render/actions/queue/queue.d.ts.map +1 -0
  73. package/dist/nodes/Render/actions/queue/queue.js +179 -0
  74. package/dist/nodes/Render/actions/queue/queue.js.map +1 -0
  75. package/dist/nodes/Render/actions/rendering/rendering.d.ts +5 -0
  76. package/dist/nodes/Render/actions/rendering/rendering.d.ts.map +1 -0
  77. package/dist/nodes/Render/actions/rendering/rendering.js +388 -0
  78. package/dist/nodes/Render/actions/rendering/rendering.js.map +1 -0
  79. package/dist/nodes/Render/actions/scene/scene.d.ts +9 -0
  80. package/dist/nodes/Render/actions/scene/scene.d.ts.map +1 -0
  81. package/dist/nodes/Render/actions/scene/scene.js +196 -0
  82. package/dist/nodes/Render/actions/scene/scene.js.map +1 -0
  83. package/dist/nodes/Render/actions/staking/staking.d.ts +9 -0
  84. package/dist/nodes/Render/actions/staking/staking.d.ts.map +1 -0
  85. package/dist/nodes/Render/actions/staking/staking.js +255 -0
  86. package/dist/nodes/Render/actions/staking/staking.js.map +1 -0
  87. package/dist/nodes/Render/actions/utility/utility.d.ts +9 -0
  88. package/dist/nodes/Render/actions/utility/utility.d.ts.map +1 -0
  89. package/dist/nodes/Render/actions/utility/utility.js +348 -0
  90. package/dist/nodes/Render/actions/utility/utility.js.map +1 -0
  91. package/dist/nodes/Render/actions/wallet/wallet.d.ts +9 -0
  92. package/dist/nodes/Render/actions/wallet/wallet.d.ts.map +1 -0
  93. package/dist/nodes/Render/actions/wallet/wallet.js +358 -0
  94. package/dist/nodes/Render/actions/wallet/wallet.js.map +1 -0
  95. package/dist/nodes/Render/constants/formats.d.ts +329 -0
  96. package/dist/nodes/Render/constants/formats.d.ts.map +1 -0
  97. package/dist/nodes/Render/constants/formats.js +304 -0
  98. package/dist/nodes/Render/constants/formats.js.map +1 -0
  99. package/dist/nodes/Render/constants/gpuTypes.d.ts +53 -0
  100. package/dist/nodes/Render/constants/gpuTypes.d.ts.map +1 -0
  101. package/dist/nodes/Render/constants/gpuTypes.js +226 -0
  102. package/dist/nodes/Render/constants/gpuTypes.js.map +1 -0
  103. package/dist/nodes/Render/constants/index.d.ts +9 -0
  104. package/dist/nodes/Render/constants/index.d.ts.map +1 -0
  105. package/dist/nodes/Render/constants/index.js +25 -0
  106. package/dist/nodes/Render/constants/index.js.map +1 -0
  107. package/dist/nodes/Render/constants/networks.d.ts +63 -0
  108. package/dist/nodes/Render/constants/networks.d.ts.map +1 -0
  109. package/dist/nodes/Render/constants/networks.js +69 -0
  110. package/dist/nodes/Render/constants/networks.js.map +1 -0
  111. package/dist/nodes/Render/constants/programs.d.ts +37 -0
  112. package/dist/nodes/Render/constants/programs.d.ts.map +1 -0
  113. package/dist/nodes/Render/constants/programs.js +54 -0
  114. package/dist/nodes/Render/constants/programs.js.map +1 -0
  115. package/dist/nodes/Render/render.svg +12 -0
  116. package/dist/nodes/Render/transport/index.d.ts +9 -0
  117. package/dist/nodes/Render/transport/index.d.ts.map +1 -0
  118. package/dist/nodes/Render/transport/index.js +25 -0
  119. package/dist/nodes/Render/transport/index.js.map +1 -0
  120. package/dist/nodes/Render/transport/jobClient.d.ts +215 -0
  121. package/dist/nodes/Render/transport/jobClient.d.ts.map +1 -0
  122. package/dist/nodes/Render/transport/jobClient.js +313 -0
  123. package/dist/nodes/Render/transport/jobClient.js.map +1 -0
  124. package/dist/nodes/Render/transport/renderApi.d.ts +1198 -0
  125. package/dist/nodes/Render/transport/renderApi.d.ts.map +1 -0
  126. package/dist/nodes/Render/transport/renderApi.js +1587 -0
  127. package/dist/nodes/Render/transport/renderApi.js.map +1 -0
  128. package/dist/nodes/Render/transport/solanaClient.d.ts +86 -0
  129. package/dist/nodes/Render/transport/solanaClient.d.ts.map +1 -0
  130. package/dist/nodes/Render/transport/solanaClient.js +321 -0
  131. package/dist/nodes/Render/transport/solanaClient.js.map +1 -0
  132. package/dist/nodes/Render/transport/streamClient.d.ts +130 -0
  133. package/dist/nodes/Render/transport/streamClient.d.ts.map +1 -0
  134. package/dist/nodes/Render/transport/streamClient.js +252 -0
  135. package/dist/nodes/Render/transport/streamClient.js.map +1 -0
  136. package/dist/nodes/Render/utils/index.d.ts +9 -0
  137. package/dist/nodes/Render/utils/index.d.ts.map +1 -0
  138. package/dist/nodes/Render/utils/index.js +25 -0
  139. package/dist/nodes/Render/utils/index.js.map +1 -0
  140. package/dist/nodes/Render/utils/jobUtils.d.ts +77 -0
  141. package/dist/nodes/Render/utils/jobUtils.d.ts.map +1 -0
  142. package/dist/nodes/Render/utils/jobUtils.js +221 -0
  143. package/dist/nodes/Render/utils/jobUtils.js.map +1 -0
  144. package/dist/nodes/Render/utils/pricingUtils.d.ts +99 -0
  145. package/dist/nodes/Render/utils/pricingUtils.d.ts.map +1 -0
  146. package/dist/nodes/Render/utils/pricingUtils.js +213 -0
  147. package/dist/nodes/Render/utils/pricingUtils.js.map +1 -0
  148. package/dist/nodes/Render/utils/sceneUtils.d.ts +74 -0
  149. package/dist/nodes/Render/utils/sceneUtils.d.ts.map +1 -0
  150. package/dist/nodes/Render/utils/sceneUtils.js +201 -0
  151. package/dist/nodes/Render/utils/sceneUtils.js.map +1 -0
  152. package/dist/nodes/Render/utils/unitConverter.d.ts +99 -0
  153. package/dist/nodes/Render/utils/unitConverter.d.ts.map +1 -0
  154. package/dist/nodes/Render/utils/unitConverter.js +288 -0
  155. package/dist/nodes/Render/utils/unitConverter.js.map +1 -0
  156. package/package.json +90 -0
package/LICENSE ADDED
@@ -0,0 +1,46 @@
1
+ Business Source License 1.1
2
+
3
+ License text copyright (c) 2017 MariaDB Corporation Ab.
4
+
5
+ Licensor:
6
+ Velocity BPA, LLC
7
+ https://velobpa.com
8
+
9
+ Licensed Work:
10
+ This repository and all source code, documentation, and associated artifacts
11
+ contained herein, including all n8n community nodes published by Velocity BPA.
12
+
13
+ Additional Use Grant:
14
+ You may use, modify, and run the Licensed Work free of charge for:
15
+ - Personal use
16
+ - Educational use
17
+ - Research use
18
+ - Internal business use, provided such use does not involve resale,
19
+ redistribution, or offering the Licensed Work as part of a commercial
20
+ product or service.
21
+
22
+ Commercial Use Restriction:
23
+ Commercial Use of the Licensed Work is prohibited without a valid
24
+ Commercial License issued by the Licensor.
25
+
26
+ Commercial Use includes, but is not limited to:
27
+ - Use of the Licensed Work within any Software-as-a-Service (SaaS),
28
+ Platform-as-a-Service (PaaS), or hosted application that is sold,
29
+ licensed, or monetized in any form
30
+ - Offering the Licensed Work as part of a managed services engagement
31
+ - Bundling or redistributing the Licensed Work with a paid product
32
+ - Reselling, sublicensing, or white-labeling the Licensed Work
33
+ - Embedding the Licensed Work into any commercial automation platform,
34
+ integration product, or solution offering
35
+
36
+ Change Date:
37
+ January 1, 2030
38
+
39
+ Change License:
40
+ Apache License, Version 2.0
41
+
42
+ For commercial licensing inquiries:
43
+ licensing@velobpa.com
44
+
45
+ Business Source License 1.1 full text:
46
+ https://mariadb.com/bsl11/
package/README.md ADDED
@@ -0,0 +1,454 @@
1
+ # n8n-nodes-render
2
+
3
+ > **[Velocity BPA Licensing Notice]**
4
+ >
5
+ > This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
6
+ >
7
+ > Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
8
+ >
9
+ > For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.
10
+
11
+ ![Render Network](https://img.shields.io/badge/Render-Network-E94B3C)
12
+ ![n8n](https://img.shields.io/badge/n8n-Community%20Node-blue)
13
+ ![License](https://img.shields.io/badge/License-BUSL--1.1-blue)
14
+ ![Version](https://img.shields.io/badge/Version-1.0.0-orange)
15
+
16
+ A comprehensive n8n community node package for interacting with **Render Network** - the decentralized GPU rendering and AI compute platform built on Solana.
17
+
18
+ **Author:** [Velocity BPA, LLC](https://velobpa.com)
19
+ **GitHub:** [Velocity-BPA](https://github.com/Velocity-BPA)
20
+ **Licensing:** [licensing@velobpa.com](mailto:licensing@velobpa.com)
21
+
22
+ ---
23
+
24
+ ## Table of Contents
25
+
26
+ - [Features](#features)
27
+ - [Installation](#installation)
28
+ - [Credentials](#credentials)
29
+ - [Nodes](#nodes)
30
+ - [Usage Examples](#usage-examples)
31
+ - [Resources Reference](#resources-reference)
32
+ - [Development](#development)
33
+ - [Testing](#testing)
34
+ - [Contributing](#contributing)
35
+ - [License](#license)
36
+
37
+ ---
38
+
39
+ ## Features
40
+
41
+ - **17 Resource Types** with 150+ operations
42
+ - **3D Rendering** - Submit OctaneRender, Cycles, Redshift, Arnold jobs
43
+ - **AI Compute** - Run inference and training jobs on distributed GPUs
44
+ - **Wallet Management** - RENDER and SOL balance queries, transfers
45
+ - **Node Operations** - Monitor and manage render nodes
46
+ - **Staking** - Stake RENDER tokens and claim rewards
47
+ - **BME Economics** - Track burn-mint equilibrium metrics
48
+ - **Real-time Triggers** - WebSocket-based event monitoring
49
+ - **Full TypeScript Support** - Type-safe implementations
50
+
51
+ ---
52
+
53
+ ## Installation
54
+
55
+ ### Via n8n GUI (Recommended)
56
+
57
+ 1. Go to **Settings** → **Community Nodes**
58
+ 2. Click **Install a community node**
59
+ 3. Enter `n8n-nodes-render`
60
+ 4. Click **Install**
61
+
62
+ ### Via npm
63
+
64
+ ```bash
65
+ # Navigate to your n8n installation
66
+ cd ~/.n8n
67
+
68
+ # Install the package
69
+ npm install n8n-nodes-render
70
+ ```
71
+
72
+ ### Manual Installation (Development)
73
+
74
+ ```bash
75
+ # Clone the repository
76
+ git clone https://github.com/Velocity-BPA/n8n-nodes-render.git
77
+ cd n8n-nodes-render
78
+
79
+ # Install dependencies
80
+ npm install
81
+
82
+ # Build the package
83
+ npm run build
84
+
85
+ # Link for local testing
86
+ npm link
87
+
88
+ # In your n8n directory
89
+ cd ~/.n8n
90
+ npm link n8n-nodes-render
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Credentials
96
+
97
+ ### Render Network Credentials
98
+ Required for wallet and blockchain operations.
99
+
100
+ | Field | Description |
101
+ |-------|-------------|
102
+ | Network | Solana Mainnet, Devnet, or Custom |
103
+ | RPC URL | Solana RPC endpoint |
104
+ | Private Key | Base58 or JSON byte array format |
105
+ | Commitment | Transaction confirmation level |
106
+
107
+ ### Render API Credentials
108
+ Required for API-based operations.
109
+
110
+ | Field | Description |
111
+ |-------|-------------|
112
+ | API Key | Your Render Network API key |
113
+ | Creator Account ID | Your creator account identifier |
114
+ | API Endpoint | API base URL |
115
+
116
+ ### Node Operator Credentials
117
+ Required for node operator operations.
118
+
119
+ | Field | Description |
120
+ |-------|-------------|
121
+ | Operator ID | Your node operator ID |
122
+ | Auth Token | Authentication token |
123
+ | Tier | Node tier level (1-4) |
124
+
125
+ ---
126
+
127
+ ## Nodes
128
+
129
+ ### Render Network (Action Node)
130
+ Main node for all Render Network operations across 17 resources.
131
+
132
+ ### Render Trigger (Trigger Node)
133
+ Real-time event monitoring for jobs, nodes, wallets, staking, and network events.
134
+
135
+ ---
136
+
137
+ ## Usage Examples
138
+
139
+ ### Submit a 3D Render Job
140
+
141
+ ```javascript
142
+ // Using the Render node
143
+ Resource: Rendering
144
+ Operation: Submit 3D Render Job
145
+
146
+ // Parameters
147
+ Scene ID: "scene_abc123"
148
+ Render Engine: OctaneRender
149
+ Quality: Production
150
+ Resolution: 1920x1080
151
+ Frame Range: 1-100
152
+ GPU Type: RTX 4090
153
+ ```
154
+
155
+ ### Check RENDER Balance
156
+
157
+ ```javascript
158
+ // Using the Render node
159
+ Resource: Wallet
160
+ Operation: Get RENDER Balance
161
+
162
+ // Leave wallet address empty to use your configured wallet
163
+ // Or specify a specific address to check
164
+ ```
165
+
166
+ ### Monitor Job Completion
167
+
168
+ ```javascript
169
+ // Using the Render Trigger node
170
+ Event Category: Job Events
171
+ Event: Job Completed
172
+ Job ID Filter: "job_xyz789" // Optional
173
+ ```
174
+
175
+ ### Run AI Inference
176
+
177
+ ```javascript
178
+ // Using the Render node
179
+ Resource: AI Compute
180
+ Operation: Submit AI Inference Job
181
+
182
+ // Parameters
183
+ Model: llama-70b
184
+ Prompt: "Explain quantum computing"
185
+ Max Tokens: 500
186
+ Temperature: 0.7
187
+ GPU Type: A100
188
+ ```
189
+
190
+ ### Stake RENDER Tokens
191
+
192
+ ```javascript
193
+ // Using the Render node
194
+ Resource: Staking
195
+ Operation: Stake RENDER
196
+
197
+ // Parameters
198
+ Amount: 1000
199
+ Lock Period: 30 days
200
+ ```
201
+
202
+ ### Track BME Statistics
203
+
204
+ ```javascript
205
+ // Using the Render node
206
+ Resource: Burn-Mint (BME)
207
+ Operation: Get BME Stats
208
+
209
+ // Returns burn rate, mint rate, equilibrium status
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Resources Reference
215
+
216
+ | Resource | Operations | Description |
217
+ |----------|------------|-------------|
218
+ | **Wallet** | 10 | Balance queries, transfers, history |
219
+ | **Job** | 15 | Job creation, status, management |
220
+ | **Rendering** | 12 | 3D render job submission |
221
+ | **AI Compute** | 12 | AI inference and training |
222
+ | **Node** | 14 | Render node information |
223
+ | **Node Operator** | 10 | Operator management |
224
+ | **Pricing** | 10 | Cost and pricing info |
225
+ | **Staking** | 11 | Token staking operations |
226
+ | **Escrow** | 8 | Escrow management |
227
+ | **Frame** | 10 | Individual frame operations |
228
+ | **Scene** | 10 | Scene file management |
229
+ | **Output** | 10 | Rendered output management |
230
+ | **Network Stats** | 10 | Network metrics |
231
+ | **GPU** | 9 | GPU info and reservation |
232
+ | **Queue** | 7 | Job queue management |
233
+ | **Burn-Mint** | 7 | BME economics |
234
+ | **Utility** | 10 | Helper tools |
235
+
236
+ ---
237
+
238
+ ## Development
239
+
240
+ ### Prerequisites
241
+
242
+ - Node.js 18.x or later
243
+ - npm 9.x or later
244
+ - n8n installed locally
245
+
246
+ ### Setup
247
+
248
+ ```bash
249
+ # Clone the repository
250
+ git clone https://github.com/Velocity-BPA/n8n-nodes-render.git
251
+ cd n8n-nodes-render
252
+
253
+ # Install dependencies
254
+ npm install
255
+
256
+ # Build
257
+ npm run build
258
+
259
+ # Run linting
260
+ npm run lint
261
+
262
+ # Run tests
263
+ npm test
264
+ ```
265
+
266
+ ### Project Structure
267
+
268
+ ```
269
+ n8n-nodes-render/
270
+ ├── credentials/
271
+ │ ├── RenderNetwork.credentials.ts
272
+ │ ├── RenderApi.credentials.ts
273
+ │ └── NodeOperator.credentials.ts
274
+ ├── nodes/
275
+ │ └── Render/
276
+ │ ├── Render.node.ts
277
+ │ ├── RenderTrigger.node.ts
278
+ │ ├── render.svg
279
+ │ ├── actions/
280
+ │ │ ├── wallet/
281
+ │ │ ├── job/
282
+ │ │ ├── rendering/
283
+ │ │ ├── aiCompute/
284
+ │ │ ├── node/
285
+ │ │ ├── nodeOperator/
286
+ │ │ ├── pricing/
287
+ │ │ ├── staking/
288
+ │ │ ├── escrow/
289
+ │ │ ├── frame/
290
+ │ │ ├── scene/
291
+ │ │ ├── output/
292
+ │ │ ├── networkStats/
293
+ │ │ ├── gpu/
294
+ │ │ ├── queue/
295
+ │ │ ├── burnMint/
296
+ │ │ └── utility/
297
+ │ ├── transport/
298
+ │ │ ├── solanaClient.ts
299
+ │ │ ├── renderApi.ts
300
+ │ │ ├── jobClient.ts
301
+ │ │ └── streamClient.ts
302
+ │ ├── constants/
303
+ │ │ ├── networks.ts
304
+ │ │ ├── programs.ts
305
+ │ │ ├── gpuTypes.ts
306
+ │ │ └── formats.ts
307
+ │ └── utils/
308
+ │ ├── jobUtils.ts
309
+ │ ├── sceneUtils.ts
310
+ │ ├── pricingUtils.ts
311
+ │ └── unitConverter.ts
312
+ ├── package.json
313
+ ├── tsconfig.json
314
+ ├── gulpfile.js
315
+ ├── index.ts
316
+ ├── README.md
317
+ └── LICENSE
318
+ ```
319
+
320
+ ---
321
+
322
+ ## Testing
323
+
324
+ ### Local n8n Testing
325
+
326
+ 1. **Build the package:**
327
+ ```bash
328
+ npm run build
329
+ ```
330
+
331
+ 2. **Create a ZIP file for local testing:**
332
+ ```bash
333
+ # Create distribution package
334
+ npm pack
335
+ # This creates n8n-nodes-render-1.0.0.tgz
336
+ ```
337
+
338
+ 3. **Install in n8n:**
339
+ ```bash
340
+ # Navigate to n8n custom extensions directory
341
+ cd ~/.n8n/custom
342
+
343
+ # Extract the package
344
+ tar -xzf /path/to/n8n-nodes-render-1.0.0.tgz
345
+ mv package n8n-nodes-render
346
+
347
+ # Install dependencies
348
+ cd n8n-nodes-render
349
+ npm install --production
350
+ ```
351
+
352
+ 4. **Start n8n:**
353
+ ```bash
354
+ n8n start
355
+ ```
356
+
357
+ 5. **Verify installation:**
358
+ - Open n8n in browser (http://localhost:5678)
359
+ - Create new workflow
360
+ - Search for "Render" in nodes panel
361
+ - Both "Render Network" and "Render Trigger" should appear
362
+
363
+ ### Running with Docker
364
+
365
+ ```bash
366
+ # Build custom n8n image with the node
367
+ docker build -t n8n-custom .
368
+
369
+ # Run container
370
+ docker run -it --rm \
371
+ -p 5678:5678 \
372
+ -v ~/.n8n:/home/node/.n8n \
373
+ n8n-custom
374
+ ```
375
+
376
+ ---
377
+
378
+ ## Technical Details
379
+
380
+ ### Supported Networks
381
+ - **Solana Mainnet** - Production network
382
+ - **Solana Devnet** - Testing network
383
+ - **Custom RPC** - Custom endpoints
384
+
385
+ ### Token Information
386
+ - **Token:** RENDER
387
+ - **Blockchain:** Solana
388
+ - **Mint Address:** `rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof`
389
+
390
+ ### Supported Render Engines
391
+ - OctaneRender
392
+ - Cycles (Blender)
393
+ - Redshift
394
+ - Arnold
395
+ - V-Ray
396
+ - Corona
397
+
398
+ ### Supported GPU Types
399
+ - NVIDIA RTX 4090, 4080, 3090, 3080, 3070, 3060
400
+ - NVIDIA A100, H100, A6000, A5000, A4000
401
+ - AMD RX 7900 XTX, 7900 XT
402
+
403
+ ---
404
+
405
+ ## Contributing
406
+
407
+ Contributions are welcome! Please feel free to submit a Pull Request.
408
+
409
+ 1. Fork the repository
410
+ 2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
411
+ 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
412
+ 4. Push to the branch (`git push origin feature/AmazingFeature`)
413
+ 5. Open a Pull Request
414
+
415
+ ---
416
+
417
+ ## License
418
+
419
+ This n8n community node is licensed under the **Business Source License 1.1**.
420
+
421
+ ### Free Use
422
+ Permitted for personal, educational, research, and internal business use.
423
+
424
+ ### Commercial Use
425
+ Use of this node within any SaaS, PaaS, hosted platform, managed service,
426
+ or paid automation offering requires a commercial license.
427
+
428
+ For licensing inquiries: **[licensing@velobpa.com](mailto:licensing@velobpa.com)**
429
+
430
+ See also:
431
+ - [LICENSE](LICENSE) - Full license text
432
+ - [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md) - Commercial licensing details
433
+ - [LICENSING_FAQ.md](LICENSING_FAQ.md) - Frequently asked questions
434
+
435
+ ---
436
+
437
+ ## Support
438
+
439
+ - **Documentation:** [Render Network Docs](https://render.network/docs)
440
+ - **Issues:** [GitHub Issues](https://github.com/Velocity-BPA/n8n-nodes-render/issues)
441
+ - **Website:** [velobpa.com](https://velobpa.com)
442
+ - **Licensing:** [licensing@velobpa.com](mailto:licensing@velobpa.com)
443
+
444
+ ---
445
+
446
+ ## Acknowledgments
447
+
448
+ - [Render Network](https://render.network) - Decentralized GPU rendering platform
449
+ - [n8n](https://n8n.io) - Workflow automation platform
450
+ - [Solana](https://solana.com) - High-performance blockchain
451
+
452
+ ---
453
+
454
+ **Made with ❤️ by [Velocity BPA, LLC](https://velobpa.com)**
@@ -0,0 +1,15 @@
1
+ import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ /**
3
+ * Node Operator Credentials
4
+ * Used by GPU node operators to manage their nodes on Render Network
5
+ * Handles node registration, configuration, and earnings management
6
+ */
7
+ export declare class NodeOperator implements ICredentialType {
8
+ name: string;
9
+ displayName: string;
10
+ documentationUrl: string;
11
+ properties: INodeProperties[];
12
+ authenticate: IAuthenticateGeneric;
13
+ test: ICredentialTestRequest;
14
+ }
15
+ //# sourceMappingURL=NodeOperator.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeOperator.credentials.d.ts","sourceRoot":"","sources":["../../credentials/NodeOperator.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,qBAAa,YAAa,YAAW,eAAe;IACnD,IAAI,SAAkB;IACtB,WAAW,SAA0B;IACrC,gBAAgB,SAAmD;IACnE,UAAU,EAAE,eAAe,EAAE,CA6F3B;IAEF,YAAY,EAAE,oBAAoB,CAQhC;IAEF,IAAI,EAAE,sBAAsB,CAM1B;CACF"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeOperator = void 0;
4
+ /**
5
+ * Node Operator Credentials
6
+ * Used by GPU node operators to manage their nodes on Render Network
7
+ * Handles node registration, configuration, and earnings management
8
+ */
9
+ class NodeOperator {
10
+ constructor() {
11
+ this.name = 'nodeOperator';
12
+ this.displayName = 'Render Node Operator';
13
+ this.documentationUrl = 'https://docs.rendernetwork.com/node-operators';
14
+ this.properties = [
15
+ {
16
+ displayName: 'Node Operator ID',
17
+ name: 'operatorId',
18
+ type: 'string',
19
+ default: '',
20
+ required: true,
21
+ description: 'Your unique node operator ID',
22
+ },
23
+ {
24
+ displayName: 'Node Endpoint',
25
+ name: 'nodeEndpoint',
26
+ type: 'string',
27
+ default: '',
28
+ placeholder: 'https://node.example.com:8080',
29
+ description: 'Your node\'s public endpoint URL',
30
+ },
31
+ {
32
+ displayName: 'Authentication Token',
33
+ name: 'authToken',
34
+ type: 'string',
35
+ typeOptions: {
36
+ password: true,
37
+ },
38
+ default: '',
39
+ required: true,
40
+ description: 'Node operator authentication token',
41
+ },
42
+ {
43
+ displayName: 'Operator API Endpoint',
44
+ name: 'operatorApiEndpoint',
45
+ type: 'options',
46
+ options: [
47
+ {
48
+ name: 'Production',
49
+ value: 'https://operator-api.rendernetwork.com/v1',
50
+ description: 'Production operator API',
51
+ },
52
+ {
53
+ name: 'Staging',
54
+ value: 'https://staging-operator-api.rendernetwork.com/v1',
55
+ description: 'Staging operator API',
56
+ },
57
+ {
58
+ name: 'Custom',
59
+ value: 'custom',
60
+ description: 'Custom endpoint',
61
+ },
62
+ ],
63
+ default: 'https://operator-api.rendernetwork.com/v1',
64
+ description: 'Node operator API endpoint',
65
+ },
66
+ {
67
+ displayName: 'Custom Operator API URL',
68
+ name: 'customOperatorApiUrl',
69
+ type: 'string',
70
+ default: '',
71
+ displayOptions: {
72
+ show: {
73
+ operatorApiEndpoint: ['custom'],
74
+ },
75
+ },
76
+ description: 'Custom operator API endpoint URL',
77
+ },
78
+ {
79
+ displayName: 'Node Tier',
80
+ name: 'nodeTier',
81
+ type: 'options',
82
+ options: [
83
+ {
84
+ name: 'Tier 1 - Entry Level',
85
+ value: 'tier1',
86
+ description: 'Basic GPU nodes',
87
+ },
88
+ {
89
+ name: 'Tier 2 - Standard',
90
+ value: 'tier2',
91
+ description: 'Mid-range GPU nodes',
92
+ },
93
+ {
94
+ name: 'Tier 3 - Professional',
95
+ value: 'tier3',
96
+ description: 'High-end GPU nodes',
97
+ },
98
+ {
99
+ name: 'Tier 4 - Enterprise',
100
+ value: 'tier4',
101
+ description: 'Enterprise-grade GPU clusters',
102
+ },
103
+ ],
104
+ default: 'tier2',
105
+ description: 'Your node tier level',
106
+ },
107
+ ];
108
+ this.authenticate = {
109
+ type: 'generic',
110
+ properties: {
111
+ headers: {
112
+ 'Authorization': '=Bearer {{$credentials.authToken}}',
113
+ 'X-Operator-ID': '={{$credentials.operatorId}}',
114
+ },
115
+ },
116
+ };
117
+ this.test = {
118
+ request: {
119
+ baseURL: '={{$credentials.operatorApiEndpoint === "custom" ? $credentials.customOperatorApiUrl : $credentials.operatorApiEndpoint}}',
120
+ url: '/operator/status',
121
+ method: 'GET',
122
+ },
123
+ };
124
+ }
125
+ }
126
+ exports.NodeOperator = NodeOperator;
127
+ //# sourceMappingURL=NodeOperator.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeOperator.credentials.js","sourceRoot":"","sources":["../../credentials/NodeOperator.credentials.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACH,MAAa,YAAY;IAAzB;QACC,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,sBAAsB,CAAC;QACrC,qBAAgB,GAAG,+CAA+C,CAAC;QACnE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,8BAA8B;aAC3C;YACD;gBACC,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EAAE,kCAAkC;aAC/C;YACD;gBACC,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oCAAoC;aACjD;YACD;gBACC,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,2CAA2C;wBAClD,WAAW,EAAE,yBAAyB;qBACtC;oBACD;wBACC,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,mDAAmD;wBAC1D,WAAW,EAAE,sBAAsB;qBACnC;oBACD;wBACC,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,QAAQ;wBACf,WAAW,EAAE,iBAAiB;qBAC9B;iBACD;gBACD,OAAO,EAAE,2CAA2C;gBACpD,WAAW,EAAE,4BAA4B;aACzC;YACD;gBACC,WAAW,EAAE,yBAAyB;gBACtC,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE;oBACf,IAAI,EAAE;wBACL,mBAAmB,EAAE,CAAC,QAAQ,CAAC;qBAC/B;iBACD;gBACD,WAAW,EAAE,kCAAkC;aAC/C;YACD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,sBAAsB;wBAC5B,KAAK,EAAE,OAAO;wBACd,WAAW,EAAE,iBAAiB;qBAC9B;oBACD;wBACC,IAAI,EAAE,mBAAmB;wBACzB,KAAK,EAAE,OAAO;wBACd,WAAW,EAAE,qBAAqB;qBAClC;oBACD;wBACC,IAAI,EAAE,uBAAuB;wBAC7B,KAAK,EAAE,OAAO;wBACd,WAAW,EAAE,oBAAoB;qBACjC;oBACD;wBACC,IAAI,EAAE,qBAAqB;wBAC3B,KAAK,EAAE,OAAO;wBACd,WAAW,EAAE,+BAA+B;qBAC5C;iBACD;gBACD,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,sBAAsB;aACnC;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,eAAe,EAAE,oCAAoC;oBACrD,eAAe,EAAE,8BAA8B;iBAC/C;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2HAA2H;gBACpI,GAAG,EAAE,kBAAkB;gBACvB,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AApHD,oCAoHC"}
@@ -0,0 +1,15 @@
1
+ import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ /**
3
+ * Render API Credentials
4
+ * Used for interacting with Render Network's REST API
5
+ * Handles job submission, status checking, and output retrieval
6
+ */
7
+ export declare class RenderApi implements ICredentialType {
8
+ name: string;
9
+ displayName: string;
10
+ documentationUrl: string;
11
+ properties: INodeProperties[];
12
+ authenticate: IAuthenticateGeneric;
13
+ test: ICredentialTestRequest;
14
+ }
15
+ //# sourceMappingURL=RenderApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/RenderApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,qBAAa,SAAU,YAAW,eAAe;IAChD,IAAI,SAAe;IACnB,WAAW,SAAgB;IAC3B,gBAAgB,SAAwC;IACxD,UAAU,EAAE,eAAe,EAAE,CAgE3B;IAEF,YAAY,EAAE,oBAAoB,CAQhC;IAEF,IAAI,EAAE,sBAAsB,CAM1B;CACF"}