feat: add jupiter-api + jupiter-lend — Solana DEX aggregator and lending#19
feat: add jupiter-api + jupiter-lend — Solana DEX aggregator and lending#19tonyagents wants to merge 7 commits intomoonpay:mainfrom
Conversation
kevarifin14
left a comment
There was a problem hiding this comment.
Review: PR #19 — Jupiter Skills (integrating-jupiter, jupiter-lend)
Grade: C (Needs work)
The Jupiter APIs and SDKs referenced here are real and well-documented — this is clearly sourced from the official jup-ag repo. However, the skills as submitted have several structural issues that prevent merging per the repo's rubric.
Issues to Fix
1. Code in a no-code repo (both skills) — HIGH
The repo's core rule is: "Skills are instructional guides. No Python scripts, no TypeScript SDK code, no subprocess.run. All execution happens through CLIs."
integrating-jupitercontains ~100 lines of TypeScript: ajupiterFetchhelper,signAndSendfunction,JupiterResultinterface,jupiterActionfunction, andwithRetryhelper. These are SDK/code patterns, not CLI-based agent instructions.jupiter-lendis almost entirely TypeScript SDK code (~400 lines): full working scripts withimportstatements,Keypairhandling, transaction building, etc.
Skills should instruct agents to use CLI commands or API calls (curl), not provide TypeScript SDK code for agents to embed. Convert the SDK examples into curl-based API workflows or reference the SDK docs without inlining the code.
2. Naming convention: integrating-jupiter (LOW)
The convention is skills/{partner}-{name}/. The name integrating-jupiter reads as {verb}-{partner} rather than {partner}-{name}. Consider jupiter-api or jupiter-integration to match the pattern (partner first).
3. Phantom file references in integrating-jupiter (MEDIUM)
The skill references four example files that are not included in the PR:
./examples/ultra.md./examples/lend.md./examples/trigger.md./examples/price.md
Either include these files or remove the references. Broken links make the skill unreliable for agents.
4. Missing Prerequisites section in integrating-jupiter (MEDIUM)
The template requires a Prerequisites section listing setup requirements (API keys, CLI installs, funded wallets). integrating-jupiter mentions the API key requirement inline but lacks a dedicated Prerequisites section. jupiter-lend also lacks one (should mention npm install @jup-ag/lend @jup-ag/lend-read, Solana wallet, RPC endpoint).
5. No cross-references to existing skills (LOW)
Neither skill references related skills in this repo. For example:
moonpay-buy-cryptoormoonpay-check-walletfor funding a Solana walletmoonpay-swap-tokensfor non-Jupiter swaps
6. Security warnings missing (MEDIUM)
Both skills handle private keys (Keypair, loadKeypair from file) with no security warnings about key exposure. The rubric requires: "No raw private key handling without warnings."
integrating-jupiter:signAndSendtakes aKeypairdirectlyjupiter-lend:loadKeypairreads a secret key from disk with no caveats
7. Missing newline at end of file (TRIVIAL)
integrating-jupiter/SKILL.md is missing a trailing newline.
What's Good
- marketplace.json: Correctly structured in a separate
jupiter-skillsplugin block - Real packages:
@jup-ag/lend(0.1.8) and@jup-ag/lend-read(0.0.11) both verified on npm - Real APIs: All Jupiter API endpoints return 401 (API key required, as documented). Documentation URLs at dev.jup.ag are live
- Real repos: jup-ag/jup-lock, jup-ag/rfq-webhook-toolkit, jup-ag/agent-skills all exist
- Clean diff: Only touches the 3 expected files, no unrelated changes
- Comprehensive content: The API coverage is thorough and well-organized
Summary
The content quality is high — clearly from the official Jupiter team. The main blocker is that both skills are SDK code guides rather than CLI/API-based agent instructions, which violates the repo's core "no code" rule. Converting the TypeScript examples to curl-based API workflows (where REST APIs exist) and referencing the SDK docs (where only SDK access exists, like jupiter-lend) would bring this close to A+.
Suggested path forward:
- Convert
integrating-jupiterto pure curl/API instruction format (remove all TypeScript) - For
jupiter-lend, since it's SDK-only with no REST API for most operations, consider whether this fits the skills format at all — or restructure to reference the SDK docs rather than inline the code - Add Prerequisites sections, security warnings, cross-references, and fix phantom example links
…guide + security warning
kevarifin14
left a comment
There was a problem hiding this comment.
Review — Grade: C+
Good progress from the previous review — TypeScript code is removed from the main skill, naming convention is fixed (jupiter-api), Prerequisites sections added, security warnings present in jupiter-lend, and the marketplace.json has its own plugin block. However, there are critical new issues that need fixing before this can be approved.
Critical Issues
1. API key is now required — skill claims otherwise
All Jupiter APIs at api.jup.ag now require an x-api-key header. You can generate a free key at portal.jup.ag. The skill states "No API key required for most endpoints" — this is false and every curl example will return 401 Unauthorized as-is.
Fix: Add an API key setup step to Prerequisites and include -H "x-api-key: YOUR_API_KEY" in every curl example. Update the intro to remove the "no API key required" claim.
2. Outdated API versions
Jupiter has updated several API paths since these were written:
| Skill uses | Current version |
|---|---|
/ultra/v1/order |
/swap/v2/order |
/price/v2 |
/price/v3 |
/tokens/v1 |
/tokens/v2 |
/trigger/v1 |
/trigger/v2 |
Fix: Update all endpoint paths to the current versions per dev.jup.ag. The Swap API V2 is the recommended replacement for Ultra V1.
3. jupiter-lend links to wrong repo
The skill links to https://github.com/jup-ag/jup-lock as "Full SDK docs" — that repo is for Jupiter's lockup/vesting program, not the Lend SDK. This will confuse users.
Fix: Find the correct Lend SDK documentation or remove the link. If no public docs exist, note that and link to Jupiter's main dev docs instead.
4. @jup-ag/lend-read has Proprietary license
The @jup-ag/lend-read package is published under a Proprietary license (not MIT). The PR description and repo claim MIT licensing across all skills. This needs to be disclosed or the package reference reconsidered.
Minor Issues
- jupiter-lend description still says "Uses the @jup-ag/lend and @jup-ag/lend-read SDKs" — this is technically SDK/code guidance in a no-code repo. Consider whether jupiter-lend should instead document the REST endpoint
/lend/v1(which now exists) via curl, matching the pattern of jupiter-api. getjlTokenInfoin jupiter-lend table — verify this method name is correct (looks like a typo, possiblygetJlTokenInfo).
What's Working Well
- jupiter-api is well-structured with clear sections for each API surface (swap, price, tokens, trigger, recurring, portfolio)
- Error handling table is a nice touch
- MoonPay funding integration and Related Skills cross-references are solid
- Prerequisites and security warnings are present
Path to A+
- Fix the API key requirement (add to Prerequisites, update all curl examples)
- Update all API paths to current versions (v2/v3)
- Fix or remove the jup-lock link in jupiter-lend
- Address the Proprietary license disclosure for lend-read
- Consider converting jupiter-lend to use the REST
/lend/v1endpoint instead of SDK references
Skill name
jupiter-api, jupiter-lend
Description
Two Jupiter skills for the #1 DEX aggregator on Solana.
Sourced from https://github.com/jup-ag/agent-skills (MIT), rewritten to follow the no-code rule: TypeScript SDK examples replaced with curl API calls and SDK method reference tables.
Primary chain
Solana
Primary token
SOL, USDC (Solana)
Checklist
MoonPay Integration
Fund a Solana wallet to trade on Jupiter:
Example Usage