Async Support

django-solana-payments uses solana.rpc.async_api.AsyncClient under the hood, as solana-py removed support for the sync client.

Library keeps sync-friendly wrappers, but also exposes async methods for operations that communicate with the Solana blockchain.

When to use async methods

Use async methods when your project already runs in async context, for example:

  • async Django views

  • ASGI workers

  • async background tasks

  • other code paths where you already use await

Async methods use a… prefix.

Examples:

  • SolanaTransactionSenderClient.asend_transaction

  • SolanaTransactionSenderClient.aconfirm_transaction

  • SolanaTransactionSenderClient.asend_transaction_with_retry

  • SolanaTokenClient.aget_balance

  • SolanaTokenClient.aget_account_info

  • SolanaTokenClient.aget_token_supply

  • SolanaTransactionQueryClient.aget_transaction

  • SolanaTransactionQueryClient.aget_signatures_for_address

Example

from django_solana_payments.solana.base_solana_client import BaseSolanaClient
from django_solana_payments.solana.solana_token_client import SolanaTokenClient
from django_solana_payments.solana.solana_transaction_query_client import (
    SolanaTransactionQueryClient,
)
from django_solana_payments.solana.solana_transaction_sender_client import (
    SolanaTransactionSenderClient,
)

base_client = BaseSolanaClient()
token_client = SolanaTokenClient(base_client)
tx_query_client = SolanaTransactionQueryClient(base_client)
tx_sender_client = SolanaTransactionSenderClient(base_client)

balance = await token_client.aget_balance(wallet_pubkey)
account_info = await token_client.aget_account_info(wallet_pubkey)
transaction = await tx_query_client.aget_transaction(signature)
confirmation = await tx_sender_client.aconfirm_transaction(signature)

Notes

BaseSolanaClient provides shared RPC client configuration and sync/async bridging utilities.

SolanaTransactionSenderClient owns transaction send and confirmation methods.

SolanaTransactionBuilder builds transactions, but does not expose async methods itself.

See Installation for setup and API Reference for full client reference.