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

# SmartWalletService

> Swift Protocol

**Protocol**

```swift theme={null}
protocol SmartWalletService : AuthenticatedService
```

## Instance Properties

### isProductionEnvironment

```swift theme={null}
var isProductionEnvironment: Bool { get }
```

## Instance Methods

### addSigner(\_:chainType:chainName:)

```swift theme={null}
func addSigner(_ entry: DelegatedSignerEntry, chainType: ChainType, chainName: String) async throws(WalletError) -> AddDelegatedSignerResponse
```

### approveSignature(\_:)

```swift theme={null}
func approveSignature(_ request: SignRequest) async throws(SignatureError)
```

### createSignature(\_:)

```swift theme={null}
func createSignature(_ request: CreateSignatureRequest) async throws(SignatureError) -> any SignatureApiModel
```

### createTransaction(\_:)

```swift theme={null}
func createTransaction(_ request: CreateTransactionRequest) async throws(TransactionError) -> any TransactionApiModel
```

### createWallet(\_:)

```swift theme={null}
func createWallet(_ request: CreateWalletParams) async throws(WalletError) -> WalletApiModel
```

### fetchSignature(\_:chainType:)

```swift theme={null}
func fetchSignature(_ signatureId: String, chainType: ChainType) async throws(SignatureError) -> any SignatureApiModel
```

### fetchTransaction(\_:)

```swift theme={null}
func fetchTransaction(_ fetchTransactionRequest: FetchTransactionRequest) async throws(TransactionError) -> any TransactionApiModel
```

### fund(\_:)

```swift theme={null}
func fund(_ request: FundWalletRequest) async throws(WalletError)
```

### getBalance(\_:)

```swift theme={null}
func getBalance(_ params: GetBalanceQueryParams) async throws(WalletError) -> Balances
```

### getNFTs(\_:)

```swift theme={null}
func getNFTs(_ params: GetNTFQueryParams) async throws(WalletError) -> [NFT]
```

### getWallet(\_:)

```swift theme={null}
func getWallet(_ request: GetMeWalletRequest) async throws(WalletError) -> WalletApiModel
```

### listTransfers(\_:)

```swift theme={null}
func listTransfers(_ params: ListTransfersQueryParams) async throws(WalletError) -> TransferListResult
```

### removeSigner(\_:chainType:chainName:)

```swift theme={null}
func removeSigner(_ signerLocator: String, chainType: ChainType, chainName: String) async throws(TransactionError) -> any TransactionApiModel
```

### signTransaction(\_:)

```swift theme={null}
func signTransaction(_ request: SignRequest) async throws(TransactionError) -> any TransactionApiModel
```

### transferToken(chainType:tokenLocator:recipient:amount:signer:idempotencyKey:)

```swift theme={null}
func transferToken(chainType: String, tokenLocator: String, recipient: String, amount: String, signer: String?, idempotencyKey: String?) async throws(TransactionError) -> any TransactionApiModel
```
