- Direct — load credentials from environment variables at startup. Best for CLI tools and local development.
- Delegated access — each user approves via the Dynamic SDK. Credentials arrive via webhook and are stored per-user. Best for backend APIs and mobile apps.
| Direct | Delegated access | |
|---|---|---|
| Users | Single (you) | Any number |
| Credentials | Env vars | Database, per user |
| Best for | CLI tools, local dev | Backend APIs, mobile apps |
Pathway 1: Direct (CLI / single-user)
Step 1: Get credentials from Dynamic dashboard
Find the wallet you want the agent to use and copy:- Wallet ID
- Wallet address
- API key
- Key share (JSON)
Step 2: Set environment variables
Option A — paste credentials directly:Step 3: Load and use
Pathway 2: Delegated access (multi-user)
Step 1: User connects wallet via Dynamic
The user authenticates in your app. You get a JWT with their Dynamic user ID (user.sub).
Step 2: User approves delegation
Call the Dynamic SDK to start the delegation flow:wallet.delegation.created webhook to your server. See Set up delegated access via webhook for how to handle it.
Step 3: Fetch credentials per request
On each API request, look up the credentials for the authenticated user:Step 4: User can revoke at any time
wallet.delegation.revoked → delete the record → return 403 until re-delegated.
Signing operations
Both pathways use the same signing functions via the@dynamic-labs-wallet/node-evm SDK:
Supported chains
| Chain ID | Network |
|---|---|
| 1 | Ethereum |
| 137 | Polygon |
| 8453 | Base |
| 10 | Optimism |
| 42161 | Arbitrum |
| 56 | BSC |
| 43114 | Avalanche |