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

# ExternalWalletSigner

> Swift Structure

**Structure**

```swift theme={null}
struct ExternalWalletSigner
```

## Initializers

### init(address:onSign:)

```swift theme={null}
init(address: String, onSign: @escaping @Sendable (String) async throws -> String)
```

## Instance Properties

| Property | Type | Description |
| - | - | - |
| `adminSigner` | `ExternalWalletSignerData` | Inherited from `Signer.adminSigner`. |
| `signerType` | `SignerType` | Inherited from `Signer.signerType`. |

## Instance Methods

### approvals(withSignature:)

Inherited from `Signer.approvals(withSignature:)`.

```swift theme={null}
func approvals(withSignature signature: String) async throws(SignerError) -> [SignRequestApi.Approval]
```

### initialize(\_:)

Inherited from `ApprovalSigner.initialize(_:)`.

```swift theme={null}
func initialize(_ service: (any SmartWalletService)?) async throws(SignerError)
```

### sign(message:)

Inherited from `Signer.sign(message:)`.

```swift theme={null}
func sign(message: String) async throws(SignerError) -> String
```

## Type Aliases

### ExternalWalletSigner.AdminType

Inherited from `Signer.AdminType`.

```swift theme={null}
typealias AdminType = ExternalWalletSignerData
```
