Python SDK for Zarban
Project description
Zarban SDK
Zarban SDK is a Python interface for interacting with the Zarban DeFi protocol, enabling developers to seamlessly integrate lending and borrowing functionalities into their applications. This SDK simplifies complex DeFi operations by providing easy-to-use methods for lending assets, managing collateral, borrowing funds, and monitoring positions in the Zarban protocol.
Features
- Automated API Client Generation: Built using OpenAPI specification, ensuring type safety and up-to-date API compatibility
- Lending Operations: Easily deposit assets, view lending rates, and manage lending positions
- Borrowing Management: Streamlined methods for borrowing assets, managing collateral, and monitoring loan health
- Position Tracking: Real-time access to user positions, including borrowed amounts, collateral ratios, and liquidation thresholds
- Market Data: Simple methods to fetch current interest rates, available liquidity, and market statistics
- Type Safety: Full type hints support for Python static type checking
- Error Handling: Comprehensive error handling with detailed exceptions for DeFi operations
- Async Support: Asynchronous methods for improved performance in high-throughput applications
Environments
Zarban SDK supports two distinct environments:
-
Mainnet: The production environment for the Zarban DeFi protocol.
- Wallet API:
https://wapi.zarban.io - Service API:
https://api.zarban.io
- Wallet API:
-
Testnet: A separate testing environment for the Zarban protocol.
- Wallet API:
https://testwapi.zarban.io - Service API:
https://testapi.zarban.io
- Wallet API:
Be sure to use the appropriate environment configuration when interacting with the Zarban SDK.
Installation
pip install zarban
For development installation:
git https://github.com/zarbanio/zarban-py.git
cd zarban-py
pip install -e ".[dev]"
Quick Start
Zarban SDK provides access to two distinct APIs:
1. Wallet API (zarban.wallet)
The Wallet API handles user authentication and wallet management operations.
2. Service API(zarban.service)
The Zarban Service API provides access to core DeFi protocol operations.
from zarban.wallet.openapi_client import DefaultApi, ApiClient, Configuration
# Initialize the client
configuration = Configuration()
api_client = ApiClient(configuration)
api_instance = DefaultApi(api_client)
# Make a simple API call
response = api_instance.some_method()
print(response)
Usage Examples
For detailed usage examples, see our Examples Documentation.
Advanced Usage
Here's a simple example to sign up and get started with Zarban:
from zarban.wallet.openapi_client.configuration import Configuration
from zarban.wallet.openapi_client.api_client import ApiClient
from zarban.wallet.openapi_client.api import DefaultApi
from zarban.wallet.openapi_client.models import SignUpRequest
from zarban.wallet.openapi_client.exceptions import ApiException
def signup_example():
# Create and configure the Configuration object
configuration = Configuration(
host="https://wapi.zarban.io"
)
# Create an instance of the ApiClient with the configuration
api_client = ApiClient(configuration)
# Create an instance of the DefaultApi using the ApiClient
api_instance = DefaultApi(api_client)
# Prepare the signup request data
signup_request = SignUpRequest(
email="user@example.com",
password="yourSecuredPassword",
)
try:
# Call the signup API
api_response = api_instance.auth_signup_post(signup_request)
print("Confirmation link sent successful!")
print(f"Message: {api_response.messages}")
except ApiException as e:
print(f"Exception when calling DefaultApi->auth_signup_post: {e}")
print(f"Error message: {e.body}")
if __name__ == "__main__":
signup_example()
Configuration
The SDK can be configured with various options to customize its behavior and authentication methods.
Basic Configuration
from zarban.wallet.openapi_client import Configuration
# Basic configuration with just the host URL
config = Configuration(host="https://wapi.zarban.io")
Authentication Options
The SDK supports multiple authentication methods:
- API Key Authentication:
config = Configuration(
host="https://wapi.zarban.io",
api_key={"APIKeyAuth": "your-api-key-here"},
# Optional: Add prefix like 'Bearer' for the API key
api_key_prefix={"APIKeyAuth": "Bearer"}
)
- Basic Authentication:
config = Configuration(
host="https://wapi.zarban.io",
username="your-username",
password="your-password"
)
Advanced Configuration
config = Configuration(
host="https://wapi.zarban.io",
api_key={"APIKeyAuth": "your-api-key-here"},
# Discard unknown properties from server responses
discard_unknown_keys=True
)
Configuration Parameters
| Parameter | Type | Description |
|---|---|---|
host |
str | Base URL for the API endpoints |
api_key |
dict | Dictionary of API keys where key is the security scheme name and value is the API key |
api_key_prefix |
dict | Dictionary of API key prefixes (e.g., "Bearer") |
username |
str | Username for HTTP basic authentication |
password |
str | Password for HTTP basic authentication |
discard_unknown_keys |
bool | Whether to discard unknown properties from server responses |
Error Handling
from zarban.service.openapi_client import StableCoinSystemApi, ApiClient, Configuration
from zarban.service.openapi_client.exceptions import ApiException
try:
configuration = Configuration(host="https://api.zarban.io")
api_client = ApiClient(configuration)
stable_coin_system_api = StableCoinSystemApi(api_client)
response = StableCoinSystemApi.some_method()
except ApiException as e:
print(f"An error occurred: {e}")
Development
Setting Up Development Environment
# Clone the repository
git clone https://github.com/zarbanio/zarban-py.git
cd zarban-py
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
Contributing
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Create an issue on GitHub
- Email: info@zarban.io
- Documentation: https://docs.zarban.io
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 zarban-0.4.1.tar.gz.
File metadata
- Download URL: zarban-0.4.1.tar.gz
- Upload date:
- Size: 147.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dad42136d1c9dd9d321421f6cdcb1ef6d937747a34393299d1537d068ba96b29
|
|
| MD5 |
67b6bc7d7c611655c5b194e632542e85
|
|
| BLAKE2b-256 |
822bb66593a53414d7e001dc6e61bb26f567ae0fbfb4b996930b6347a8a06f71
|
File details
Details for the file zarban-0.4.1-py3-none-any.whl.
File metadata
- Download URL: zarban-0.4.1-py3-none-any.whl
- Upload date:
- Size: 444.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33126faf364b4967e31e9b74403d1846a8810df0d789e6d97013c9c5a0c73979
|
|
| MD5 |
67541d09d308a788e40f9df8a8f68e09
|
|
| BLAKE2b-256 |
8992167d9617bc896cbff46318411454b8ac6a0db4f026edc043f45f0a336a4e
|