SettleMint
Developer guidesAPI integration

Request headers

Select the acting participant and execution wallet for DALP API requests with X-Participant and X-Executor.

DALP API requests separate who acts from which wallet executes. X-Participant selects the acting participant for the request. X-Executor selects whether the request executes through the participant's direct signing wallet, a smart wallet, or the organization's default routing policy. DALP validates both choices before queueing a blockchain operation.

Header summary

HeaderRequiredAccepted valuesDefault when omitted
X-ParticipantNoCanonical participant ID in pp_<uuid> formatThe authenticated session participant
X-ExecutorNoeoa or smart-walletThe active organization's executor routing policy

Send these headers only when the request needs explicit identity or wallet selection. Omit them for the normal path where DALP uses the authenticated participant and the organization's configured executor routing.

Participant selection

X-Participant makes the acting participant explicit. The value must be the authenticated participant's canonical person participant ID, formatted as pp_<uuid> with lowercase UUID characters. It does not let an API key act for another participant.

curl "https://your-platform.example.com/api/v2/tokens/0x1234567890AbcdEF1234567890aBcdef12345678/holders" \
  -H "X-Api-Key: YOUR_DALP_API_KEY" \
  -H "X-Participant: pp_018f6d3e-89ab-7cde-8123-abcdefabcdef"

If X-Participant is absent, DALP acts as the participant from the authenticated session. If the header is present but malformed, DALP rejects the request as input validation. If the header names any participant other than the authenticated participant, DALP returns the same not-found shaped error whether the requested participant exists in the same tenant, exists in another tenant, or does not exist.

Executor selection

X-Executor chooses the wallet that executes a blockchain operation for the selected participant.

Header valueEffectWhen to use it
OmittedUses the active organization's default executor routing. If account-abstraction routing is enabled, the executor resolves to the participant's smart wallet. If it is not enabled, the executor resolves to the participant's signing wallet.Most integrations
eoaForces raw execution through a personal participant's externally owned account.Use only when the workflow must execute from the direct signer account. DALP rejects this value for non-person participants.
smart-walletForces smart-wallet execution, regardless of the organization's default account-abstraction routing policy.Use when the workflow must execute through a smart wallet. For person participants, DALP can provision the participant smart wallet during the request.

The executor selected for the request becomes the effective wallet address that the smart contract sees as the caller. Route handlers use that resolved executor for role checks and user operation submission.

Use both headers together

The participant header answers who acts. The executor header answers which wallet acts for that participant. A request can set both when the caller wants the identity and executor choice to be explicit.

curl -X POST "https://your-platform.example.com/api/v2/tokens/0x1234567890AbcdEF1234567890aBcdef12345678/mints" \
  -H "X-Api-Key: YOUR_DALP_API_KEY" \
  -H "Idempotency-Key: mint-2026-05-17-001" \
  -H "X-Participant: pp_018f6d3e-89ab-7cde-8123-abcdefabcdef" \
  -H "X-Executor: smart-wallet" \
  -H "Content-Type: application/json" \
  -d '{
    "recipients": ["0x1111111111111111111111111111111111111111"],
    "amounts": ["1000"]
  }'

This request says: act as participant pp_018f6d3e-89ab-7cde-8123-abcdefabcdef, execute through that participant's smart wallet, and submit the mint operation once for the supplied idempotency key.

Validation and failure modes

DALP validates participant and executor selection before queueing a blockchain operation.

ConditionResultCaller action
X-Participant is malformedThe request fails input validation.Use a canonical pp_<uuid> participant ID.
X-Participant names a participant other than the authenticated participantThe request returns a not-found shaped participant error.Remove the header or send the authenticated participant ID.
X-Executor is not eoa or smart-walletThe request fails input validation.Omit the header or send one of the supported values.
X-Executor: eoa is sent for a non-person participantThe request fails because EOA execution is not supported for that participant type.Omit the header or use smart-wallet when the participant has an available smart wallet.
X-Executor: smart-wallet cannot resolve a usable smart walletThe request fails before submission.Retry after wallet availability is restored, or omit the override.

Route applicability

DALP exposes X-Participant and X-Executor in the OpenAPI specification on routes that can use participant or executor selection. Check /api/v2/spec.json for the operation you call before adding the headers.

Route typeHeader behavior
Transaction routes that queue blockchain operationsDALP validates the selected participant and executor before queueing the operation.
Token indexer reads that use participant contextDALP can use the selected participant to scope the read.
Smart wallet approval routesDALP can use explicit executor selection when creating or signing approvals.
Routes that do not list these headers in OpenAPITreat the headers as not applicable. Omit them instead of relying on them.

Error codes

Error codePublic errorWhen it happens
DALP-0524X_PARTICIPANT_FORBIDDENX-Participant is well formed but does not match the authenticated participant.
DALP-0530X_EXECUTOR_UNSUPPORTED_FOR_PARTICIPANT_TYPEX-Executor: eoa is used for a participant type that cannot execute through an EOA.
DALP-0531X_EXECUTOR_NO_SMART_WALLETX-Executor: smart-wallet is used when no smart wallet is available for the selected participant.

Malformed participant IDs and unsupported executor values return input validation errors before DALP queues the operation.

Use Idempotency-Key with mutating requests so retries do not submit duplicate operations. Use Prefer when a transaction route supports response timing preferences. X-Transaction-Speed is a parsed request header on routes that expose it; leave it unset unless route documentation or your integration contract tells you to send an explicit speed preference. X-User-Id and X-Organization-Id are internal response headers used by the API layer and are not request headers for integrations.

On this page