@infiniteezverse/monskills-ezpath 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.
Files changed (56) hide show
  1. package/.well-known/agent.json +241 -0
  2. package/.well-known/openapi.json +310 -0
  3. package/ARENA.md +551 -0
  4. package/DEPLOYMENT.md +460 -0
  5. package/LAUNCH.md +345 -0
  6. package/LICENSE +24 -0
  7. package/MANIFEST.md +356 -0
  8. package/MONAD.md +375 -0
  9. package/QUICKSTART.md +378 -0
  10. package/README.md +88 -0
  11. package/X402_IMPLEMENTATION.md +468 -0
  12. package/dist/agents/arena-agent.d.ts +166 -0
  13. package/dist/agents/arena-agent.d.ts.map +1 -0
  14. package/dist/agents/arena-agent.js +267 -0
  15. package/dist/agents/arena-agent.js.map +1 -0
  16. package/dist/agents/bankroll-manager.d.ts +114 -0
  17. package/dist/agents/bankroll-manager.d.ts.map +1 -0
  18. package/dist/agents/bankroll-manager.js +293 -0
  19. package/dist/agents/bankroll-manager.js.map +1 -0
  20. package/dist/agents/index.d.ts +9 -0
  21. package/dist/agents/index.d.ts.map +1 -0
  22. package/dist/agents/index.js +29 -0
  23. package/dist/agents/index.js.map +1 -0
  24. package/dist/agents/strategy.d.ts +48 -0
  25. package/dist/agents/strategy.d.ts.map +1 -0
  26. package/dist/agents/strategy.js +265 -0
  27. package/dist/agents/strategy.js.map +1 -0
  28. package/dist/agents/types.d.ts +197 -0
  29. package/dist/agents/types.d.ts.map +1 -0
  30. package/dist/agents/types.js +7 -0
  31. package/dist/agents/types.js.map +1 -0
  32. package/dist/config/monad.d.ts +175 -0
  33. package/dist/config/monad.d.ts.map +1 -0
  34. package/dist/config/monad.js +222 -0
  35. package/dist/config/monad.js.map +1 -0
  36. package/dist/index.d.ts +47 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +153 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/payments/eip3009.d.ts +210 -0
  41. package/dist/payments/eip3009.d.ts.map +1 -0
  42. package/dist/payments/eip3009.js +261 -0
  43. package/dist/payments/eip3009.js.map +1 -0
  44. package/dist/payments/index.d.ts +8 -0
  45. package/dist/payments/index.d.ts.map +1 -0
  46. package/dist/payments/index.js +25 -0
  47. package/dist/payments/index.js.map +1 -0
  48. package/dist/payments/quote-execution.d.ts +76 -0
  49. package/dist/payments/quote-execution.d.ts.map +1 -0
  50. package/dist/payments/quote-execution.js +285 -0
  51. package/dist/payments/quote-execution.js.map +1 -0
  52. package/dist/types/ezpath.d.ts +65 -0
  53. package/dist/types/ezpath.d.ts.map +1 -0
  54. package/dist/types/ezpath.js +7 -0
  55. package/dist/types/ezpath.js.map +1 -0
  56. package/package.json +42 -0
