Skip to main content
In your application, when a user is logged in, you’ll want to request delegation so your server can act on their behalf (for example, to sign transactions or run automated flows).

Check delegation status

Use hasDelegatedAccess to check whether a wallet account already has delegated access before triggering the delegation flow.

Trigger delegation

Use delegateWaasKeyShares to initiate the delegation process for a wallet account. This sends the encrypted delegated share to your server via the wallet.delegation.created webhook.

With password encryption

If the wallet uses password encryption, pass the password when delegating. The delegated share will be encrypted with the password before being sent.
Dynamic does not prompt the user for a password during delegation. If the wallet is password-protected, you must obtain the password in your own UI flow and pass it programmatically.

Seed initial policy rules

You can seed the delegated signer’s policy layer at delegation time by passing initialSignerRules. Build each rule with buildAllowPolicyRule or buildDenyPolicyRule.
initialSignerRules uses the raw WaasPolicyRule shape, not the PolicyRules map used by createPolicy. After delegation, you can read or update the delegated signer layer with getPolicy and createPolicy.

Apply declarative rules to the delegated signer

initialSignerRules takes legacy rules only. To put declarative rules on a delegated signer, delegate first and then write to the delegated share set’s signer layer. Find the delegated share set with getWalletAccountShareSets and pass its shareSetId to upsertSignerPolicyRule.
Omit ruleId to create a rule; pass an existing ruleId to update it. To set the layer’s full rule list in one write, use replacePolicyLayerRules with the same shareSetId. A shareSetId rotates when wallet shares are refreshed or reshared, so re-read it before each update. For the full operation set, see the signer layer.

Parameters

What's next?

Learn how to receive the delegation materials on your server
Last modified on October 28, 2026