Clients
Clients
Client types combining wallets and providers
Clients
Clients combine wallets and providers to enable different blockchain operations. The Evolution SDK provides four client types, each optimized for specific capabilities and security requirements.
Overview
A client's capabilities depend on its configuration:
- Wallet: Provides signing capability and address context
- Provider: Enables blockchain queries and transaction submission
Different combinations create different client types with distinct capabilities.
Client Types
| Client Type | Wallet | Provider | Can Query | Can Build Tx | Can Sign | Can Submit |
|---|---|---|---|---|---|---|
| Full Client | ✅ Signing | ✅ | ✅ | ✅ | ✅ | ✅ |
| API Wallet Client | ✅ API only | ❌ | ❌ | ❌ | ✅ | ✅ |
| Read-Only Client | ✅ Read-only | ✅ | ✅ | ✅ | ❌ | ✅ |
| Provider-Only Client | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
Configuration Pattern
All clients use createClient with different configurations:
createClient({
network: "mainnet" | "preprod" | "preview",
provider?: ProviderConfig, // Optional
wallet?: WalletConfig // Optional
})Rules:
- At least one of
providerorwalletmust be present walletalone → API Wallet Clientprovideralone → Provider-Only Client- Both → Full Client or Read-Only Client (depends on wallet type)
Decision Tree
What do you need to do?
Build + Sign + Submit transactions?
├─ Development/Testing → Full Client (seed wallet)
└─ Production automation → Full Client (private-key wallet)
Sign only (frontend dApp)?
└─ API Wallet Client (CIP-30)
Build only (backend)?
└─ Read-Only Client (user's address)
Query + Submit pre-signed?
└─ Provider-Only ClientNext Steps
- Client Basics - Understanding client capabilities
- Provider Setup - Provider configuration comparison
- Architecture - Frontend/backend patterns
- Wallets - Wallet types and security
- Providers - Provider-only client patterns