> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CrossmintCheckoutPayer

> Flutter Abstract Interface Class

**Abstract Interface Class**

Interface for apps to provide crypto wallet signing capabilities.

```dart theme={null}
abstract interface class CrossmintCheckoutPayer
```

When crypto payments are enabled in the checkout, the hosted page will
request transaction signing via postMessage. The app implements this
interface to bridge to its wallet.

Prefer attaching the payer under `payment.crypto.payer` in
`CrossmintCheckoutConfig`. The widget-level
`CrossmintEmbeddedCheckout.payer` override is retained for compatibility.

## Properties

### address

```dart theme={null}
String get address
```

Current wallet address.

### initialChain

```dart theme={null}
String get initialChain
```

Chain the wallet is initially connected on.

### supportedChains

```dart theme={null}
List<String> get supportedChains
```

Chains the wallet can sign transactions on. The hosted checkout only offers chains that appear here.

### walletProviderKey

```dart theme={null}
String? get walletProviderKey
```

Optional wallet provider identifier (e.g. "metamask", "coinbase"). Returns null if not applicable.

## Methods

### signAndSendTransaction

```dart theme={null}
Future<CrossmintCheckoutTransactionResult> signAndSendTransaction(
  String serializedTransaction,
)
```

Signs and broadcasts a serialized transaction. Return `CrossmintCheckoutTransactionSuccess` with the transaction id on success, or `CrossmintCheckoutTransactionFailure` with a user-facing message on failure.

### switchChain

```dart theme={null}
Future<void> switchChain(String chain)
```

Switches the wallet to `chain`. Called by the hosted page when the user changes chain in the UI.

### signMessage

```dart theme={null}
Future<String>? signMessage(String message)
```

Optional — return null if message signing is not supported.
