# Smart wallet API overview

Source: https://docs.settlemint.com/docs/developer-guides/api-integration/smart-wallets
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](/docs/developer-guides/api-integration/api-reference). For the dedicated threshold workflow, see [Smart wallet thresholds](/docs/developer-guides/api-integration/smart-wallet-thresholds).

## When to use smart wallet endpoints [#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` [#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 [#endpoint-groups]

### Wallet discovery and metadata [#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 [#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 [#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 [#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 [#basic-integration-sequence]

1. List smart wallets with `GET /api/v2/smart-wallets` and select the wallet address your integration should operate.
2. Read the wallet with `GET /api/v2/smart-wallets/{address}` to inspect validators, signers, threshold, and metadata.
3. Check `GET /api/v2/smart-wallets/{address}/gas-status` before submitting account-abstraction operations.
4. For multisig wallets, list signers and approvals before changing signer configuration or threshold values.
5. Submit mutations with idempotency and async status handling, then poll the returned status URL when present.

```bash
curl "https://your-platform.example.com/api/v2/smart-wallets?sort=-createdAt" \
  -H "X-Api-Key: YOUR_DALP_API_KEY"
```

```bash
curl "https://your-platform.example.com/api/v2/smart-wallets/0x1234567890AbcdEF1234567890aBcdef12345678/gas-status" \
  -H "X-Api-Key: YOUR_DALP_API_KEY"
```

## Related [#related]

* [API reference](/docs/developer-guides/api-integration/api-reference)
* [Smart wallet thresholds](/docs/developer-guides/api-integration/smart-wallet-thresholds)
* [System paymasters](/docs/developer-guides/api-integration/system-paymasters)
* [Bundler endpoint](/docs/developer-guides/api-integration/bundler)
