Enable and set defaults
In the developer dashboard, navigate to Embedded Wallets → Delegated Access and toggle on “Delegated Access”. Recommended defaults:- Prompt users on sign in: ON (auto-prompt users on their next sign in)
- Require delegation: OFF (let users skip; enforce later in your app if needed)
Provide encryption key (server)
Dynamic encrypts the delegated materials before sending to your server using a hybrid approach using RSA and AES. Provide your public key, or let Dynamic generate a key pair for you.Register your Delegated Access endpoint (server)
Provide a verified HTTPS URL that receiveswallet.delegation.created (and wallet.delegation.revoked).
After adding the URL, we send a ping to verify reachability. View events in the Webhooks section of the dashboard.
When a user approves delegation, your endpoint receives wallet.delegation.created with encrypted materials under data. Verify the signature and store securely. See Receiving for payload and decryption.
Before processing any webhook, verify signatures. Dynamic sends a signature in the
x-dynamic-signature-256 header. Compute HMAC-SHA256 of the raw request body with your webhook secret (from the webhook detail page in the dashboard) and compare with the header value using a constant-time comparison. The payload you hash must match exactly as received.Trigger delegation from your app
Once setup is complete, choose your SDK to learn how to trigger delegation and use delegated materials:React
Trigger delegation and perform developer actions
JavaScript
Trigger delegation and perform developer actions
React Native
Trigger delegation and perform developer actions
Swift
Trigger delegation and perform developer actions
Kotlin
Trigger delegation and perform developer actions
Flutter
Trigger delegation and perform developer actions
Unity
Trigger delegation and perform developer actions