Complete API reference for Para Flutter SDK v2, including authentication, wallet management, and blockchain operations. Updated for 2.0.0 with comprehensive multi-chain support and passkey authentication.
The Para class is the main entry point for the Para Flutter SDK, providing wallet operations, authentication, and blockchain interactions. The latest version includes passkey authentication, comprehensive multi-chain support, and deep linking capabilities.
Signs an EVM transaction. Returns a cancellable ParaFuture.
This method is for EVM transactions only. For Solana, use signMessage() with the serialized transaction as messageBase64. For Cosmos, use signMessage() with cosmosSignDocBase64.EVM Transaction Return Value: The SuccessfulSignatureResult contains the complete RLP-encoded transaction ready for broadcasting via the signedTransaction property.Solana/Cosmos Return Value: For pre-serialized transactions, returns just the signature in signedTransaction. For constructed transactions, returns the complete signed transaction.
class AuthState { final AuthStage stage; // Current authentication stage final String? userId; // User's unique identifier final AuthIdentity auth; // Authentication identity details final String? displayName; // User's display name final String? pfpUrl; // Profile picture URL final String? username; // Username final Map<String, dynamic>? externalWallet; // External wallet info final String? loginUrl; // One-Click URL, when provided final List<String>? loginAuthMethods; // Advertised login methods (e.g., BASIC_LOGIN) final List<String>? signupAuthMethods; // Advertised signup methods final String? passkeyUrl; // URL for passkey authentication final String? passkeyId; // Passkey identifier final String? passwordUrl; // URL for password authentication final AuthStage? nextStage; // Optional next stage hint // Helper getters exposed by the SDK: bool get hasSloUrl; // loginUrl is non-empty List<String> get loginMethods; // loginAuthMethods ?? [] List<String> get signupMethods; // signupAuthMethods ?? [] AuthStage get effectiveNextStage; // nextStage ?? stage}class AuthIdentity { final String? email; final String? phoneNumber; final String? fid; // Farcaster ID final String? telegramUserId; // Other identity types}enum AuthStage { verify, // Need to verify email/phone login, // Existing user, proceed to login signup // New user, proceed to signup}
class Wallet { final String id; final String address; final WalletType type; final WalletScheme scheme; final String? userId; // Associated user ID final DateTime? createdAt; // Creation timestamp final String? publicKey; // Wallet public key final bool? isPregen; // Whether this is a pregenerated wallet // Additional optional fields available}
// Abstract base classabstract class SignatureResult {}// Successful signatureclass SuccessfulSignatureResult extends SignatureResult { final String signedTransaction; // For transactions: complete signed transaction ready for broadcasting // For messages: just the signature SuccessfulSignatureResult(this.signedTransaction); /// Gets the transaction data ready for broadcasting. String get transactionData => signedTransaction;}// Denied signatureclass DeniedSignatureResult extends SignatureResult { final String? pendingTransactionId; DeniedSignatureResult(this.pendingTransactionId);}// Denied with URLclass DeniedSignatureResultWithUrl extends SignatureResult { final String? pendingTransactionId; final String url; DeniedSignatureResultWithUrl({this.pendingTransactionId, required this.url});}