Python SDK for Rango Exchange Basic API
Simple and Easy to use APIs for Rango Aggregation protocols for dApps and Wallets for single step cross-chain and on-chain swaps using the best route and all the available on-chain liquidity across all blockchain networks.
Requirements
This package supports Python 3.8 and newer.
Installation
Install it with:
python -m pip install rango-basic-sdk
Alternatively, install from the source code with this command from the project root:
python -m pip install .
For an editable installation while developing:
python -m pip install -e .
Usage
Synchronous client
Client is the synchronous API. Close it when finished, or use a with block.
from rango_basic_sdk import Client
with Client(api_key='c6381a79-2817-4602-83bf-6a641a409e32') as client:
result = client.routing.quote(from_="BSC.BNB", to="AVAX_CCHAIN.USDT.E--0xc7198437980c041c805a1edcba50c1ce5db95118", amount=10000000000000000, slippage=3.5)
Endpoints are nested under attributes (see client.py):
client.balance→BalanceOperationsclient.metadata→MetadataOperationsclient.routing→RoutingOperationsclient.transaction→TransactionOperations
Asynchronous client
AsyncClient is the asynchronous API. Use async with and await each call.
import asyncio
from rango_basic_sdk import AsyncClient
async def main() -> None:
async with AsyncClient(api_key='c6381a79-2817-4602-83bf-6a641a409e32') as client:
result = await client.routing.quote(from_="BSC.BNB", to="AVAX_CCHAIN.USDT.E--0xc7198437980c041c805a1edcba50c1ce5db95118", amount=10000000000000000, slippage=3.5)
asyncio.run(main())
Authentication
The Usage section above and the examples/ / docs/ trees show authentication via constructor keyword arguments; This package also supports environment-variable credentials (using RANGO_BASIC prefix for env vars).
apiKey — API key (query parameter)
- This sdk uses apiKey auth: the credential is sent as the query parameter
apiKey. - Use constructor option
api_key. - Pass these as keyword arguments to
Client(...)/AsyncClient(...). - Alternatively set environment variable
RANGO_BASIC_API_KEY. Explicit constructor options override env when both are set.
For private or production authentication parameters, contact Rango via hi@rango.exchange or https://t.me/rangoexchange. See the official API documentation.
API Endpoints Reference
For a complete list of all available SDK methods, including detailed parameter descriptions, return values, and code examples, see the API Reference:
Example Codes
The examples below show only the most commonly used endpoints to help you get started quickly.
For advanced usage and less common operations, consult the API Reference.
Get Balance of a Token
Fetches the balance of a specific token address for the user's wallet
Runnable source: get_token_balance.py
from rango_basic_sdk import Client, models
with Client(api_key='c6381a79-2817-4602-83bf-6a641a409e32') as client:
result = client.balance.get_token_balance(wallet_address="0x9F8cCdaFCc39F3c7D6EBf637c9151673CBc36b88", blockchain=models.Blockchain.BSC, symbol="USDT", address="0x55d398326f99059ff775485246999027b3197955")
print(result)
Get the Best Quote for swapping
Get the best route to perform a cross-chain or same-chain swap
Runnable source: quote.py
from rango_basic_sdk import Client
with Client(api_key='c6381a79-2817-4602-83bf-6a641a409e32') as client:
result = client.routing.quote(from_="BSC.BNB", to="AVAX_CCHAIN.USDT.E--0xc7198437980c041c805a1edcba50c1ce5db95118", amount=10000000000000000, slippage=3.5)
print(result)
Create the Transaction (Swap)
Creates a transaction to be signed by user's wallet and broadcasted to the network
Runnable source: swap.py
from rango_basic_sdk import Client
with Client(api_key='c6381a79-2817-4602-83bf-6a641a409e32') as client:
result = client.transaction.swap(from_="BSC.BNB", to="AVAX_CCHAIN.USDT.E--0xc7198437980c041c805a1edcba50c1ce5db95118", amount=10000000000000000, slippage=3.5, from_address="0x9F8cCdaFCc39F3c7D6EBf637c9151673CBc36b88", to_address="0x6f33bb1763eebead07cf8815a62fcd7b30311fa3", disable_estimate=False, infinite_approve=False)
print(result)
Check the Transaction Status
Checks the status of the transaction using the requestId from the swap endpoint and the broadcasted transaction hash (txId)
Runnable source: status.py
from rango_basic_sdk import Client
with Client(api_key='c6381a79-2817-4602-83bf-6a641a409e32') as client:
result = client.transaction.status(request_id="b3a12c6d-86b8-4c21-97e4-809151dd4036", tx_id="0xfa88b705a5b4049adac7caff50c887d9600ef023ef1a937f8f8b6f44e90042b5")
print(result)
Additional samples for all endpoints live under the examples/ folder.
Advanced Examples
For more advanced walkthroughs, step-by-step guides and custom samples, check the Advanced Examples folder.
HTTP debug logging
To print each HTTP request and response (method, URL, status, headers, and bodies) after the response is received, pass log_http_debug=True to Client or AsyncClient, and set the rango_basic_sdk.client logger to DEBUG so those messages are emitted.
Bodies are truncated after 16 KiB per direction. Do not use this in production or with real secrets: debug output can include credentials (e.g. Authorization, API keys, cookies).
import logging
from rango_basic_sdk import Client
logging.getLogger("rango_basic_sdk.client").setLevel(logging.DEBUG)
if not logging.root.handlers:
logging.basicConfig(level=logging.DEBUG)
with Client(log_http_debug=True) as client:
# …
pass
For AsyncClient, use the same logging setup and AsyncClient(log_http_debug=True, ...).
Metadata
Release files for rango-basic-sdk 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rango_basic_sdk-0.0.7.tar.gz | 28.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rango_basic_sdk-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.8 kB
Release files / rango_basic_sdk-0.0.7.tar.gz
| Download URL | rango_basic_sdk-0.0.7.tar.gz |
|---|---|
| Size | 28.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4efde3db90bb0631b5290485b00e2d020399f27a85d37396da88c1a27f8b4873
|
|
BLAKE2b-256 checksum How to use checksums |
1380779bcccae4d741e7dc4c8aa1dd13eacc3f6dacf073e2297e2819303292d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.12.13 HTTPX/0.28.1
|
Release files / rango_basic_sdk-0.0.7-py3-none-any.whl
| Download URL | rango_basic_sdk-0.0.7-py3-none-any.whl |
|---|---|
| Size | 29.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb7bbce18d9d07af78af0180a4804d55f593bf67a253124a2681e4638b0a6269
|
|
BLAKE2b-256 checksum How to use checksums |
7e2900357443c5a0ac5ff5099df380a62df5bc4d8bfe2baae847074386dd67dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.12.13 HTTPX/0.28.1
|