n8n-nodes-dexpaprika 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CoinPaprika
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,43 @@
1
+ # n8n-nodes-dexpaprika
2
+
3
+ [![npm version](https://img.shields.io/npm/v/n8n-nodes-dexpaprika)](https://www.npmjs.com/package/n8n-nodes-dexpaprika)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ An [n8n](https://n8n.io) community node for [DexPaprika](https://dexpaprika.com): keyless, real-time DEX and on-chain market data across 36 blockchains. No API key, no signup.
7
+
8
+ The node works as a normal n8n node and as an [AI Agent tool](https://docs.n8n.io/advanced-ai/), so your AI Agent can query live DeFi data directly.
9
+
10
+ ## Installation
11
+
12
+ In n8n, go to **Settings > Community Nodes > Install**, enter `n8n-nodes-dexpaprika`, and confirm. See the [n8n community nodes docs](https://docs.n8n.io/integrations/community-nodes/installation/) for details.
13
+
14
+ ## Operations
15
+
16
+ **Token**
17
+ - **Search** - find tokens, pools, and DEXes across all networks by name, symbol, or address
18
+ - **Get Details** - price and metadata for one token on one network
19
+ - **Get Prices (Batch)** - USD prices for up to 10 tokens on the same network
20
+ - **Get Top Tokens** - top tokens on a network by volume
21
+
22
+ **Pool**
23
+ - **Get Top Pools** - top pools on a network by volume
24
+ - **Get Details** - full details for one pool
25
+ - **Get OHLCV** - historical candles for one pool (1m to 24h intervals)
26
+
27
+ **Network**
28
+ - **List Networks** - every supported blockchain network
29
+ - **List DEXes** - DEXes on a network
30
+ - **Get Stats** - platform-wide totals (chains, DEXes, pools, tokens)
31
+
32
+ ## Credentials
33
+
34
+ None. The DexPaprika API is keyless for public read access. A free registered key or Pro plan raises your rate and monthly quota; see the [rate limits](https://docs.dexpaprika.com/knowledge-base/rate-limits).
35
+
36
+ ## Resources
37
+
38
+ - [DexPaprika in n8n](https://docs.dexpaprika.com/ai-integration/n8n)
39
+ - [DexPaprika API docs](https://docs.dexpaprika.com)
40
+
41
+ ## License
42
+
43
+ [MIT](LICENSE)
@@ -0,0 +1,4 @@
1
+ import type { INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class DexPaprika implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DexPaprika = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ // Declarative node: every operation maps to a keyless GET on the public
6
+ // DexPaprika REST API (https://api.dexpaprika.com). No credentials required.
7
+ class DexPaprika {
8
+ constructor() {
9
+ this.description = {
10
+ displayName: 'DexPaprika',
11
+ name: 'dexPaprika',
12
+ icon: { light: 'file:dexpaprika.svg', dark: 'file:dexpaprika.dark.svg' },
13
+ group: ['transform'],
14
+ version: 1,
15
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
16
+ description: 'Real-time DEX and on-chain market data across 36 blockchains: pools, token prices, OHLCV, and search. Keyless.',
17
+ defaults: {
18
+ name: 'DexPaprika',
19
+ },
20
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
22
+ usableAsTool: true,
23
+ requestDefaults: {
24
+ baseURL: 'https://api.dexpaprika.com',
25
+ headers: {
26
+ Accept: 'application/json',
27
+ },
28
+ },
29
+ properties: [
30
+ {
31
+ displayName: 'Resource',
32
+ name: 'resource',
33
+ type: 'options',
34
+ noDataExpression: true,
35
+ options: [
36
+ { name: 'Token', value: 'token' },
37
+ { name: 'Pool', value: 'pool' },
38
+ { name: 'Network', value: 'network' },
39
+ ],
40
+ default: 'token',
41
+ },
42
+ // ─── Token operations ────────────────────────────────────────────
43
+ {
44
+ displayName: 'Operation',
45
+ name: 'operation',
46
+ type: 'options',
47
+ noDataExpression: true,
48
+ displayOptions: { show: { resource: ['token'] } },
49
+ options: [
50
+ {
51
+ name: 'Search',
52
+ value: 'search',
53
+ action: 'Search tokens pools and exchanges across all networks',
54
+ routing: { request: { method: 'GET', url: '/search' } },
55
+ },
56
+ {
57
+ name: 'Get Details',
58
+ value: 'getDetails',
59
+ action: 'Get price and metadata for one token',
60
+ routing: {
61
+ request: {
62
+ method: 'GET',
63
+ url: '=/networks/{{$parameter.network}}/tokens/{{$parameter.contractAddress}}',
64
+ },
65
+ },
66
+ },
67
+ {
68
+ name: 'Get Prices (Batch)',
69
+ value: 'getPrices',
70
+ action: 'Get USD prices for up to 10 tokens on one network',
71
+ routing: {
72
+ request: {
73
+ method: 'GET',
74
+ url: '=/networks/{{$parameter.network}}/multi/prices',
75
+ },
76
+ },
77
+ },
78
+ {
79
+ name: 'Get Top Tokens',
80
+ value: 'getTop',
81
+ action: 'Get top tokens on a network by volume',
82
+ routing: {
83
+ request: {
84
+ method: 'GET',
85
+ url: '=/networks/{{$parameter.network}}/tokens/search',
86
+ },
87
+ },
88
+ },
89
+ ],
90
+ default: 'search',
91
+ },
92
+ // ─── Pool operations ─────────────────────────────────────────────
93
+ {
94
+ displayName: 'Operation',
95
+ name: 'operation',
96
+ type: 'options',
97
+ noDataExpression: true,
98
+ displayOptions: { show: { resource: ['pool'] } },
99
+ options: [
100
+ {
101
+ name: 'Get Top Pools',
102
+ value: 'getTop',
103
+ action: 'Get top pools on a network by volume',
104
+ routing: {
105
+ request: {
106
+ method: 'GET',
107
+ url: '=/networks/{{$parameter.network}}/pools/search',
108
+ },
109
+ },
110
+ },
111
+ {
112
+ name: 'Get Details',
113
+ value: 'getDetails',
114
+ action: 'Get details for one pool',
115
+ routing: {
116
+ request: {
117
+ method: 'GET',
118
+ url: '=/networks/{{$parameter.network}}/pools/{{$parameter.poolAddress}}',
119
+ },
120
+ },
121
+ },
122
+ {
123
+ name: 'Get OHLCV',
124
+ value: 'getOhlcv',
125
+ action: 'Get historical OHLCV candles for one pool',
126
+ routing: {
127
+ request: {
128
+ method: 'GET',
129
+ url: '=/networks/{{$parameter.network}}/pools/{{$parameter.poolAddress}}/ohlcv',
130
+ },
131
+ },
132
+ },
133
+ ],
134
+ default: 'getTop',
135
+ },
136
+ // ─── Network operations ──────────────────────────────────────────
137
+ {
138
+ displayName: 'Operation',
139
+ name: 'operation',
140
+ type: 'options',
141
+ noDataExpression: true,
142
+ displayOptions: { show: { resource: ['network'] } },
143
+ options: [
144
+ {
145
+ name: 'List Networks',
146
+ value: 'list',
147
+ action: 'List all supported blockchain networks',
148
+ routing: { request: { method: 'GET', url: '/networks' } },
149
+ },
150
+ {
151
+ name: 'List DEXes',
152
+ value: 'listDexes',
153
+ action: 'List exchanges on a network',
154
+ routing: {
155
+ request: { method: 'GET', url: '=/networks/{{$parameter.network}}/dexes' },
156
+ },
157
+ },
158
+ {
159
+ name: 'Get Stats',
160
+ value: 'stats',
161
+ action: 'Get platform statistics',
162
+ routing: { request: { method: 'GET', url: '/stats' } },
163
+ },
164
+ ],
165
+ default: 'list',
166
+ },
167
+ // ─── Shared: network id ──────────────────────────────────────────
168
+ {
169
+ displayName: 'Network',
170
+ name: 'network',
171
+ type: 'string',
172
+ default: 'ethereum',
173
+ required: true,
174
+ placeholder: 'ethereum',
175
+ description: 'Network ID (e.g. \'ethereum\', \'solana\', \'base\'). List them with the Network resource.',
176
+ displayOptions: {
177
+ show: {
178
+ resource: ['token', 'pool'],
179
+ },
180
+ hide: {
181
+ operation: ['search'],
182
+ },
183
+ },
184
+ },
185
+ {
186
+ displayName: 'Network',
187
+ name: 'network',
188
+ type: 'string',
189
+ default: 'ethereum',
190
+ required: true,
191
+ placeholder: 'ethereum',
192
+ description: 'Network ID (e.g. \'ethereum\', \'solana\', \'base\')',
193
+ displayOptions: {
194
+ show: {
195
+ resource: ['network'],
196
+ operation: ['listDexes'],
197
+ },
198
+ },
199
+ },
200
+ // ─── Token params ────────────────────────────────────────────────
201
+ {
202
+ displayName: 'Query',
203
+ name: 'query',
204
+ type: 'string',
205
+ default: '',
206
+ required: true,
207
+ placeholder: 'WETH',
208
+ description: 'Token name, symbol, or address to search for',
209
+ displayOptions: { show: { resource: ['token'], operation: ['search'] } },
210
+ routing: { send: { type: 'query', property: 'query' } },
211
+ },
212
+ {
213
+ displayName: 'Token Address',
214
+ name: 'contractAddress',
215
+ type: 'string',
216
+ default: '',
217
+ required: true,
218
+ placeholder: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
219
+ description: 'Token contract address on the given network',
220
+ displayOptions: { show: { resource: ['token'], operation: ['getDetails'] } },
221
+ },
222
+ {
223
+ displayName: 'Token Addresses',
224
+ name: 'contractAddresses',
225
+ type: 'string',
226
+ default: '',
227
+ required: true,
228
+ placeholder: '0xabc...,0xdef...',
229
+ description: 'Comma-separated token addresses (up to 10) on the same network',
230
+ displayOptions: { show: { resource: ['token'], operation: ['getPrices'] } },
231
+ routing: { send: { type: 'query', property: 'tokens' } },
232
+ },
233
+ // ─── Pool params ─────────────────────────────────────────────────
234
+ {
235
+ displayName: 'Pool Address',
236
+ name: 'poolAddress',
237
+ type: 'string',
238
+ default: '',
239
+ required: true,
240
+ placeholder: '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640',
241
+ description: 'Pool contract address on the given network',
242
+ displayOptions: {
243
+ show: { resource: ['pool'], operation: ['getDetails', 'getOhlcv'] },
244
+ },
245
+ },
246
+ {
247
+ displayName: 'Start',
248
+ name: 'start',
249
+ type: 'string',
250
+ default: '',
251
+ required: true,
252
+ placeholder: '2026-01-01',
253
+ description: 'Start of the OHLCV range (YYYY-MM-DD, RFC3339, or Unix timestamp)',
254
+ displayOptions: { show: { resource: ['pool'], operation: ['getOhlcv'] } },
255
+ routing: { send: { type: 'query', property: 'start' } },
256
+ },
257
+ {
258
+ displayName: 'Interval',
259
+ name: 'interval',
260
+ type: 'options',
261
+ default: '24h',
262
+ options: [
263
+ { name: '1 Hour', value: '1h' },
264
+ { name: '1 Minute', value: '1m' },
265
+ { name: '12 Hours', value: '12h' },
266
+ { name: '15 Minutes', value: '15m' },
267
+ { name: '24 Hours', value: '24h' },
268
+ { name: '30 Minutes', value: '30m' },
269
+ { name: '5 Minutes', value: '5m' },
270
+ { name: '6 Hours', value: '6h' },
271
+ ],
272
+ displayOptions: { show: { resource: ['pool'], operation: ['getOhlcv'] } },
273
+ routing: { send: { type: 'query', property: 'interval' } },
274
+ },
275
+ // ─── Shared: limit (list operations) ─────────────────────────────
276
+ {
277
+ displayName: 'Limit',
278
+ name: 'limit',
279
+ type: 'number',
280
+ typeOptions: { minValue: 1, maxValue: 100 },
281
+ default: 50,
282
+ description: 'Max number of results to return',
283
+ displayOptions: {
284
+ show: {
285
+ resource: ['token', 'pool'],
286
+ operation: ['getTop', 'getOhlcv'],
287
+ },
288
+ },
289
+ routing: { send: { type: 'query', property: 'limit' } },
290
+ },
291
+ ],
292
+ };
293
+ }
294
+ }
295
+ exports.DexPaprika = DexPaprika;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64"><rect width="64" height="64" rx="14" fill="#00FF75"/><path d="M22 16h11c9.4 0 16 6.6 16 16s-6.6 16-16 16H22V16Zm9 24c5.5 0 9-3.3 9-8s-3.5-8-9-8h-1v16h1Z" fill="#0b2018"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64"><rect width="64" height="64" rx="14" fill="#00A84E"/><path d="M22 16h11c9.4 0 16 6.6 16 16s-6.6 16-16 16H22V16Zm9 24c5.5 0 9-3.3 9-8s-3.5-8-9-8h-1v16h1Z" fill="#ffffff"/></svg>
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "n8n-nodes-dexpaprika",
3
+ "version": "0.1.0",
4
+ "description": "n8n community node for DexPaprika: keyless real-time DEX and on-chain market data across 36 blockchains (pools, token prices, OHLCV, search).",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "dexpaprika",
9
+ "crypto",
10
+ "cryptocurrency",
11
+ "defi",
12
+ "dex",
13
+ "blockchain",
14
+ "market-data"
15
+ ],
16
+ "license": "MIT",
17
+ "homepage": "https://docs.dexpaprika.com/ai-integration/n8n",
18
+ "author": {
19
+ "name": "CoinPaprika",
20
+ "email": "support@coinpaprika.com"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/coinpaprika/n8n-nodes-dexpaprika.git"
25
+ },
26
+ "engines": {
27
+ "node": ">=20.15"
28
+ },
29
+ "main": "index.js",
30
+ "scripts": {
31
+ "build": "n8n-node build",
32
+ "dev": "n8n-node dev",
33
+ "lint": "n8n-node lint",
34
+ "lint:fix": "n8n-node lint --fix",
35
+ "prepublishOnly": "n8n-node prerelease"
36
+ },
37
+ "files": [
38
+ "dist"
39
+ ],
40
+ "n8n": {
41
+ "n8nNodesApiVersion": 1,
42
+ "nodes": [
43
+ "dist/nodes/DexPaprika/DexPaprika.node.js"
44
+ ]
45
+ },
46
+ "peerDependencies": {
47
+ "n8n-workflow": "*"
48
+ },
49
+ "devDependencies": {
50
+ "@n8n/node-cli": "*",
51
+ "typescript": "^5.9.3"
52
+ }
53
+ }