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});}