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 Trigger (limit order) API patterns including the create/execute flow separation, target price validation, slippage mode configuration, Token-2022 awareness, batch cancel limits, fee calculation, pagination, and authentication.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Trigger API base path",
"description": "Uses the correct base path /trigger/v1 under https://api.jup.ag for all trigger order endpoints (createOrder, execute, getTriggerOrders, cancelOrder, cancelOrders)",
"max_score": 8
},
{
"name": "Create/execute phase separation",
"description": "Implements order creation and execution as clearly separated phases: first POST /trigger/v1/createOrder, then sign, then POST /trigger/v1/execute; these are distinct functions or clearly distinct code blocks",
"max_score": 12
},
{
"name": "Target price validation",
"description": "Validates that the target price (ratio of makingAmount to takingAmount, or explicit price check) is reasonable BEFORE submitting the order; includes a check or warning since the on-chain program does not validate favorable rates",
"max_score": 12
},
{
"name": "Slippage mode handling",
"description": "Supports both zero-slippage (Exact) mode as the default and a configurable slippageBps parameter for an alternative mode that offers higher fill rates",
"max_score": 10
},
{
"name": "Token-2022 awareness",
"description": "Includes a check, validation, comment, or error for Token-2022 tokens indicating they are not supported for trigger orders",
"max_score": 8
},
{
"name": "Batch cancel limit",
"description": "The batch cancel function limits cancellation to at most 5 orders per transaction; if more than 5 are requested, it either chunks them into multiple calls or returns an error",
"max_score": 10
},
{
"name": "Pagination with page size",
"description": "The getOrders function supports pagination and uses a page size of 10 orders per page (matching the API's pagination)",
"max_score": 8
},
{
"name": "Fee calculation",
"description": "Fee estimation accounts for the differentiated fee structure: a lower fee rate for stable pairs and a higher rate for non-stable pairs",
"max_score": 10
},
{
"name": "API key authentication",
"description": "All API requests include the x-api-key header; the key is loaded from environment/config and validated at startup",
"max_score": 8
},
{
"name": "Structured error handling",
"description": "Errors are mapped to structured types with code, message, and retryable flag rather than raw exceptions; rate limit errors are identified as retryable",
"max_score": 8
},
{
"name": "Logging of order phases",
"description": "Logs distinct phases (create, sign, execute, cancel) with relevant identifiers (orderId, requestId, or transaction signature) for debugging",
"max_score": 6
}
]
}Install with Tessl CLI
npx tessl i tessl-skill-index-evals/jup-ag__agent-skills__integrating-jupiter