> ## 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.

# WalletSerializationCodec

> Flutter Final Class

**Final Class**

Centralises all wallet-API request serialisation logic.

```dart theme={null}
final class WalletSerializationCodec
```

Every method here builds a JSON payload that is sent verbatim to the
Crossmint API. The output of this codec is part of the cross-SDK wallet
parity contract — do not change field names, shapes, or conditional
inclusion semantics without a coordinated spec update.

## Constructors

### WalletSerializationCodec

```dart theme={null}
const WalletSerializationCodec({
  ChainResolver chainResolver = const ChainResolver(),
})
```

## Methods

### serializeCreateRequest

```dart theme={null}
CrossmintJsonMap serializeCreateRequest( CrossmintWalletCreateRequest request, )
```

### serializeSignerRegistrationRequest

```dart theme={null}
CrossmintJsonMap serializeSignerRegistrationRequest(
  CrossmintSignerConfig signer, {
  required String chain,
})
```

### serializeSignerRegistrationInput

```dart theme={null}
Object serializeSignerRegistrationInput(
  CrossmintSignerConfig signer, {
  required String chainType,
})
```

### serializeDeviceSignerRegistrationInput

```dart theme={null}
Object serializeDeviceSignerRegistrationInput(
  CrossmintDeviceSignerConfig signer,
)
```

### serializeEmailSignerObject

```dart theme={null}
CrossmintJsonMap serializeEmailSignerObject(
  CrossmintEmailSignerConfig signer,
)
```

### serializePhoneSignerObject

```dart theme={null}
CrossmintJsonMap serializePhoneSignerObject(
  CrossmintPhoneSignerConfig signer,
)
```

### serializeRecoverySigner

```dart theme={null}
Object serializeRecoverySigner(CrossmintSignerConfig signer)
```

### serializeDelegatedSigner

```dart theme={null}
Object serializeDelegatedSigner(CrossmintSignerConfig signer)
```

### serializeDeviceSignerObject

```dart theme={null}
CrossmintJsonMap serializeDeviceSignerObject(
  CrossmintDeviceSignerConfig signer,
)
```

### serializePasskeySignerPayload

```dart theme={null}
CrossmintJsonMap serializePasskeySignerPayload(
  CrossmintPasskeySignerConfig signer,
)
```

### walletLocatorFromRequest

```dart theme={null}
String walletLocatorFromRequest(CrossmintWalletLookupRequest request)
```

### apiKeySignerLocator

```dart theme={null}
String apiKeySignerLocator(CrossmintApiKeySignerConfig signer)
```

### emailSignerLocator

```dart theme={null}
String emailSignerLocator(CrossmintEmailSignerConfig signer)
```

### phoneSignerLocator

```dart theme={null}
String phoneSignerLocator(CrossmintPhoneSignerConfig signer)
```

### externalWalletSignerLocator

```dart theme={null}
String externalWalletSignerLocator(
  CrossmintExternalWalletSignerConfig signer,
)
```

### serializeTransactionRequest

```dart theme={null}
CrossmintJsonMap serializeTransactionRequest(
  CrossmintEvmTransactionRequest request,
)
```

### serializeSolanaTransactionRequest

```dart theme={null}
CrossmintJsonMap serializeSolanaTransactionRequest(
  CrossmintSolanaTransactionRequest request,
)
```

### serializeStellarTransactionRequest

```dart theme={null}
CrossmintJsonMap serializeStellarTransactionRequest(
  CrossmintStellarTransactionRequest request,
)
```

### serializeTokenTransferRequest

```dart theme={null}
CrossmintJsonMap serializeTokenTransferRequest(
  CrossmintWalletTokenTransferRequest request,
)
```

### serializeTransactionCall

```dart theme={null}
CrossmintJsonMap serializeTransactionCall(CrossmintEvmTransactionCall call)
```

### recipientLocator

```dart theme={null}
String recipientLocator(Object recipient)
```

### resolveTokenLocator

```dart theme={null}
String resolveTokenLocator(CrossmintWalletTokenTransferRequest request)
```

### balanceTokensForChains

```dart theme={null}
List<String> balanceTokensForChains(
  List<String> chains, {
  required List<String> additionalTokens,
})
```

### nativeTokenForChain

```dart theme={null}
String nativeTokenForChain(String chain)
```

### dedupeStrings

```dart theme={null}
List<String> dedupeStrings(List<String> values)
```
