Comprehensive guidance for integrating Jupiter APIs (Ultra Swap, Lend, Perps, Trigger, Recurring, Tokens, Price, Portfolio, Prediction Markets, Send, Studio, Lock, Routing).
86
Quality
84%
Does it follow best practices?
Impact
91%
1.85xAverage score across 5 eval scenarios
{
"context": "Tests whether the agent correctly implements Jupiter Tokens and Price API patterns including mint-address-as-identity, trust signal surfacing, price confidence handling, fail-closed behavior for safety-critical decisions, batch size limits, and handling of missing or null price data.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Tokens API base path",
"description": "Uses the correct base path /tokens/v2 under https://api.jup.ag for token endpoints (search, tag, category/interval, recent)",
"max_score": 8
},
{
"name": "Price API base path",
"description": "Uses the correct base path /price/v3 under https://api.jup.ag for price lookups with comma-separated mint IDs",
"max_score": 8
},
{
"name": "Mint address as primary identity",
"description": "Uses mint address as the primary/canonical token identifier throughout the code; treats symbol and name as display-only or convenience fields",
"max_score": 10
},
{
"name": "Suspicious token surfacing",
"description": "The TokenInfo interface or token processing logic surfaces the audit.isSus flag and organicScore to the consuming code/UI rather than discarding them",
"max_score": 10
},
{
"name": "Price batch size limit",
"description": "The getPrices function respects a maximum of 50 mint IDs per request; if more are provided, it chunks them into multiple requests",
"max_score": 10
},
{
"name": "Null/missing price handling",
"description": "Handles the case where tokens return null prices or are omitted from the price response without throwing an error; treats these as valid (not-available) results rather than failures",
"max_score": 10
},
{
"name": "Confidence level in price data",
"description": "The PriceResult interface or price processing includes a confidenceLevel field from the API response and makes it available to consumers",
"max_score": 8
},
{
"name": "Fail closed for safety-critical prices",
"description": "The getSafePrice function rejects or returns a failure when price data is missing, null, or has low confidence rather than returning a potentially misleading value",
"max_score": 12
},
{
"name": "API key authentication",
"description": "All API requests include the x-api-key header loaded from environment/config; fails fast if the key is missing",
"max_score": 8
},
{
"name": "Structured error handling",
"description": "Errors are wrapped in structured types with code, message, and retryable flag; rate limit errors (429) are classified as retryable",
"max_score": 8
},
{
"name": "Token search supports mint addresses",
"description": "The searchTokens function can accept mint addresses (not just names/symbols) as the query parameter, consistent with using mint as the primary identity",
"max_score": 8
}
]
}Install with Tessl CLI
npx tessl i tessl-skill-index-evals/jup-ag__agent-skills__integrating-jupiter@0.0.1