@dynamic-labs-sdk/client
v1.49.0
Published
Welcome to the Dynamic Client SDK - a powerful and flexible authentication solution for your applications.
Readme
Dynamic Client SDK
Welcome to the Dynamic Client SDK - a powerful and flexible authentication solution for your applications.
Overview
The Dynamic Client SDK provides a seamless way to integrate authentication and user management into your application. With an easy-to-use API and robust feature set, you can quickly implement secure authentication flows while maintaining a great user experience.
The SDK is designed to be lightweight yet powerful, giving you the tools you need without unnecessary bloat.
Contributing
When contributing to this package, please follow the coding standards in CLAUDE.md at the repository root.
Critical Rules:
- ⚠️ Index File Restrictions:
- ✅ Allowed:
src/exports/index.ts(main entry point) - ✅ Allowed: Single-token index files (directory X with X.ts exporting only X)
- ❌ Forbidden: Multi-token aggregation index files
- ✅ Allowed:
- See CLAUDE.md for complete coding standards
iCloud backup on iOS (React Native)
Embedded wallets can be backed up to the user's iCloud with
backupWaasKeySharesToICloud from @dynamic-labs-sdk/client/waas. On iOS it uses
the device's iCloud account, so there is no sign-in step. It is not available on
Android; check isICloudBackupSupported() to decide whether to offer it.
Your app must be set up for iCloud before backups can work:
- In Xcode, add the iCloud capability to your app target and enable the CloudKit service.
- Add the same CloudKit container you configured for iCloud in the Dynamic
dashboard (for example
iCloud.com.example.app) to the app's iCloud containers. - Rebuild the native app.
Troubleshooting Initialization
If you are having issues with your client's initialization, try the following:
- Disable
autoInitialize:
const client = createDynamicClient({ autoInitialize: false });- Initialize the client manually and handle the error:
try {
await initializeClient(client);
} catch (error) {
console.log(error);
}