Documentation Index
Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Solana connection allows you to interact with the Solana blockchain, query data, and prepare transactions.
Prerequisites
- Dynamic SDK initialized (see Quickstart)
- User authenticated (see Authentication)
- Solana wallets enabled in your Dynamic dashboard
Create Connection
import DynamicSDKSwift
let sdk = DynamicSDK.instance()
func createConnection() throws {
let connection = try sdk.solana.createConnection()
print("Solana connection created")
}
Get Latest Blockhash
Required for building transactions:
import DynamicSDKSwift
let sdk = DynamicSDK.instance()
func getBlockhash() async throws -> String {
let connection = try sdk.solana.createConnection()
let result = try await connection.getLatestBlockhash()
print("Latest blockhash: \(result.blockhash)")
return result.blockhash
}
Query Account Balance
import DynamicSDKSwift
import SolanaWeb3
let sdk = DynamicSDK.instance()
func getBalance(address: String) async throws -> UInt64 {
let connection = try sdk.solana.createConnection()
guard let pubkey = try? PublicKey(string: address) else {
throw SolanaError.invalidAddress
}
let balance = try await connection.getBalance(publicKey: pubkey)
return balance
}
enum SolanaError: LocalizedError {
case invalidAddress
var errorDescription: String? {
"Invalid Solana address"
}
}
Get Solana Wallets
import DynamicSDKSwift
let sdk = DynamicSDK.instance()
let solanaWallets = sdk.wallets.userWallets.filter {
$0.chain.uppercased() == "SOL"
}
for wallet in solanaWallets {
print("Address: \(wallet.address)")
}
Solana Networks
Access configured Solana networks:
let sdk = DynamicSDK.instance()
let solanaNetworks = sdk.networks.solana
for network in solanaNetworks {
print("Network: \(network.name)")
}
Connection Methods
| Method | Description |
|---|
createConnection() | Create a Solana connection instance |
getLatestBlockhash() | Get the latest blockhash for transactions |
getBalance(publicKey:) | Get account balance in lamports |
getAccountInfo(publicKey:) | Get detailed account information |
Dependencies
To build Solana transactions, add the SolanaWeb3 package:
// Package.swift
dependencies: [
.package(url: "https://github.com/solana-mobile/SolanaSwift", from: "1.0.0")
]
Next Steps