web3_universal

GitHub License: MIT

A comprehensive, pure Dart Web3 SDK for EVM-compatible blockchains and multi-chain expansion (Solana, Bitcoin, Polkadot, etc.). This package is a meta-package that re-exports all 32 modular packages for ease of use.

🚀 Key Modules

By importing dart_web3, you gain access to:

  • EVM Core: core, crypto, abi, client, contract.
  • Identity: ens, aa (Account Abstraction), reown.
  • Finance: swap, bridge, staking, price.
  • Infrastructure: provider, events, multicall, debug, mev.
  • Hardware: ledger, trezor, keystone, bc_ur, mpc.
  • Extensions: solana, polkadot, tron, ton, bitcoin.

🏗️ Quick Start

Basic RPC

import 'package:dart_web3/dart_web3.dart';

void main() async {
  final client = ClientFactory.createPublicClient(
    rpcUrl: 'https://eth.llamarpc.com',
    chain: Chains.ethereum,
  );

  final balance = await client.getBalance('0x...');
  print('Balance: ${EthUnit.formatEther(balance)} ETH');
}

Contract Call (ERC-20)

import 'package:dart_web3/dart_web3.dart';

void main() async {
  final client = ClientFactory.createPublicClient(rpcUrl: '...');
  final usdt = ERC20(address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', client: client);

  print('USDT Decimals: ${await usdt.decimals()}');
}

Multi-Chain

import 'package:dart_web3/dart_web3.dart';
import 'package:dart_web3_solana/dart_web3_solana.dart';

void main() async {
  // EVM
  final ethBlock = await ClientFactory.createPublicClient(rpcUrl: '...').getBlockNumber();
  
  // Solana
  final solBalance = await SolanaClient(endpoint: '...').getBalance('...');
}

📖 Documentation

For detailed guides and advanced usage, please refer to:

📦 Installation

dependencies:
  dart_web3: ^0.1.0

Libraries

web3_universal