A Python package for token swapping and wallet interactions on Solana using Jupiter Aggregator
Project description
jupswapper
A Python package for token swapping and wallet interactions on Solana using Jupiter Aggregator and Helius RPC endpoints.
Key Features
- 🔄 High-level interface for token swaps
- 💰 Wallet balance checking with USD valuations
- 💸 SOL balance
- 🛡️ Built-in retry mechanisms for robust transaction handling
- 📊 Automatic slippage protection from Jupiter Aggregator
Prerequisites
- Python 3.12+
- Solana wallet with some SOL for transaction fees
- Helius API key (for RPC endpoints and transaction tracking)
Installation
Install jupswapper using pip:
pip install jupswapper
Configuration
Set the following environment variables:
SECRET_WORDS: Your wallet's recovery phraseHELIUS_API_KEY: Your Helius API key (https://helius.dev/)DERIVE_PATH: Your wallet's derivation path (default: "m/44'/501'/0'")
We recommend using 1password-cli to inject these variables into your environment at runtime.
brew install 1password-cli
Usage Examples
See examples/ for the following scripts.
Performing a Token Swap
from jupswapper import Swap, SOL_MINT, BONK_MINT, try_swap
# Swap 0.01 SOL to BONK
swap = Swap(from_mint=SOL_MINT, to_mint=BONK_MINT, amount=0.01)
transaction_response = try_swap(swap)
print(transaction_response)
Checking Wallet Balance
from jupswapper import get_token_values_for_wallet, get_public_key_as_str, get_sol_balance
wallet_address = get_public_key_as_str()
token_values = get_token_values_for_wallet(wallet_address)
# Print token balances with USD values
for token in token_values:
print(f"{token.symbol}: {token.amount_int} (${token.usd_value})")
# Get SOL balance
sol_balance = get_sol_balance(wallet_address)
print(f"SOL balance: {sol_balance}")
Environment Variables
MAX_BPS: Maximum basis points for slippage (default: 300)MAX_RETRIES: Maximum retry attempts for transactions (default: 5)AWAIT_CONFIRMATION_MAX_RETRIES: Maximum retries for transaction confirmation (default: 14)AWAIT_CONFIRMATION_RETRY_DELAY: Delay between confirmation retries (default: 2 seconds)
Disclaimer
Use at your own risk. Always test with small amounts.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupswapper-0.1.1.tar.gz.
File metadata
- Download URL: jupswapper-0.1.1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eeb671cef87a2438e090c93172ebe3c7619fd4c54785cdc71b45fbf6f734750d
|
|
| MD5 |
3a1da3a73c095569cd5196e79ee453a7
|
|
| BLAKE2b-256 |
c4cd9342700935a79d750504f97bbd0567974923334e5268ecd8df16cb163b33
|
File details
Details for the file jupswapper-0.1.1-py3-none-any.whl.
File metadata
- Download URL: jupswapper-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0d505af4a87edb391618767fc8104deceed52e976a56514fdfb2bf1498ba965
|
|
| MD5 |
e5fae84955232bb221e1e2065ec9d8e5
|
|
| BLAKE2b-256 |
5bfc5c2a6e0ac7e6f18eab66bfac89ca29b09cd2a3cfffac9afa3abec6b99814
|