Skip to main content

Python bindings for Rango Exchange Basic API

Project description

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=100000000000000000, slippage=8.5)

Endpoints are nested under attributes (see client.py):

  • client.balanceBalanceOperations
  • client.metadataMetadataOperations
  • client.routingRoutingOperations
  • client.transactionTransactionOperations

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=100000000000000000, slippage=8.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:

📖 View Full 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=100000000000000000, slippage=8.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=100000000000000000, slippage=8.5, from_address="0x9F8cCdaFCc39F3c7D6EBf637c9151673CBc36b88", to_address="0x6f33bb1763eebead07cf8815a62fcd7b30311fa3", disable_estimate=False, infinite_approve=False, referrer_fee=0.3, referrer_address="0x6f33bb1763eebead07cf8815a62fcd7b30311fa3")
    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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rango_basic_sdk-0.0.2.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rango_basic_sdk-0.0.2-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file rango_basic_sdk-0.0.2.tar.gz.

File metadata

  • Download URL: rango_basic_sdk-0.0.2.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.12.13 HTTPX/0.28.1

File hashes

Hashes for rango_basic_sdk-0.0.2.tar.gz
Algorithm Hash digest
SHA256 dafa4f3fbec7285004450a4da73d41c6d16f93b518b20568817543b5803c3dc7
MD5 f75f5bdf96404ef133b1de1a9d66ecaf
BLAKE2b-256 e439ddf62f15ebcd7a576bff29c8f3edaf91488044b87803cecc6cc21886a364

See more details on using hashes here.

File details

Details for the file rango_basic_sdk-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: rango_basic_sdk-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.12.13 HTTPX/0.28.1

File hashes

Hashes for rango_basic_sdk-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f11841dfff644631e2f5981fe06e01645316668b32ba557584b562013dc0b98
MD5 7cc991b4148b08389b2cf998b1b6fec8
BLAKE2b-256 c061750e3377cce50c520291bf2a83e5f65a6959acfb80122a912cd658b43788

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page