SettleMint
ChangelogDALP 3.2

TypeScript SDK 3.1 to 3.2 mapping

A call-by-call map from the 3.1 TypeScript SDK to the 3.2 namespaced routes, flat arguments, narrowed responses, and retained client interpreters.

This note maps the calls an integrator moves from the 3.1 client to the 3.2 route tree. The route id is the operation id with its v2/ prefix removed, exactly as passed to execute. A route id is dot- or slash-separated, and either separator becomes a property step on the namespaced dalp.api.* client. The id is the stable name used by execute and the generated types. The examples show the argument shape after the transport envelope (params, query, or body) is removed.

3.1 call3.2 route id and callArgument shape in 3.2Response shape in 3.2Removed?
dalp.token.read({ params: { tokenAddress } })token/read → dalp.api.token.read({ assetId: tokenAddress })Flat object; path value is assetIdTokenV2ReadOutputSchema: data holds the token record; details and links sit beside itNo
dalp.token.list({ query: {} })token/list → dalp.api.token.list()Omit the argument when fields are optional; otherwise use flat page, sort, and filterTokenV2ListOutputSchema: each item in data has a token member, discriminated by _tag (evm or canton)No
dalp.token.create({ body: { ... } })token/create → dalp.api.token.create({ ... })Body fields are top-level propertiesA settled resource, or { transactionId, statusUrl } when the bounded wait returns 202No
client.token.create(input, { context: { idempotencyKey } })token/create → dalp.api.token.create(input, { headers: { "Idempotency-Key": key } })Route input stays flat; the key is sent per call as a header (see Mutations and settlement)The same settled-resource-or-handle union as other writesNo
waitForTransaction(client, ...) after an accepted envelope (a package-root export in 3.1; import it from @settlemint/dalp-sdk/wait-for-transaction in 3.2)transactionsV2.status → dalp.api.transactionsV2.status({ transactionId }) (or statusStream)transactionId is the handle fieldWrite handles are { transactionId, statusUrl }; follow without resubmitting. Reading the status route directly is an alternative to the helper, not a replacementNo
dalp.system.read({ params: { systemAddress } })systems.core.systemRead → dalp.api.systems.core.systemRead({ systemAddress })Flat path, query, and body fieldsPlatformSystemReadRecord = PlatformSystemView | PlatformSystemSummaryView; narrow before whole-record membersNo
None: the route is new in 3.2 (GET /api/v2/participants/assumable)party.participants.assumableList → dalp.api.party.participants.assumableList({ ... })Flat objectAssumableParticipantRead = AssumableParticipant | AssumableParticipantSummary; narrow firstNo
dalp.user.list({ query: {} })party.users.list → dalp.api.party.users.list({ ... })Flat page, sort, and filter fieldsUserListReadItem = UserListMember | UserListSummaryItem; narrow firstNo
None: the route is new in 3.2 (GET /api/v2/tokens/{assetId}/corporate-actions/{corporateActionId})token/getCorporateAction → dalp.api.token.getCorporateAction({ assetId, corporateActionId })Flat objecttoken_getCorporateAction_Response (the route has no summary selector)No
createDalpBundlerClient and the other bundler exports of the @settlemint/dalp-sdk rootNo 3.2 route; use POST /bundler/{chainId} JSON-RPCN/AN/AYes: removed
DALP_CONTRACT_ERROR_CODES, DalpContractErrorCode, and the @settlemint/dalp-sdk/plugins subpathGenerated types from @settlemint/dalp-sdk/types; every 3.1 contract error code is an entry in dalpErrorCatalog from the package rootN/AN/AYes: removed
requestValidation and responseValidation client pluginsNo SDK validation-plugin configuration; response schemas are checked automaticallyN/AN/AYes: removed
createDalpAuthClient, DalpAuthClient, DalpAuthClientConfig, DalpAuthError, DalpAuthOperation, DalpAuthResult, and WalletAuthEndpointPath from the @settlemint/dalp-sdk rootThe same names from @settlemint/dalp-sdk/authDalpAuthClientConfig no longer has sessionToken; it adds authSurface, runtime, and passkeyN/AYes: removed from the root
verifyWebhook, toStandardWebhookSecret, VerifyWebhookInput, WebhookVerificationFailure, and WebhookVerificationResult from the rootThe same names from @settlemint/dalp-sdk/verify-webhookN/AN/AYes: removed from the root
DalpTransactionWaitError, WaitForTransactionOptions, and WaitForTransactionStatus from the rootThe same names from @settlemint/dalp-sdk/wait-for-transactionN/AN/AYes: removed from the root
createDalpPlatformClient, DalpPlatformClient, and DalpPlatformClientConfig (one factory that returned { dapi, auth, cookieStore })No combined client: create the route client with createDalpClient from the root and the auth client with createDalpAuthClient from @settlemint/dalp-sdk/authEach factory takes its own options: CreateDalpClientOptions and DalpAuthClientConfigN/AYes: removed
DalpClientConfigCreateDalpClientOptions from the root, passed to createDalpClienturl becomes baseUrl; organizationId and idempotencyKey move into context; there is no headers, requestValidation, or responseValidation optionN/AYes: removed
DalpCookieStoremakeCookieStore() returns a CookieStoreShape; createCookieStoreFetch stays in the root and takes itheader and isEmpty are methods in 3.2: call store.header() and store.isEmpty()N/AYes: removed
CUSTOM_ERROR_CODES, ErrorCode, DAPI_ERROR_IDS, and DapiErrorIdisDalpErrorCode(code) and the DalpErrorCode type; the id of a code is dalpErrorCatalog.entries[code].id, and a thrown DalpApiError carries it as idThe 3.2 code set is not the 3.1 set: check a stored 3.1 code with isDalpErrorCode instead of assuming it existsN/AYes: removed

The 3.2 response unions are deliberate. A selector such as view=summary or a fields[...] projection can return a narrowed row, so a consumer must check the discriminant or otherwise narrow the variant before reading members of the full record. A request without a selector still returns the whole record.

The table and the list below it include each 3.1 migration family represented by the SDK's public client and its removed root exports and /plugins subpath. The contract schema re-exports, such as the @settlemint/dalp-sdk/contracts path, have no row because no published 3.x release up to 3.1.26 offered them as an import path: the package exposed only the root, /types, and /plugins. To get a generated type, import it from @settlemint/dalp-sdk/types. The bundler client exports are gone; use the chain-scoped JSON-RPC mount at POST /bundler/{chainId}. The Promise client and the Effect client remain available, with the latter imported from @settlemint/dalp-sdk/effect.

These 3.1 root exports have no 3.2 equivalent:

  • bigDecimalSerializer, bigIntSerializer, timestampSerializer, and dalpSerializers. The 3.2 client options have no serializer setting. To handle a single value, use decodeBigInt, decodeBigDecimal, and encodeBigDecimal from @settlemint/dalp-sdk/scalars.
  • DapiPublicError, isDapiPublicError, decodeDapiErrorResponseBody, getDapiPublicErrorFromResponseBody, and createDalpSdkErrorFromDapiPublicError. The 3.2 client turns every non-2xx response into a thrown DalpApiError, so you do not decode the error body yourself. Test for it with isDalpApiError and read its code and id.

For the complete route reference and write-settlement examples, see Calling routes, Mutations and settlement, and The Effect surface.

On this page

No Headings