Smart wallet API overview
Use the DALP smart wallet API to list account-abstraction wallets, inspect gas readiness, manage signers and modules, and coordinate multisig approvals.
DALP smart wallet endpoints let integrations operate ERC-4337 smart wallets through the API. Use them to discover a participant's wallets, check whether a wallet is ready to pay for user operations, manage signer and validator-module configuration, and coordinate multisig approvals.
This page is a reference for integration developers. For the general API entry point, see API reference. For the dedicated threshold workflow, see Smart wallet thresholds.
When to use smart wallet endpoints
Use /api/v2/smart-wallets when your integration needs to:
- list smart wallets where the authenticated user is a signer
- read a wallet's owner, validators, signers, threshold, and metadata
- check gas status before submitting account-abstraction operations
- deploy a smart wallet with the default validator or weighted multisig configuration
- update the wallet description stored off-chain
- install or remove ERC-7579 validator modules
- add, remove, list, and weight multisig signers
- create, inspect, and sign multisig approvals for pending user operations
Smart wallet mutations that change on-chain configuration are asynchronous blockchain operations. Persist the returned status information and poll the status URL when one is present.
Executor selection with X-Executor
Most API callers can omit X-Executor and let DALP choose the active executor for the authenticated participant and organization policy.
Send X-Executor only when the request must force a specific execution wallet:
| Header value | Effect | Notes |
|---|---|---|
| Omitted | Uses the organization's default executor routing. | This is the default for most integrations. |
eoa | Forces raw execution through a personal participant's externally owned account. | DALP rejects this value for non-person participants. |
smart-wallet | Forces smart-wallet execution. | DALP returns an error when no smart wallet is available for the selected participant. |
DALP validates the selected participant and executor before queueing a blockchain operation. Invalid participant IDs, unsupported executor values, missing signer wallets, or unavailable smart wallets fail before submission.
Endpoint groups
Wallet discovery and metadata
| Operation | Endpoint | Use it for |
|---|---|---|
| List smart wallets | GET /api/v2/smart-wallets | Paginated list of smart wallets where the authenticated user is a signer. |
| Read smart wallet | GET /api/v2/smart-wallets/{address} | Wallet details, validators, signers, threshold, identity, owner, and metadata. |
| Check gas status | GET /api/v2/smart-wallets/{address}/gas-status | EntryPoint deposit, wallet balance, paymaster availability, and zero-gas readiness. |
| Create smart wallet | POST /api/v2/smart-wallets | Deploy a new smart wallet with default ECDSA validation or weighted multisig configuration. |
| Update metadata | PATCH /api/v2/smart-wallets/{address} | Update off-chain metadata such as the wallet description. |
The list endpoint supports pagination, filtering, sorting, global search, and faceted counts. It can filter by walletAddress, ownerAddress, factoryAddress, createdAt, and description; the default sort is newest first by createdAt.
Signers and threshold
| Operation | Endpoint | Use it for |
|---|---|---|
| List signers | GET /api/v2/smart-wallets/{address}/signers | Inspect authorized signers, weights, and validator assignments. |
| Add signer | POST /api/v2/smart-wallets/{address}/signers | Add a multisig signer with an optional positive uint64 weight. |
| Remove signer | DELETE /api/v2/smart-wallets/{address}/signers/{signer} | Remove a signer from the wallet. |
| Set threshold | PUT /api/v2/smart-wallets/{address}/threshold | Set the weighted multisig approval threshold. |
The threshold is a weighted approval value, not a signer count. Before changing it, read the signer list and choose a value that can be met by the configured signer weights.
Validator modules
| Operation | Endpoint | Use it for |
|---|---|---|
| Install module | POST /api/v2/smart-wallets/{address}/modules | Install an ERC-7579 validator module with optional initialization data. |
| Uninstall module | DELETE /api/v2/smart-wallets/{address}/modules/{moduleAddress} | Remove a validator module from the wallet. |
Install only validator modules that are supported by your platform configuration and operational policy. Treat module installation and removal as on-chain configuration changes.
Multisig approvals
| Operation | Endpoint | Use it for |
|---|---|---|
| Create approval | POST /api/v2/smart-wallets/{address}/approvals | Create a multisig approval for a user operation. The initiator's signature is recorded immediately. |
| List approvals | GET /api/v2/smart-wallets/{address}/approvals | Paginated approval history and pending approvals, including collected signatures. |
| Read approval | GET /api/v2/smart-wallets/{address}/approvals/{userOpHash} | Inspect one approval and its collected signatures. |
| Sign approval | POST /api/v2/smart-wallets/{address}/approvals/{userOpHash}/sign | Add a co-signer signature. When cumulative weight meets the threshold, DALP submits the user operation automatically. |
Use approvals when a smart wallet operation requires signer weight beyond the initiating signer. Co-signers approve through the approval endpoints instead of calling owner-only configuration endpoints directly.
Basic integration sequence
- List smart wallets with
GET /api/v2/smart-walletsand select the wallet address your integration should operate. - Read the wallet with
GET /api/v2/smart-wallets/{address}to inspect validators, signers, threshold, and metadata. - Check
GET /api/v2/smart-wallets/{address}/gas-statusbefore submitting account-abstraction operations. - For multisig wallets, list signers and approvals before changing signer configuration or threshold values.
- Submit mutations with idempotency and async status handling, then poll the returned status URL when present.
curl "https://your-platform.example.com/api/v2/smart-wallets?sort=-createdAt" \
-H "X-Api-Key: YOUR_DALP_API_KEY"curl "https://your-platform.example.com/api/v2/smart-wallets/0x1234567890AbcdEF1234567890aBcdef12345678/gas-status" \
-H "X-Api-Key: YOUR_DALP_API_KEY"