Python

Complete Python examples for integrating with NextBlock's gRPC API using grpcio and solders/solana-py.

Overview

These examples demonstrate how to:

  • Establish secure gRPC connections with authentication

  • Submit single and batched transactions with proper tipping

  • Stream real-time tip floor data for dynamic tip optimization

  • Maintain persistent connections with keepalive mechanisms

Prerequisites

Install the required dependencies:

pip install grpcio grpcio-tools
pip install solders solana
pip install asyncio aiogrpc
pip install base58 base64
pip install requests

# Generate Python gRPC client from nextblock-proto
# See https://github.com/nextblock-ag/nextblock-proto for instructions

Examples

Core Examples

Quick Start

  1. Generate gRPC client from nextblock-proto

  2. Install dependencies using pip

  3. Set up environment with API key and endpoint

  4. Start with connection example to establish authenticated gRPC connection

  5. Use tip floor streaming to optimize transaction tips dynamically

  6. Submit transactions using single or batched submission methods

Key Features

Async/Await Support

All examples use Python's asyncio for non-blocking operations and better performance.

Type Hints

Complete type annotations for better code clarity and IDE support.

Error Handling

Comprehensive error handling with retry logic and exponential backoff.

Connection Management

Persistent connections with keepalive, health monitoring, and automatic recovery.

Dynamic Tipping

Real-time tip optimization based on current network conditions from tip floor API.

Best Practices

  1. Use async/await - Leverage Python's asyncio for better performance

  2. Enable TLS - Always use secure connections in production

  3. Implement keepalive - Maintain persistent connections

  4. Monitor tip floors - Use streaming API for dynamic tip adjustment

  5. Handle errors gracefully - Implement proper retry logic

  6. Use type hints - Improve code clarity and maintainability

  7. Choose appropriate endpoints - Use the closest endpoint for better latency

Last updated