> ## Documentation Index
> Fetch the complete documentation index at: https://dynamic-docs-feat-sidebar-revamp.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dynamic Swift SDK

The Dynamic Swift SDK provides a comprehensive solution for wallet interactions,
authentication, and blockchain integrations in iOS applications.

## Features

The Dynamic Swift SDK offers a complete suite of features for building Web3-enabled iOS applications:

### 🔐 Authentication

* **Email OTP Authentication** - Secure email-based one-time password verification
* **SMS OTP Authentication** - Phone number verification via SMS
* **Social Authentication** - Seamless login with Apple, Google, Discord, and more

### 💰 Wallet Management

* **Embedded Wallets** - Create and manage wallets directly within your app
* **Multi-Asset Support** - Handle multiple cryptocurrencies and tokens
* **Transaction Management** - Send, receive, and track blockchain transactions

### ⛓️ Blockchain Integration

* **Ethereum Support** - Full Ethereum blockchain integration
* **Custom Networks** - Support for custom RPC endpoints and networks
* **Smart Contract Interactions** - Deploy and interact with smart contracts
* **Gas Optimization** - Intelligent gas estimation and management

## Architecture Overview

The Dynamic Swift SDK is built with a modular architecture that provides:

* **Type Safety** - Full Swift type safety with comprehensive error handling
* **Async/Await Support** - Modern Swift concurrency for smooth user experiences
* **Memory Management** - Efficient memory usage with automatic cleanup
* **Network Layer** - Robust networking with retry logic and offline support

## Quick Start

```swift
import DynamicSwiftSDK

let config = DynamicClientConfig(
    environmentId: "<your env id>"
)

let dynamicClient = createDynamicClient(config: config)

// Authenticate a user
let otpVerification: OTPVerification = try await sendEmailOtp(
    client: dynamicClient,
    email: userEmail
)

let authenticatedUser: SdkUser = try await verifyOtp(
    otpVerification: otpVerification,
    verificationToken: otpCode
)

// Create user's wallet
let accountAddress = try await createWalletAccount(client: dynamicClient)
```

## Documentation

### Getting Started

* [Installation Guide](swift/installation_guide.md) - Get started with the SDK
* [Authentication Guide](swift/authentication.md) - Implement email OTP and SMS OTP authentication
* [Social Authentication Guide](swift/social_authentication.md) - Set up social login with Apple, Google, and more

### Wallet & Blockchain

* [Wallet Management](swift/wallet_management.md) - Create, manage, and interact with Ethereum wallets
* [Ethereum Integration](swift/ethereum_integration.md) - Advanced Ethereum features and blockchain interactions
