@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.
- package/.well-known/agent.json +241 -0
- package/.well-known/openapi.json +310 -0
- package/ARENA.md +551 -0
- package/DEPLOYMENT.md +460 -0
- package/LAUNCH.md +345 -0
- package/LICENSE +24 -0
- package/MANIFEST.md +356 -0
- package/MONAD.md +375 -0
- package/QUICKSTART.md +378 -0
- package/README.md +88 -0
- package/X402_IMPLEMENTATION.md +468 -0
- package/dist/agents/arena-agent.d.ts +166 -0
- package/dist/agents/arena-agent.d.ts.map +1 -0
- package/dist/agents/arena-agent.js +267 -0
- package/dist/agents/arena-agent.js.map +1 -0
- package/dist/agents/bankroll-manager.d.ts +114 -0
- package/dist/agents/bankroll-manager.d.ts.map +1 -0
- package/dist/agents/bankroll-manager.js +293 -0
- package/dist/agents/bankroll-manager.js.map +1 -0
- package/dist/agents/index.d.ts +9 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +29 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/strategy.d.ts +48 -0
- package/dist/agents/strategy.d.ts.map +1 -0
- package/dist/agents/strategy.js +265 -0
- package/dist/agents/strategy.js.map +1 -0
- package/dist/agents/types.d.ts +197 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +7 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/config/monad.d.ts +175 -0
- package/dist/config/monad.d.ts.map +1 -0
- package/dist/config/monad.js +222 -0
- package/dist/config/monad.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +153 -0
- package/dist/index.js.map +1 -0
- package/dist/payments/eip3009.d.ts +210 -0
- package/dist/payments/eip3009.d.ts.map +1 -0
- package/dist/payments/eip3009.js +261 -0
- package/dist/payments/eip3009.js.map +1 -0
- package/dist/payments/index.d.ts +8 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +25 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/quote-execution.d.ts +76 -0
- package/dist/payments/quote-execution.d.ts.map +1 -0
- package/dist/payments/quote-execution.js +285 -0
- package/dist/payments/quote-execution.js.map +1 -0
- package/dist/types/ezpath.d.ts +65 -0
- package/dist/types/ezpath.d.ts.map +1 -0
- package/dist/types/ezpath.js +7 -0
- package/dist/types/ezpath.js.map +1 -0
- 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
|
+
[](https://www.npmjs.com/package/@infiniteezverse/monskills-ezpath)
|
|
4
|
+
[](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.** 🚀
|