CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-skill-index-evals/jup-ag__agent-skills__integrating-jupiter

Comprehensive guidance for integrating Jupiter APIs (Ultra Swap, Lend, Perps, Trigger, Recurring, Tokens, Price, Portfolio, Prediction Markets, Send, Studio, Lock, Routing).

86

1.85x

Quality

84%

Does it follow best practices?

Impact

91%

1.85x

Average score across 5 eval scenarios

Overview
Skills
Evals
Files

rubric.jsonevals/scenario-1/

{
  "context": "Tests whether the agent correctly implements Jupiter Ultra Swap integration patterns including the order/execute flow, authentication, error handling with retryability classification, rate limit backoff, transaction signing, and production hardening.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Base URL correct",
      "description": "Uses https://api.jup.ag as the base URL and constructs Ultra Swap paths under /ultra/v1 (e.g., /ultra/v1/order, /ultra/v1/execute)",
      "max_score": 8
    },
    {
      "name": "API key authentication",
      "description": "Includes x-api-key header in all API requests, loaded from environment variable; fails fast (throws or exits) if the key is missing or undefined",
      "max_score": 10
    },
    {
      "name": "Order/execute two-step flow",
      "description": "Implements the swap as two distinct phases: first GET /ultra/v1/order to get the order, then POST /ultra/v1/execute to submit the signed transaction; these are clearly separated in code",
      "max_score": 12
    },
    {
      "name": "Transaction signing pattern",
      "description": "Deserializes the transaction from base64 as a VersionedTransaction, signs with the wallet keypair, and sends with skipPreflight: true and maxRetries: 0",
      "max_score": 10
    },
    {
      "name": "JupiterResult error structure",
      "description": "Error handling uses a result type with ok/result/error fields where error includes a code, message, and a retryable boolean flag",
      "max_score": 10
    },
    {
      "name": "Error code classification",
      "description": "Classifies HTTP 429 as retryable rate limit; classifies negative numeric error codes as Ultra execute errors with specific retryable codes; classifies positive numeric codes as non-retryable program errors",
      "max_score": 10
    },
    {
      "name": "Rate limit backoff with jitter",
      "description": "Implements exponential backoff for 429 errors that includes randomized jitter (not fixed delays); respects a sliding window concept (does not burst aggressively after a rate limit)",
      "max_score": 8
    },
    {
      "name": "Differentiated timeouts",
      "description": "Uses a shorter timeout for the order/quote request (around 5s) and a longer timeout for the execute request (around 30s)",
      "max_score": 8
    },
    {
      "name": "Input validation before API call",
      "description": "Validates inputs (e.g., mint addresses are valid, amount is valid/non-zero, wallet address present) before making the API call, not after",
      "max_score": 8
    },
    {
      "name": "Slippage and amount guardrails",
      "description": "Enforces configurable slippage limits and/or maximum trade amount guardrails from configuration rather than hardcoded values",
      "max_score": 8
    },
    {
      "name": "Observability logging",
      "description": "Logs structured metadata including at least requestId (if available), endpoint/API family, latency or timing, and status/error code",
      "max_score": 8
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl-skill-index-evals/jup-ag__agent-skills__integrating-jupiter@0.0.1

evals

scenario-1

rubric.json

task.md

tile.json