Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

jupiter-swap-python

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jupiter-swap-python

Async Python client for the Jupiter DEX aggregator on Solana — V6 quote/swap and Ultra API.

pipPyPI
Version
0.1.1
Maintainers
1

jupiter-swap-python

The missing Jupiter swap client for Python. Async. Typed. Production-tested.

PyPI version Python 3.11+ License: MIT CI

Jupiter's own Python SDK was abandoned (returns 404). This library fills the gap — a clean, typed, async client for Jupiter, the #1 DEX aggregator on Solana.

⚡ Quickstart

pip install jupiter-swap-python

Get a quote

import asyncio
from jupiter_swap import JupiterClient

SOL = "So11111111111111111111111111111111111111112"
USDC = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"

async def main():
    async with JupiterClient() as jup:
        quote = await jup.get_quote(SOL, USDC, 1_000_000_000)  # 1 SOL
        print(f"1 SOL = {int(quote.out_amount) / 1e6:.2f} USDC")
        print(f"Price impact: {quote.price_impact_pct}%")

asyncio.run(main())

Swap tokens

async with JupiterClient(api_key="your-key") as jup:
    # Step 1: Get quote
    quote = await jup.get_quote(SOL, USDC, 1_000_000_000)

    # Step 2: Build swap transaction
    swap = await jup.get_swap_transaction(
        quote,
        user_public_key="YourWalletPublicKey...",
        priority_fee_lamports=500_000,  # 0.0005 SOL
    )

    # Step 3: Sign and send swap.swap_transaction with your wallet
    print(f"Transaction ready (block height: {swap.last_valid_block_height})")
async with JupiterClient(api_key="your-key") as jup:
    # Combined quote + swap in one call
    order = await jup.ultra_order(
        input_mint=SOL,
        output_mint=USDC,
        amount=1_000_000_000,
        taker="YourWalletPublicKey...",
    )

    print(f"Swap type: {order.swap_type}")
    print(f"Out amount: {order.out_amount}")

    # Sign order.swap_transaction with your wallet, then:
    tx_sig = await jup.ultra_execute(signed_transaction, order.request_id)
    print(f"Executed: {tx_sig}")

Token verification

from jupiter_swap import TokenClient

async with TokenClient() as tokens:
    info = await tokens.get_token_info("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v")
    print(f"{info.symbol} — verified: {info.is_verified}, banned: {info.is_banned}")

    # Check if a token is a known scam
    if await tokens.is_banned("SomeScamMint..."):
        print("🚫 Token is banned!")

🔧 API Reference

JupiterClient

MethodDescription
get_quote()Get the best swap route and price
get_swap_transaction()Build a signable transaction from a quote
ultra_order()Combined quote + swap via Ultra API (MEV protection)
ultra_execute()Execute a signed Ultra swap order

TokenClient

MethodDescription
get_token_info()Get token metadata and verification status
is_banned()Check if a token is on the banned list
is_verified()Check if a token is verified
get_strict_list()Get all strictly verified tokens
refresh_banned_list()Manually refresh the banned list

Models

  • QuoteResponse — Route details, expected output, price impact
  • SwapResponse — Base64 transaction ready to sign
  • UltraOrder — Combined quote + transaction from Ultra API
  • TokenInfo — Name, symbol, decimals, verification flags

🛡️ Why this library?

ProblemSolution
Jupiter's Python SDK is deletedThis exists
Raw httpx.post() calls everywhereTyped client with proper models
No 429 handlingBuilt-in retry with exponential backoff
Token safety is an afterthoughtTokenClient with banned/verified checks
Sync-only clientsFully async with httpx

🔑 API Key

A Jupiter API key is optional but recommended for production use (higher rate limits).

Get one at station.jup.ag.

client = JupiterClient(api_key="your-api-key")

📦 Also by JinUltimate1995

  • solana-rpc-resilient — Solana RPC client with automatic failover, rate limiting, and circuit breaker
  • dexscreener-python — Async DexScreener API client for token/pair data across 80+ chains

License

MIT

Keywords

aggregator

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts