Skip to content
tronz

Connect applications to the TRON network using idiomatic, async-first Rust APIs.

cargo
cargo add tronz

At a glance

use tronz::{ProviderBuilder, TronProvider, TRONGRID_MAINNET};
 
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Connect to a TRON gRPC endpoint.
    let provider = ProviderBuilder::new().on_grpc(TRONGRID_MAINNET).await?;
 
    // Read the latest block.
    let block = provider.get_now_block().await?;
    println!("block {} @ {}ms", block.number, block.timestamp);
 
    Ok(())
}

Features

  • TRON-native primitivesAddress (base58check T... and hex), Trx/sun amounts, and ResourceCode.
  • Builder-style provider — compose a provider with fillers and a signer, then connect over gRPC.
  • Lazy transaction builderssend_trx(), freeze_balance(), delegate_resource(), and more do no I/O until .send().
  • Stake 2.0 support — freeze, unfreeze, delegate, undelegate, and claim rewards.
  • TRC20 / TRC721 bindings — ABI-compatible with EVM tokens, generated via alloy's sol! macro.
  • Reuses alloyU256, Bytes, and ABI types come straight from alloy-primitives / alloy-sol-types.

Crates

CrateDescription
tronzMeta-crate re-exporting all sub-crates
tronz-primitivesAddress, Trx, ResourceCode, signatures
tronz-signerTronSigner trait and LocalSigner
tronz-signer-awsAWS KMS-backed AwsSigner (optional)
tronz-providerTransport, provider, fillers, and domain types
tronz-contractTRC20 / TRC721 bindings and the tron_sol! macro

Community