Delegated Access is currently in Private Beta.
Implementation Overview
- Enable Delegated Access in the dashboard and set defaults.
- Register your HTTPS endpoint (server) and add your public encryption key.
- Trigger delegation (client) — auto-prompt on sign in or call the hook.
- Receive webhook → verify signature → decrypt and store materials (server).
- Use the delegated materials to sign on behalf of the user (server).
How it works
1
Developer Setup
Developer configures a secure HTTPS endpoint (where Dynamic will send encrypted key shares) and provides an encryption key (or let’s Dynamic generate one) in the dashboard.
2
Webhook
A webhook is automatically created in the Dynamic environment with events
wallet.delegation.created
and wallet.delegation.revoked
.3
User Approval
Whenever triggered, the user is prompted to approve delegation.
4
Reshare Ceremony
If approved, Dynamic triggers a reshare ceremony:
- User gets a new share.
- Dynamic generates a new server share.
- A webhook event is triggered for
wallet.delegation.created
and the developer’s endpoint receives data including the encrypted external share and per-wallet API key.
5
Secure Storage
The developer then decrypts this data and stores it securely (encrypting again on their side is recommended).
6
Delegated Operations
The developer uses our SDK to create a delegated client and perform allowed operations.
Delegated access does not allow exporting private keys, refreshing/resharing, or modifying policies. It is limited to user-approved signing operations.
Glossary
- Delegated share: The encrypted MPC key share you decrypt and store on your server.
- Per-wallet API key: API key scoped to a single wallet; sent encrypted to your server.
- Reshare ceremony: Rotation that issues new user and server shares and produces delegated materials.
- Delegation prompt: UI asking the user to approve delegation in your app.
Security considerations
- Encryption: Dynamic encrypts shares before sending. Developers should re-encrypt before storage.
- Per-wallet API keys: Each wallet has its own API key, scoped only to that wallet.
- Limited operations: Developers cannot reshare, refresh, or export keys.
- Audits & compliance: All delegated flows inherit Dynamic’s SOC2 and security posture.
- Endpoint security: Ensure your delegated access endpoint uses HTTPS and proper authentication.
What's next?
Dashboard Setup