Skip to main content
Revocation is a reshare that removes the delegated server share. After revocation, the developer can no longer act on the user’s behalf. Revocation process:
  1. User initiates revocation from their wallet
  2. Dynamic performs a reshare ceremony
  3. Developer’s external share becomes invalid
  4. All delegated operations are immediately blocked
  • React
  • JavaScript

User Experience

Dynamic UI

Within the Dynamic Widget, the user can navigate to the “Settings” tab, where they will see a button for Delegated Wallets.
Delegated Wallets
Once inside the Delegated Wallets tab, the user will see a button for Revoke Delegation, they can revoke a single wallet, or all wallets.
Revoke Delegation

Custom UI

useWalletDelegation provides a revokeDelegation method that can be used to revoke a wallet.
import { ChainEnum } from '@dynamic-labs/sdk-api-core';
const { revokeDelegation } = useWalletDelegation();
await revokeDelegation([
  {
    chainName: ChainEnum.Evm,
    accountAddress: '0x123...',
    status: 'delegated',
  },
]);
Parameters:
  • wallets: Array of wallet objects to revoke. Each wallet object should have:
    • chainName: ChainEnum - The chain the wallet is associated with
    • accountAddress: string - The address of the wallet to revoke
    • status: WalletDelegationStatus - The delegation status of the wallet (must be ‘delegated’ for revocation to proceed)

Webhook payload (wallet.delegation.revoked)

{
  "eventName": "wallet.delegation.revoked",
  "eventId": "3f0a1b1c-0000-4000-8000-aaaaaaaaaaaa",
  "timestamp": "2025-10-01T16:00:00.000Z",
  "userId": "7eb7843b-2a4d-4f69-b95e-d219f0662fda",
  "data": {
    "walletId": "25193936-3ecd-4c1b-84e6-9eabc82e53c2",
    "chain": "EVM"
  }
}

Cleanup checklist (server)

  • Invalidate cached delegated materials for the walletId.
  • Stop any delegated jobs/agents for the wallet.
  • Remove or rotate stored delegated share and per‑wallet API key.
  • Treat duplicate events as idempotent using eventId.