ton_wallet_v4 1.0.0 copy "ton_wallet_v4: ^1.0.0" to clipboard
ton_wallet_v4: ^1.0.0 copied to clipboard

A Flutter plugin for generating TON blockchain wallets, mnemonics, and fetching wallet assets.

ton_wallet_v4 #

A Flutter plugin for generating TON blockchain wallets, mnemonics, and fetching wallet assets. This plugin provides a simple, cross-platform interface for creating BIP39 mnemonics, generating V4R2 wallet addresses, and querying wallet balances and tokens on the TON blockchain.

Built by Macromodule Technologies — Open source; contributions welcome.

Features #

  • Mnemonic Generation: Generate secure 24-word BIP39 mnemonics
  • V4 Wallet Creation: Create V4R2 wallet addresses from mnemonics
  • Asset Fetching: Query wallet balances (TON and jettons) from the blockchain
  • Cross-Platform: Native implementations for Android (Kotlin) and iOS (Swift)
  • Simple API: Easy-to-use Dart interface with minimal configuration
  • Type-Safe: Proper handling of dynamic native data with safe type conversions

Installation #

Add ton_wallet_v4 to your pubspec.yaml:

dependencies:
  ton_wallet_v4: ^1.0.0

Then run:

flutter pub get

Usage #

Basic Wallet Generation Example #

import 'package:ton_wallet_v4/ton_wallet_bridge.dart';

final tonWallet = TonWallet();

// Generate a new mnemonic
final mnemonic = await tonWallet.generateMnemonic();
print('Generated mnemonic: $mnemonic');

// Create a V4 wallet from the mnemonic
final walletData = await tonWallet.generateV4Wallet(
  mnemonic,
  workchain: 0,
  useBip39: true,
  index: 0,
);

print('Wallet address: ${walletData['address']}');
print('Public key: ${walletData['public_key']}');

Fetch Wallet Assets Example #

import 'package:ton_wallet_v4/ton_wallet_bridge.dart';

final tonWallet = TonWallet();

// Fetch assets for a wallet address
final assets = await tonWallet.fetchAssets(
  address: 'UQAYYvN_Sl3MJcjvwuZMvmBN2ZJqPHI2KxMYKYQWVZjlNRzG',
);

print('TON Balance: ${assets['tonBalance']} TON');
print('Nano Balance: ${assets['tonBalanceNano']}');

// Get list of tokens (jettons)
final jettons = assets['jettons'] as List<dynamic>;
for (final jetton in jettons) {
  print('${jetton['name']}: ${jetton['balance']} ${jetton['symbol']}');
}

API Reference #

generateMnemonic() #

Generates a new 24-word BIP39 mnemonic.

Future<List<String>> generateMnemonic()

Returns: A list of 24 mnemonic words.

generateV4Wallet(mnemonic, {workchain, useBip39, index}) #

Creates a V4 wallet from a mnemonic phrase.

Future<Map<String, dynamic>> generateV4Wallet(
  List<String> mnemonic,
  {
    int workchain = 0,
    bool useBip39 = true,
    int index = 0,
  }
)

Parameters:

  • mnemonic: List of 24 BIP39 mnemonic words
  • workchain: TON workchain ID (default: 0)
  • useBip39: Whether to use BIP39 derivation (default: true)
  • index: Wallet index for multi-wallet derivation (default: 0)

Returns: A map containing:

  • address: Wallet address (non-bounceable format)
  • bounceable: Bounceable variant
  • non_bounceable: Non-bounceable variant
  • raw: Raw address format
  • public_key: Hex-encoded public key
  • private_key: Hex-encoded private key
  • workchain: Workchain ID
  • success: Boolean indicating success

fetchAssets({address, testnet}) #

Fetches wallet balance and token information.

Future<Map<String, dynamic>> fetchAssets({
  required String address,
  bool testnet = false,
})

Parameters:

  • address: TON wallet address (bounceable or non-bounceable format)
  • testnet: Use testnet API (default: false)

Returns: A map containing:

  • address: The queried address
  • tonBalance: TON balance as a formatted string (e.g., "1.5")
  • tonBalanceNano: Balance in nanotons (smallest unit)
  • jettons: List of token objects with:
    • name: Token name
    • symbol: Token symbol
    • balance: Token balance (formatted)
    • decimals: Decimal places
    • jettonAddress: Token contract address
    • imageUrl: Token logo URL (if available)
  • success: Boolean indicating success

Example App #

The plugin includes a complete example application demonstrating:

  • Mnemonic generation
  • V4 wallet creation from mnemonics
  • Asset fetching and display
  • Token list visualization

Run the example:

cd example
flutter run

Platform-Specific Details #

Android #

Uses the ton-kotlin library:

  • Supports BIP39 mnemonic validation and conversion
  • Implements V4R2 wallet address generation
  • Queries TON API for balance and token data
  • Falls back to TonCenter if TON API is unavailable
  • Package: com.mt.ton.wallet

iOS #

Uses the TonSwift library (v1.0.3):

  • Swift-native implementation for iOS 13.0+
  • Handles mnemonic validation and wallet generation
  • Queries TON API for asset information
  • Falls back to TonCenter if TON API is unavailable
  • Integrates with native crypto libraries (CryptoKit, CommonCrypto)

Requirements #

  • Flutter >= 3.3.0
  • Dart SDK >= 3.10.1
  • Android: minSdkVersion 21
  • iOS: 13.0+

Network Requirements #

Asset fetching requires internet access to:

Error Handling #

The plugin throws PlatformException on errors. Example:

try {
  final assets = await tonWallet.fetchAssets(address: address);
} on PlatformException catch (e) {
  print('Error: ${e.message}');
}

Contributing #

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

Contributors #

Support #

For issues, questions, or suggestions, please open an issue on the GitHub repository.

2
likes
140
points
11
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for generating TON blockchain wallets, mnemonics, and fetching wallet assets.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on ton_wallet_v4

Packages that implement ton_wallet_v4