package/QUICKSTART.md ADDED
@@ -0,0 +1,378 @@
1
+ # 🚀 Quick Start Guide
2
+
3
+ Get up and running with EZ-Path MONSKILLS in 5 minutes.
4
+
5
+ ---
6
+
7
+ ## Installation
8
+
9
+ ### Option 1: NPM (Recommended)
10
+ ```bash
11
+ npm install @infiniteezverse/monskills-ezpath
12
+ ```
13
+
14
+ ### Option 2: MONSKILLS Skill Manager
15
+ ```bash
16
+ npx skills add @infiniteezverse/monskills-ezpath
17
+ ```
18
+
19
+ ### Option 3: GitHub Direct
20
+ ```bash
21
+ npm install github:infiniteezverse/monskills-ezpath
22
+ ```
23
+
24
+ ---
25
+
26
+ ## 1️⃣ Get a Price Quote (30 seconds)
27
+
28
+ ```typescript
29
+ import { getPrice } from '@infiniteezverse/monskills-ezpath';
30
+
31
+ // Get WETH/USDC price on Base
32
+ const result = await getPrice(
33
+ 'base',
34
+ '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
35
+ '0x4200000000000000000000000000000000000006', // WETH
36
+ '1000000' // 1 USDC
37
+ );
38
+
39
+ if ('price' in result) {
40
+ console.log(`Price: ${result.price} WETH`);
41
+ console.log(`Venues: ${result.sources.join(', ')}`);
42
+ } else {
43
+ console.log(`Error: ${result.error}`);
44
+ }
45
+ ```
46
+
47
+ **Output:**
48
+ ```
49
+ Price: 0.000503 WETH
50
+ Venues: 0x, Uniswap V3, Curve
51
+ ```
52
+
53
+ ---
54
+
55
+ ## 2️⃣ Get Full Quote with All Venues (1 minute)
56
+
57
+ ```typescript
58
+ import { getQuote } from '@infiniteezverse/monskills-ezpath';
59
+
60
+ const quote = await getQuote({
61
+ chain: 'base',
62
+ sellToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
63
+ buyToken: '0x4200000000000000000000000000000000000006',
64
+ sellAmount: '1000000',
65
+ slippagePercentage: 0.5,
66
+ });
67
+
68
+ if (quote.success && quote.data) {
69
+ console.log(`Best price: ${quote.data.price}`);
70
+ console.log(`Best venue: ${quote.data.routingEngine}`);
71
+ console.log(`All venues: ${quote.data.sources.length}`);
72
+
73
+ quote.data.sources.forEach(venue => {
74
+ console.log(` ${venue.name}: ${venue.buyAmount}`);
75
+ });
76
+ } else if (quote.paymentRequired) {
77
+ console.log(`Payment required: $${quote.estimatedFee?.usd} USDC`);
78
+ } else {
79
+ console.log(`Error: ${quote.error}`);
80
+ }
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 3️⃣ Portfolio Valuation (2 minutes)
86
+
87
+ ```typescript
88
+ import { batchQuotes } from '@infiniteezverse/monskills-ezpath';
89
+
90
+ // Value multiple tokens at once
91
+ const requests = [
92
+ {
93
+ chain: 'base',
94
+ sellToken: '0x4200000000000000000000000000000000000006', // WETH
95
+ buyToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
96
+ sellAmount: '1000000000000000000', // 1 WETH (18 decimals)
97
+ },
98
+ {
99
+ chain: 'base',
100
+ sellToken: '0x50c5725949A6F0c72EC20E08a6DE0146F30F1F75', // USDbC
101
+ buyToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
102
+ sellAmount: '1000000', // 1 USDbC (6 decimals)
103
+ },
104
+ ];
105
+
106
+ const results = await batchQuotes(requests);
107
+
108
+ let totalValue = 0n;
109
+ results.forEach((result, index) => {
110
+ if (result.success && result.data) {
111
+ const value = BigInt(result.data.buyAmount);
112
+ totalValue += value;
113
+ console.log(`Token ${index + 1}: $${Number(value) / 1e6} USDC`);
114
+ }
115
+ });
116
+
117
+ console.log(`Total: $${Number(totalValue) / 1e6} USDC`);
118
+ ```
119
+
120
+ ---
121
+
122
+ ## 4️⃣ Create Arena Agent (3 minutes)
123
+
124
+ ```typescript
125
+ import { Agent } from '@infiniteezverse/monskills-ezpath/dist/agents';
126
+
127
+ // Create agent
128
+ const agent = new Agent({
129
+ id: 'my-agent-001',
130
+ name: 'MyAgent',
131
+ address: '0x1234567890123456789012345678901234567890',
132
+ chain: 'monad',
133
+ bankrollToken: '0x4200000000000000000000000000000000000006', // WETH
134
+ initialBankroll: BigInt('10000000000000000000'), // 10 WETH
135
+ minimumBankroll: BigInt('500000000000000000'), // 0.5 WETH
136
+ skillLevel: 'advanced',
137
+ strategy: 'balanced',
138
+ });
139
+
140
+ // Check status
141
+ const status = await agent.getStatus();
142
+ console.log(`Bankroll: ${status.bankroll.inUSDC} USDC`);
143
+ console.log(`Health: ${status.risk.healthScore}/100`);
144
+ console.log(`Strategy: ${status.strategy.recommended}`);
145
+ ```
146
+
147
+ ---
148
+
149
+ ## 5️⃣ X402 Payment Execution (4 minutes)
150
+
151
+ ```typescript
152
+ import { QuoteExecutor } from '@infiniteezverse/monskills-ezpath/dist/payments';
153
+ import { ethers } from 'ethers';
154
+
155
+ // Setup signer
156
+ const signer = new ethers.Wallet(process.env.AGENT_PRIVATE_KEY);
157
+
158
+ // Create executor
159
+ const executor = new QuoteExecutor('https://ezpath.myezverse.xyz', {
160
+ agentAddress: signer.address,
161
+ signingFunction: async (message) => {
162
+ return await signer.signTypedData(
163
+ {
164
+ name: 'USD Coin',
165
+ version: '2',
166
+ chainId: 8453,
167
+ verifyingContract: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
168
+ },
169
+ {
170
+ TransferWithAuthorization: [
171
+ { name: 'from', type: 'address' },
172
+ { name: 'to', type: 'address' },
173
+ { name: 'value', type: 'uint256' },
174
+ { name: 'validAfter', type: 'uint256' },
175
+ { name: 'validBefore', type: 'uint256' },
176
+ { name: 'nonce', type: 'bytes32' },
177
+ ],
178
+ },
179
+ message
180
+ );
181
+ },
182
+ });
183
+
184
+ // Execute quote with automatic payment
185
+ const result = await executor.executeQuote({
186
+ chain: 'base',
187
+ sellToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
188
+ buyToken: '0x4200000000000000000000000000000000000006',
189
+ sellAmount: '1000000',
190
+ });
191
+
192
+ if (result.success) {
193
+ console.log(`Quote: ${result.data?.price}`);
194
+ console.log(`Settlement: ${result.data?.settlement_tx}`);
195
+ } else {
196
+ console.log(`Failed: ${result.error}`);
197
+ }
198
+ ```
199
+
200
+ ---
201
+
202
+ ## Chains
203
+
204
+ ### Live Now ✅
205
+ - **Base** (0x4200000000000000000000000000000000000006 = WETH)
206
+ - **Monad** (same token addresses)
207
+
208
+ ### Coming Soon 🚧
209
+ - Arbitrum
210
+ - Optimism
211
+ - Polygon
212
+
213
+ ---
214
+
215
+ ## Common Tasks
216
+
217
+ ### 1. Check Agent Status
218
+ ```typescript
219
+ const status = await agent.getStatus();
220
+ console.log(JSON.stringify(status, null, 2));
221
+ ```
222
+
223
+ ### 2. Join Tournament
224
+ ```typescript
225
+ const joined = await agent.joinTournament(tournament, buyinAmount);
226
+ if (joined) console.log('Joined!');
227
+ ```
228
+
229
+ ### 3. Get Strategy Recommendation
230
+ ```typescript
231
+ const strategy = await agent.getStrategyRecommendation();
232
+ console.log(`Recommended: ${strategy.recommendedStrategy}`);
233
+ ```
234
+
235
+ ### 4. Value Bankroll
236
+ ```typescript
237
+ const metrics = await agent.getMetrics();
238
+ console.log(`Bankroll: ${metrics.valueInUSDC} USDC`);
239
+ console.log(`Buyins: ${metrics.buyinsRemaining}`);
240
+ console.log(`Risk: ${(metrics.riskOfRuin * 100).toFixed(1)}%`);
241
+ ```
242
+
243
+ ---
244
+
245
+ ## API Reference
246
+
247
+ ### getPrice(chain, sellToken, buyToken, amount)
248
+ **Quick price lookup**
249
+ - Returns: `{price, sources}` or `{error}`
250
+ - Use for: Fast quotes without venue details
251
+
252
+ ### getQuote(request)
253
+ **Full quote with all venues**
254
+ - Returns: `{success, data, error, paymentRequired}`
255
+ - Use for: Detailed quotes with settlement_tx
256
+
257
+ ### batchQuotes(requests)
258
+ **Multiple quotes in parallel**
259
+ - Returns: `QuoteResult[]`
260
+ - Use for: Portfolio valuation, multiple pairs
261
+
262
+ ### Agent (class)
263
+ **Tournament competition agent**
264
+ - Methods: `joinTournament()`, `getStatus()`, `getStrategyRecommendation()`, `getMetrics()`
265
+ - Use for: Arena competition, bankroll management
266
+
267
+ ### QuoteExecutor (class)
268
+ **X402 payment-enabled quote execution**
269
+ - Methods: `executeQuote()`
270
+ - Use for: Quotes requiring payment, settlement execution
271
+
272
+ ---
273
+
274
+ ## Error Handling
275
+
276
+ ```typescript
277
+ const result = await getQuote(request);
278
+
279
+ if (result.paymentRequired) {
280
+ // Quote requires payment (402 response)
281
+ console.log(`Pay: ${result.estimatedFee?.usd} USDC`);
282
+ } else if (result.success) {
283
+ // Quote successful
284
+ console.log(`Price: ${result.data?.price}`);
285
+ } else {
286
+ // Error
287
+ console.log(`Error: ${result.error}`);
288
+ }
289
+ ```
290
+
291
+ ---
292
+
293
+ ## Monad Optimization
294
+
295
+ If running on **Monad**, you get:
296
+ - ✅ 3x faster quotes (0.7s block time)
297
+ - ✅ Real-time monitoring (every block)
298
+ - ✅ High-frequency trading ready (10,000 TPS)
299
+
300
+ ```typescript
301
+ import { MONAD_CONFIG } from '@infiniteezverse/monskills-ezpath/dist/config/monad';
302
+
303
+ // Use Monad RPC
304
+ const rpc = await getMonadRPC();
305
+
306
+ // Monad-specific venues
307
+ const venues = MONAD_CONFIG.venues;
308
+ console.log(`Aerodrome priority: ${venues.aerodrome.priority}`);
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Examples
314
+
315
+ Run complete working examples:
316
+
317
+ ```bash
318
+ # Basic usage
319
+ npx ts-node examples/agent-usage.ts
320
+
321
+ # Arena tournament
322
+ npx ts-node examples/arena-agent-template.ts
323
+
324
+ # Portfolio valuation
325
+ npx ts-node examples/portfolio-valuation.ts
326
+
327
+ # Monad optimization
328
+ npx ts-node examples/monad-agent.ts
329
+
330
+ # X402 payments
331
+ npx ts-node examples/x402-payment.ts
332
+ ```
333
+
334
+ ---
335
+
336
+ ## Full Documentation
337
+
338
+ - **Installation & Integration:** [MANIFEST.md](MANIFEST.md)
339
+ - **Monad-specific features:** [MONAD.md](MONAD.md)
340
+ - **Arena agent framework:** [ARENA.md](ARENA.md)
341
+ - **X402 payment implementation:** [X402_IMPLEMENTATION.md](X402_IMPLEMENTATION.md)
342
+ - **Deployment guide:** [DEPLOYMENT.md](DEPLOYMENT.md)
343
+
344
+ ---
345
+
346
+ ## Troubleshooting
347
+
348
+ ### "Cannot find module '@infiniteezverse/monskills-ezpath'"
349
+ ```bash
350
+ # Make sure you installed it
351
+ npm install @infiniteezverse/monskills-ezpath
352
+
353
+ # Or use directly from GitHub
354
+ npm install github:infiniteezverse/monskills-ezpath
355
+ ```
356
+
357
+ ### "Payment signature invalid"
358
+ - Check your private key is correct
359
+ - Verify agent address matches signer
360
+ - Ensure USDC domain is correct (0x8335... on Base)
361
+
362
+ ### "Quote timeout"
363
+ - Increase timeout in executor options
364
+ - Check network connectivity
365
+ - Try fallback RPC endpoint
366
+
367
+ ---
368
+
369
+ ## Support
370
+
371
+ - 📖 Documentation: https://github.com/infiniteezverse/monskills-ezpath
372
+ - 💬 Discord: https://discord.gg/monad
373
+ - 🐦 Twitter: @infiniteezverse
374
+ - 🐛 Issues: https://github.com/infiniteezverse/monskills-ezpath/issues
375
+
376
+ ---
377
+
378
+ **You're ready! Start building agents on Monad! 🚀**
package/README.md ADDED
@@ -0,0 +1,88 @@
1
+ # EZ-Path MONSKILLS Skill
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@infiniteezverse/monskills-ezpath.svg)](https://www.npmjs.com/package/@infiniteezverse/monskills-ezpath)
4
+ [![GitHub](https://img.shields.io/badge/github-infiniteezverse%2Fmonskills--ezpath-blue)](https://github.com/infiniteezverse/monskills-ezpath)
5
+
6
+ A MONSKILLS skill exposing **EZ-Path** DEX routing to AI agents building on Monad, Base, and other EVM chains.
7
+
8
+ **Agentic Monad Price Racing Orchestration of Diverse Aggregators** — Races 10 DEX venues simultaneously and returns the best price.
9
+
10
+ ## What is EZ-Path?
11
+
12
+ - 🏎️ **Races 10 DEX venues** simultaneously (0x, ParaSwap, Aerodrome, Uniswap V3, Curve, Balancer, Uniswap V2, 1Inch, CoW, Synthetix)
13
+ - 💰 **Returns the best price** (highest buyAmount)
14
+ - 🔐 **No API key required** — Payment via X402 EIP-3009 USDC
15
+ - ⚡ **Sub-2 second quotes**
16
+
17
+ Live: https://ezpath.myezverse.xyz
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npx skills add @infiniteezverse/monskills-ezpath
23
+ npm install @infiniteezverse/monskills-ezpath
24
+ ```
25
+
26
+ ## Quick Start
27
+
28
+ ```typescript
29
+ import { getPrice } from '@infiniteezverse/monskills-ezpath';
30
+
31
+ const result = await getPrice(
32
+ 'base',
33
+ '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC
34
+ '0x4200000000000000000000000000000000000006', // WETH
35
+ '1000000' // 1 USDC
36
+ );
37
+
38
+ if ('price' in result) {
39
+ console.log(`Price: ${result.price}`);
40
+ console.log(`Sources: ${result.sources.join(', ')}`);
41
+ }
42
+ ```
43
+
44
+ ## API
45
+
46
+ - `getPrice(chain, sellToken, buyToken, amount)` — Quick price lookup
47
+ - `getQuote(request)` — Full quote with venue details
48
+ - `batchQuotes(requests)` — Multiple quotes in parallel
49
+
50
+ ## Chains
51
+
52
+ | Chain | Status |
53
+ |-------|--------|
54
+ | Base | ✅ Live |
55
+ | Monad | ✅ Live |
56
+ | Arbitrum, Optimism, Polygon | 🚧 Soon |
57
+
58
+ ## Pricing
59
+
60
+ | Tier | Cost | Features |
61
+ |------|------|----------|
62
+ | Basic | $0.03 | Direct 0x |
63
+ | Resilient | $0.10 | 4-venue race |
64
+ | Institutional | $0.50 | 10-venue race |
65
+
66
+ Payment via X402 USDC on Base.
67
+
68
+ ## Use Cases
69
+
70
+ ✅ Agent swaps with real DEX pricing
71
+ ✅ Portfolio valuation
72
+ ✅ Arbitrage detection
73
+ ✅ Arena agent bankroll management
74
+
75
+ ## Links
76
+
77
+ - 🌐 https://ezpath.myezverse.xyz
78
+ - 📖 https://ezpath.myezverse.xyz/openapi.json
79
+ - 🤖 https://ezpath.myezverse.xyz/.well-known/agent.json
80
+ - 💬 https://discord.gg/monad
81
+
82
+ ## License
83
+
84
+ MIT
85
+
86
+ ---
87
+
88
+ **Made for agents, by builders.** 🚀