Para Flutter SDK eliminates the complexity of blockchain integration by providing a unified interface for wallet creation, authentication, and multi-chain transactions across iOS and Android.

Quick Start

main.dart
// Initialize Para
final para = Para.fromConfig(
  config: ParaConfig(
    apiKey: 'YOUR_API_KEY',
    environment: Environment.beta,
  ),
  appScheme: 'yourapp',
);

// Authenticate user
final authState = await para.initiateAuthFlow(
  auth: Auth.email('user@example.com')
);

// Handle login for existing user
if (authState.stage == AuthStage.login) {
  await para.handleLogin(authState: authState);
}

Sign Transactions

transaction_handler.dart
// EVM transaction with Web3Dart
import 'package:web3dart/web3dart.dart';
import 'package:http/http.dart';
import 'package:para/para_evm_signer.dart';

final signer = ParaEvmSigner(para: para);
final client = Web3Client('https://rpc.ankr.com/eth_sepolia', Client());

// Send transaction
final tx = await client.sendTransaction(
  signer,
  Transaction(
    to: EthereumAddress.fromHex('0x742d35Cc6634C0532925a3b844Bc9e7595f6E2c0'),
    value: EtherAmount.fromBigInt(EtherUnit.wei, BigInt.from(1000000000000000)),
  ),
  chainId: 11155111, // Sepolia
);

// Solana transaction signing
import 'package:para/para_solana_web3_signer.dart';
import 'package:solana/solana.dart' as web3;

final solanaClient = web3.SolanaClient(
  rpcUrl: Uri.parse('https://api.devnet.solana.com'),
  websocketUrl: Uri.parse('wss://api.devnet.solana.com'),
);

final solanaSigner = ParaSolanaWeb3Signer(
  para: para,
  solanaClient: solanaClient,
);

// Sign message
final signature = await solanaSigner.signMessage(
  message: Uint8List.fromList('Hello, Solana!'.codeUnits),
);

Next Steps